Autor
|
Tema: Juego Gato: definir ganador y repetir coordenada (Leído 1,742 veces)
|
daichi21
Desconectado
Mensajes: 1
|
Hola! tengo este proyecto de crear un juego gato. Tengo listo lo de ir seleccionando casillas, nombre de jugador, etc. Lo que se me dificulta o falta es cómo validar al ganador, o sea, en qué parte o cómo o con qué hacer la comparación de casillas para definir al ganador, tenía una idea con un if, pero no me funciona. También en el momento en que el jugador seleccione una casilla ocupada, lo regrese al paso en donde selecciona casilla, había pensado en un do-while con un switch, pero tampoco funciona. si me pudieran ayudar gracias, esto es lo que llevo: #include <stdio.h> #include <stdlib.h> char gato[3][3]; struct jugador{ char nombre[50] }j1,j2; int main (){ int x, y, i; printf("Jugador X ingresa tu nombre:"); printf("Jugador O ingresa tu nombre:"); for(i=0; i<100; i++){ printf("|%c| |%c| |%c|\n", gato [0][0], gato [0][1], gato [0][2]); printf("|%c| |%c| |%c|\n", gato [1][0], gato [1][1], gato [1][2]); printf("|%c| |%c| |%c|\n", gato [2][0], gato [2][1], gato [2][2]); if(i%2!=0){ printf("%s, elige tu casilla en coordenadas x y y: \n", &j2 ); y=y-1; x=x-1; if (gato[y][x]==' ',gato[y][x]==0){ gato[y][x]= 'O';} else{ printf("elige otra casilla\n"); } } else{ printf("%s, elige tu casilla en coordenadas x y y: \n", &j1 ); y=y-1; x=x-1; if (gato[y][x]==' ',gato[y][x]==0){ gato[y][x]= 'X'; } else{ printf("elige otra casilla\n"); } } } return 0; }
MOD: etiqueta GeSHi.
|
|
« Última modificación: 30 Noviembre 2016, 15:36 pm por MCKSys Argentina »
|
En línea
|
|
|
|
|
KINGARZA
Desconectado
Mensajes: 33
Facebook: Luis Garza
|
Hola que tal, hace poco me encargaron en el colegio un proyecto y opte por hacer un gato, eso de usar coordenadas (al momento de ingresarlas) en lo personal es un poco incomodo, espero y te ayude: /** Alumno: Luis Eduardo Garza Medina programa: Juego Nombre: Gato El juego posee un menu amigable con el usuario, entendible para cualquier usuario. para el menu solo se usan las teclas: 'i', 'e' y 's'; y para jugar son los numeros, donde para acceder a una casilla debe presionarse el siguiente numero: 1 2 3 4 5 6 7 8 9 el jugador uno es representado por un '1' equivalente a X el jugador dos es representado por un '2' equivalente a O Al finalizar el programa, este indica los resultados finales de cada jugador. */ #include <stdio.h> #include<windows.h> #define uno gato[0][0] #define dos gato[0][1] #define tres gato[0][2] #define cuatro gato[1][0] #define cinco gato[1][1] #define seis gato[1][2] #define siete gato[2][0] #define ocho gato[2][1] #define nueve gato[2][2] //el compilador sustituye la cadena en #define short gato[3][3] ={{0,0,0}, //definimos matriz {0,0,0}, {0,0,0}}; short won[2]; //definimos array int verifica(){ //comprobamos si un jugador ya ganó if(uno == dos && dos == tres) return uno; if(uno == cuatro && cuatro == siete) return uno; if(uno == cinco && cinco == nueve) return uno; if(tres == cinco && cinco == siete) return tres; if(tres == seis && seis == nueve) return tres; if(cuatro == cinco && cinco == seis) return cuatro; if(siete == ocho && ocho == nueve) return siete; if(dos == cinco && cinco == ocho) return dos; return 0; } void mostrar(){ //ponemos en pantalla el gato system("cls"); for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++) if(j < 2) printf("%d|", gato[i][j]); else printf("%d", gato[i][j]); if(i < 2) printf("\n-----\n"); else printf("\n"); } } void instrucciones(){ //funcion que muestra las instrucciones del jueo system("cls"); printf("Los controles son los numeros del 1 al 9, por ejemplo:\n\n"); printf("para acceder a la casilla superior izquierda se presiona 1\n\n"); printf("para acceder a la casilla inferorior intermedia se presiona 8\n\n"); system("pause"); } int main (){ short numero, k; char opcion; while(1){//while infinito system("cls"); //limpia la pantalla printf("JUEGO DEL GATO\n\n"); printf("Menu\n\n"); printf("presiona 'i' para ver instrucciones:\n"); printf("Presiona 'e' para comenzar\n"); printf("Presiona 's' para salir\n\n"); scanf("%s", &opcion); switch(opcion){ case 'i': instrucciones(); break; case 'e': memset(gato, 0, sizeof(gato));//inicializa la matriz con valores de 0 for(k = 1; k <= 9; k++){ //este for se repite 9 veces porque son 9 casillas mostrar(); scanf("%d", &numero); if(numero == 1) if(k % 2 == 0) //la operacion del modulo ayuda a determinar de quien es el turno uno = 2; else uno = 1; else if(numero == 2) if(k % 2 == 0) dos = 2; else dos = 1; else if(numero == 3) if(k % 2 == 0) tres = 2; else tres = 1; else if(numero == 4) if(k % 2 == 0) cuatro = 2; else cuatro = 1; else if(numero == 5) if(k % 2 == 0) cinco = 2; else cinco = 1; else if(numero == 6) if(k % 2 == 0) seis = 2; else seis = 1; else if(numero == 7) if(k % 2 == 0) siete = 2; else siete = 1; else if(numero == 8) if(k % 2 == 0) ocho = 2; else ocho = 1; else if(numero == 9) if(k % 2 == 0) nueve = 2; else nueve = 1; int ganador = verifica();//le asignamos a ganador el valor que retorne la funcion verifica if(ganador > 0){ mostrar(); printf("\nEl jugador %d es el GANADOR", ganador); won[ganador - 1]++; //aumentamos en 1 el contador del ganador break; } } system("pause>null"); break; case 's': system("cls"); printf("El jugador 1 gano: %d partidas\n", won[0]); printf("El jugador 2 gano: %d partidas\n", won[1]); printf("Gracias por jugar!\n\n"); return 0; break; default: break; } } }
|
|
« Última modificación: 3 Diciembre 2016, 22:14 pm por KINGARZA »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Juego Gato Inteligente.
Programación C/C++
|
xcoverdalex
|
5
|
7,607
|
2 Septiembre 2010, 15:00 pm
por xcoverdalex
|
|
|
Juego Gato
Java
|
Lain0x
|
2
|
9,694
|
22 Marzo 2011, 05:43 am
por sapito169
|
|
|
Juego del gato
« 1 2 »
Programación C/C++
|
m@o_614
|
13
|
21,922
|
30 Abril 2012, 03:41 am
por s00rk
|
|
|
juego del gato
Java
|
m@o_614
|
4
|
4,949
|
8 Mayo 2012, 22:04 pm
por m@o_614
|
|
|
Ayuda con el juego del gato
Programación C/C++
|
Dieux Rablia
|
3
|
3,560
|
20 Mayo 2012, 18:59 pm
por Dieux Rablia
|
|