Juego de triqui/gato

Iniciado por karurosu, Junio 20, 2014, 10:41:58 PM

Tema anterior - Siguiente tema

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

Junio 20, 2014, 10:41:58 PM Ultima modificación: Junio 20, 2014, 11:17:30 PM por ANTRAX
Bueno pues acá les dejo un pequeño código de este juego en C  :D se puede mejorar pero básicamente es la "base", espero que les sirva de algo, ¡saludos!

Código: c

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include <conio.h>
#include <windows.h>

int main(int argc, char *argv[])
{
    int a1=0, a2=0, a3=0, b1=0, b2=0, b3=0, d1=0, d2=0, d3=0, dec, bandera=0,columna=0,fila=0, ganador = 0, juego=1, turno=0, ocupado =  0;
    char nombre1[15], nombre2[15], gato[200];

HANDLE hConsoleOutput;
COORD coord;
hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 10;
coord.Y=10;
SetConsoleCursorPosition(hConsoleOutput,coord);
   
  while (juego ==1)
              {
  a1=0;
  a2=0;
  a3=0;
  b1=0;
  b2=0;
  b3=0;
  d1=0;
  d2=0;
  d3=0;
  bandera=0;
  columna=0;
  fila=0;
  ganador = 0;
  dec = 0;
  turno = 0;
  ocupado = 0;
  system ("CLS");
  printf ("JUEGO DEL GATO\n\n");
  printf ("Creado por: Lah-Vahn.\n\n");
  printf ("Seleccione que desea hacer:\n");
  printf ("1.-Jugar.\n");
  printf ("2.-Instrucciones.\n");
  printf ("3.-Salir.\n");
  scanf ("%i",& dec);
  switch (dec){
         case 1:
              system ("CLS");
            printf ("Ingrese nombre del jugador 1:\n");
            scanf ("%s",&nombre1);
            printf ("Ingrese nombre del jugador 2:\n");
            scanf ("%s",&nombre2);
            system ("CLS");
            printf ("   |     |   \n------------- \n   |     |   \n-------------\n   |     |   \n\n");
            while (ganador == 0){
            if (bandera == 0 && ganador == 0)
            {
                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=6;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                    printf ("Turno de %s.\n\n",nombre1);
                        printf ("Ingresa fila:\n");
                        scanf ("%i",&fila);
                        printf ("Ingresa columna:\n");
                        scanf ("%i",&columna);
                        //Revisión de espacios ocupados
                        if (fila == 0 && columna == 0 && (a1==1 || a1==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 0 && columna == 1 && (a2==1 || a2==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 0 && columna == 2 && (a3==1 || a3==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 1 && columna == 0 && (b1==1 || b1==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 1 && columna == 1 && (b2==1 || b2==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 1 && columna == 2 && (b3==1 || b3==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 2 && columna == 0 && (d1==1 || d1==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 2 && columna == 1 && (d2==1 || d2==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 2 && columna == 2 && (d3==1 || d3==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }


Código: c

//Aquí comienza la asignación
                        if (fila == 0 && columna == 0 && a1==0){
                                 hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 a1 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 0 && columna == 1 && a2==0){
                                                  hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 a2 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 0 && columna == 2 && a3==0){
                                                              hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 a3 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 0 && b1==0){
                                                                               hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 b1 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 1 && b2==0){
                                                                                                            hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 b2 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 2 && b3==0){
                                                                                                                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 b3 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 0 && d1==0){
                                                                                                                                                                    hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 d1 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 1 && d2==0){
                                                                                                                                                                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 d2 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 2 && d3==0){
                                                                                                                                                                                                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 d3 = 1;
                                 ocupado = 0;
                                 }
                        if (fila>2 || fila<0 || columna>2 || columna<0){
                              printf ("Has ingresado valores erroneos.\n");
                              }


Código: c

//comienza comprobaciòn de ganador
                        if (a1+a2+a3==3 && ganador==0){
                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (b1+b2+b3==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (d1+d2+d3==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a1+b1+d1==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a2+b2+d2==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a3+b3+d3==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a1+b2+d3==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a3+b2+d1==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (ocupado == 0){
                                    bandera = 1;
                                    turno = turno + 1;
                                    }
                        if (turno == 9 && ganador == 0){
                                                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Ha sido un empate.\n");
                                         ganador = 1;
                                  }
                        }


Código: c

//turno del jugador 2
            if (bandera == 1 && ganador==0)
            {
                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=6;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                    printf ("Turno de %s.\n\n",nombre2);
                        printf ("Ingresa fila:\n");
                        scanf ("%i",&fila);
                        printf ("Ingresa columna:\n");
                        scanf ("%i",&columna);
                        //Revisión de espacios ocupados
                        if (fila == 0 && columna == 0 && (a1==1 || a1==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 0 && columna == 1 && (a2==1 || a2==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 0 && columna == 2 && (a3==1 || a3==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 1 && columna == 0 && (b1==1 || b1==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 1 && columna == 1 && (b2==1 || b2==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 1 && columna == 2 && (b3==1 || b3==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 2 && columna == 0 && (d1==1 || d1==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 2 && columna == 1 && (d2==1 || d2==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 2 && columna == 2 && (d3==1 || d3==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }


Código: c

//Aquí comienza la asignación
                        if (fila == 0 && columna == 0 && a1==0){
                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 a1 = 5;
                                  ocupado = 0;
                                 }
                        if (fila == 0 && columna == 1 && a2==0){
                                                                       hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 a2 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 0 && columna == 2 && a3==0){
                                                                               hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 a3 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 0 && b1==0){
                                                                                                            hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 b1 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 1 && b2==0){
                                                                                                                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 b2 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 2 && b3==0){
                                                                                                                                                                    hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 b3 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 0 && d1==0){
                                                                                                                                                                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 d1 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 1 && d2==0){
                                                                                                                                                                                                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 d2 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 2 && d3==0){
                                                                                                                                                                                                                                                   hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 d3 = 5;
                                 ocupado = 0;
                                 }
                        if (fila>2 || fila<0 || columna>2 || columna<0){
                              printf ("Has ingresado valores erroneos.\n");
                              }


Código: c

//comienza comprobaciòn de ganador
                        if (a1+a2+a3==15 && ganador==0){
                            hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (b1+b2+b3==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (d1+d2+d3==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a1+b1+d1==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a2+b2+d2==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a3+b3+d3==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a1+b2+d3==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a3+b2+d1==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (ocupado == 0){
                                    bandera = 0;
                                    turno = turno + 1;
                                    }
                        if (turno == 9 && ganador == 0){
                                                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Ha sido un empate.\n");
                                         ganador = 1;
                                  }
                        }
                  }
            break;
         case 2:
              system ("CLS");
              printf ("INSTRUCCIONES\n\n");
              printf ("1.-Ingrese el numero 1 para jugar, el 2 para las instrucciones y el 3 para salir.\n");
              printf ("2.-Al jugar ingrese el nombre de los dos jugadores.\n");
              printf ("3.-Ingrese la fila y columna donde desea colocar su tiro.\n");
              printf ("4.-Ganara el jugador que logre 3 tiros consecutivos en linea recta.\n\n");   
              break;
         case 3:
              exit(1);
              break;
         default:
              printf ("Error en el valor Ingresado.\n");   
              break;
         }
  system("PAUSE");
                          }
}

Muy bueno bro! Se ve excelente!!!
Muchas gracias por compartirlo!

Saludos!
ANTRAX