Título: 3 en raya Help
Publicado por: safkevin en 8 Mayo 2010, 05:59 am
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); }
Título: Re: 3 en raya Help
Publicado por: ralymontes en 9 Mayo 2010, 05:27 am
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.
Título: Re: 3 en raya Help
Publicado por: safkevin en 11 Mayo 2010, 03:49 am
me sorprende que nunca ayas jugado 3 en raya es algo como esto:
(http://3.bp.blogspot.com/_879bCSPokTg/RorsZNnqZ3I/AAAAAAAAAAs/uAtU537_c2w/s320/tre_en_raya.jpg)
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: (http://treemkt.com/blog/wp-content/uploads/2009/07/tres-en-raya.jpg)
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
Título: Re: 3 en raya Help
Publicado por: Og. en 11 Mayo 2010, 05:09 am
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 movalido = false;
la tenias fuera del else.
|