Problema con variable char en proyecto c++ Buenas, pues he hecho un ejercicio con c++, necesito meter en una variable char mas de un caracter, como u array en java vaya, pero lo he probado con char*palo=... y con char palo[], y me da error y no me deja compilar. A ver si alguien me lo soluciona, gracias de antemano.
/* File: SieteYMedio.cpp
*Created on 31 de enero de 2013, 20:08
*/
#include <cstdlib>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <time.h>
using namespace std;
int main(int argc, char** argv) {
//Declaración de variables
int aleatorioNumero, aleatorioPalo;
float maximaPuntuacion, sumaJugador1, sumaJugador2;
bool respuesta;
char palo[], resp;
//Fivar
printf("Bienvenidos a SIETE Y MEDIO! Estas son las reglas del juego:\n"
"\n -El mazo de cartas sera similar a la baraja espanola, excluyendo los 8 y 9.\n"
"\n -Las cartas del 1 al 7 tienen su mismo valor en el juego.\n"
"\n -Las cartas jota(10), dama(11) y rey(12) tienen valor por medio, es decir, si tienes un siete y pides otra carta, y te sale cualquiera de estas tres, obtendras siete y medio, es la maxima puntuacion.\n"
"\n -Si te pasas de siete y medio, pierdes.\n"
"\n -Cuando quieras puedes plantarte.\n"
"\n -Puede haber empate.\n"
"\n\n\n COMIENZA EL JUEGO:\n");
srand(time(NULL));
aleatorioNumero=1+rand()%(10-1);
aleatorioPalo=1+rand()%(4-1);
sumaJugador1=0;
sumaJugador2=0;
sumaJugador1=0;
sumaJugador2=0;
respuesta=true;
maximaPuntuacion=7.5;
//Jugador 1, recibe la primera carta
switch (aleatorioPalo) {
case 1: palo="oros";
break;
case 2: palo="espadas";
break;
case 3: palo="copas";
break;
case 4: palo="palos";
break;
}
if (aleatorioNumero==8 || aleatorioNumero==9 || aleatorioNumero==10) {
sumaJugador1+=0.5;
}
else {
sumaJugador1+=aleatorioNumero;
}
printf("\nEsta es tu carta jugador 1: %i de %c. Tu puntuacion es de %f.\n", aleatorioNumero, palo, sumaJugador1);
printf("\nJugador 1, si quieres otra carta teclea 'y' si te plantas teclea 'n'.\n");
scanf("%c", &resp);
if (resp=='y') {
respuesta=true;
}
else {
respuesta=false;
}
//Jugador 2, recibe la segunda carta
aleatorioNumero=1+rand()%(11-1);
aleatorioPalo=1+rand()%(4-1);
switch (aleatorioPalo) {
case 1: palo="oros";
break;
case 2: palo="espadas";
break;
case 3: palo="copas";
break;
case 4: palo="palos";
break;
}
if (aleatorioNumero==8 || aleatorioNumero==9 || aleatorioNumero==10) {
sumaJugador2+=0.5;
}
else {
sumaJugador2+=aleatorioNumero;
}
printf("\nEsta es tu carta jugador 2: %i de %c. Tu puntuacion es de %f.", aleatorioNumero, palo, sumaJugador2);
// Jugador 1 pide carta en caso de no plantarse con la primera carta
while (respuesta=true) {
aleatorioNumero=1+rand()%(10-1);
aleatorioPalo=1+rand()%(4-1);
if (aleatorioNumero<=7){
sumaJugador1+=aleatorioNumero;
}
else{
sumaJugador1+=0.5;
}
switch (aleatorioPalo) {
case 1: palo="oros";
break;
case 2: palo="espadas";
break;
case 3: palo="copas";
break;
case 4: palo="palos";
}
if (sumaJugador1 > maximaPuntuacion) {
printf("\n -Estas eliminado, te has pasado de SIETE Y MEDIO!");
respuesta=false;
palo="exit";
}
else {
printf("\nEsta es tu carta, el %i de %c, tu puntuacion es de %f.\n",aleatorioNumero, palo, sumaJugador1);
printf("\nJugador 1, si quieres otra carta teclea 'y' si te plantas teclea 'n'.\n");
scanf("%c", &resp);
}
if (resp=='y') {
respuesta=true;
}
else {
respuesta=false;
}
}
printf("\nJugador 2, si quieres otra carta teclea 'y' si te plantas teclea 'n'.\n");
scanf("%c", &resp);
if (resp=='y') {
respuesta=true;
}
else {
respuesta=false;
}
//Jugador 2, pide carta en caso de no plantarse con la primera carta
while (respuesta=true) {
aleatorioNumero=1+rand()%(10-1);
aleatorioPalo=1+rand()%(4-1);
if (aleatorioNumero<=7){
sumaJugador2+=aleatorioNumero;
}
else{
sumaJugador2+=0.5;
}
switch (aleatorioPalo) {
case 1: palo="oros";
break;
case 2: palo="espadas";
break;
case 3: palo="copas";
break;
case 4: palo="palos";
}
if (sumaJugador2 > maximaPuntuacion) {
printf("\n -Estas eliminado, te has pasado de SIETE Y MEDIO!");
respuesta=false;
palo="exit";
}
else {
printf("\nEsta es tu carta, el %i de %c, tu pntuacion es de %f",aleatorioNumero, palo, sumaJugador2);
printf("\nSi quieres otra carta teclea 'y' si te plantas teclea 'n'.\n");
scanf("%c", &resp);
}
if (resp=='y') {
respuesta=true;
}
else {
respuesta=false;
}
}
//Los resultados de la partida se muestran en este bloque
if (sumaJugador1==sumaJugador2) {
printf("\nHABEIS EMPATADO, la puntuacion del jugador 1 es de %f, i la del jugaro 2 es de %f", sumaJugador1, sumaJugador2);
}
if (sumaJugador1>sumaJugador2) {
printf("El jugador 1 HA GANADO! Con una puntuacion de %f, frente a la puntuacion %f del jugador 2.", sumaJugador1, sumaJugador2);
}
if (sumaJugador2>sumaJugador1) {
printf("El jugador 2 HA GANADO! Con una puntuacion de %f, frente a la puntuacion %f del jugador 1.", sumaJugador2, sumaJugador1);
}
return 0;
} |