3 en raya Help

Iniciado por safkevin, 8 Mayo 2010, 05:59 AM

0 Miembros y 1 Visitante están viendo este tema.

safkevin

Necesito ayuda no se porque nunca me acepta los movimientos mi programa ya lo revise de arriba a abajo y todo esta bien  :(

#include <stdio.h>
int main()
{
char c1,c2,c3,c4,c5,c6,c7,c8,c9,movimiento,marcajugador,jugar_otra;
int turno_jugador;
c1='1'; //Inicializacion Variables
c2='2';
c3='3';
c4='4';
c5='5';
c6='6';
c7='7';
c8='8';
c9='9';
turno_jugador=1;
bool juegoterminado(true),juego_ganado(true),movalido;
do{
printf("\t\t\t\t||%c||%c||%c||\n",c1,c2,c3);
printf("\t\t\t\t||+||+||+||\n");
printf("\t\t\t\t||%c||%c||%c||\n",c4,c5,c6);
printf("\t\t\t\t||+||+||+||\n");
printf("\t\t\t\t||%c||%c||%c||\n",c7,c8,c9);
printf("\t\t\t\t||+||+||+||\n\n");
if(turno_jugador==1)//Marca Jugador
{marcajugador= 'X';}
else
{marcajugador= 'O';}
printf("Jugador: %d Movimiento: ",turno_jugador);
do{
scanf("%c",&movimiento);
movalido=true;
//Checar movimientos
if (movimiento == '1' && c1 == '1')
{c1 = marcajugador;}
else if (movimiento == '2' && c2 == '2')
{c2 = marcajugador;}
else if (movimiento == '3' && c3 == '3')
{c3 = marcajugador;}
else if (movimiento == '4' && c4 == '4')
{c4 = marcajugador;}
else if (movimiento == '5' && c5 == '5')
{c5 = marcajugador;}
else if (movimiento == '6' && c6 == '6')
{c6 = marcajugador;}
else if (movimiento == '7' && c7 == '7')
{c7 = marcajugador;}
else if (movimiento == '8' && c8 == '8')
{c8 = marcajugador;}
else if (movimiento == '9' && c9 == '9')
{c9 = marcajugador;}
else {printf("Movimiento Invalido, Intenta Otra Vez\n");}
movalido = false;
 }
while(!movalido);
juegoterminado=false;
juego_ganado=true;
if (c1 != '1')
{
if (c2 == c1 && c3 == c1)
{juegoterminado = true;}

if (c4 == c1 && c7 == c1)
{juegoterminado = true;}
}
if (c5 != '5')
{
if (c1 == c5 && c9 == 5)
{juegoterminado = true;}
if (c2 == c5 && c8 == c5)
{juegoterminado = true;}
if (c4 == c5 && c6 == c5)
{juegoterminado = true;}
if (c3 == c5 && c7 == c5)
{juegoterminado = true;}
}
if (c9 != '9')
{
if (c3 == c9 && c6 == c9)
{juegoterminado = true;}
if (c7 == c9 && c8 == c9)
{juegoterminado = true;}

}
if (c1 != '1' && c2 != '2' && c3 != '3' &&
c4 != '4' && c5 != '5' && c6 != '6' &&
c7 != '7' && c8 != '8' && c9 != '9' && !juegoterminado)
{
juegoterminado = true;
juego_ganado = false;
   }
if (juegoterminado)
{
if (juego_ganado)
{printf("Juagador: %d Gana!",turno_jugador);}  
// Imprimir Tablero
printf("\t\t\t\t||%c||%c||%c||\n",c1,c2,c3);
printf("\t\t\t\t||+||+||+||\n");
printf("\t\t\t\t||%c||%c||%c||\n",c4,c5,c6);
printf("\t\t\t\t||+||+||+||\n");
printf("\t\t\t\t||%c||%c||%c||\n",c7,c8,c9);
printf("\t\t\t\t||+||+||+||\n\n");
printf("Juego Terminado!");
printf("Jugar De Nuevo (Y/N)?");
scanf("%d",&jugar_otra);
if (jugar_otra == 'y'||jugar_otra == 'Y')
{
juegoterminado = false;
c1 = '1';
c2 = '2';
c3 = '3';
c4 = '4';
c5 = '5';
c6 = '6';
c7 = '7';
c8 = '8';
c9 = '9';
   }
turno_jugador=1;
}
else {
if (turno_jugador == 1)
{turno_jugador = 2;}
else
{turno_jugador = 1;}
 }
} while (!juegoterminado);
}



.:S'A'F:. Kevin

ralymontes

mm podrias decir como funciona?

Y como se usa (en teoria)..???

para pdoer entenderlo primero y ver si el code concuerda con lo que queires ahcer.

safkevin

me sorprende que nunca ayas jugado 3 en raya  es algo como esto:




bueno el objetivo de este juego esque el primero tira con una x o y si juntas 3 en raya ya sea en vertical u orizontal o en diagonal ganas algo asi:


ya he revisado el codigo pero en teoria esta bien no se que mas hacer  :huh:

espero haberte ayudado y espero que me ayudes jaja

.:S'A'F:. Kevin

Og.

Código (cpp) [Seleccionar]
do{
scanf("%c",&movimiento);
movalido=true;
//Checar movimientos

if (movimiento == '1' && c1 == '1')
{
  c1 = marcajugador;
} else if (movimiento == '2' && c2 == '2') {
  c2 = marcajugador;
} else if (movimiento == '3' && c3 == '3') {
  c3 = marcajugador;
} else if (movimiento == '4' && c4 == '4') {
  c4 = marcajugador;
} else if (movimiento == '5' && c5 == '5') {
  c5 = marcajugador;
} else if (movimiento == '6' && c6 == '6') {
  c6 = marcajugador;
} else if (movimiento == '7' && c7 == '7') {
  c7 = marcajugador;
} else if (movimiento == '8' && c8 == '8') {
  c8 = marcajugador;
} else if (movimiento == '9' && c9 == '9') {
  c9 = marcajugador;
} else {
  printf("Movimiento Invalido, Intenta Otra Vez\n");
  movalido = false;
}
    } while(!movalido);

Tu error era que la linea
Código (cpp) [Seleccionar]
movalido = false; la tenias fuera del else.
|-