elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Juego del gato usuario vs maquina con srand
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego del gato usuario vs maquina con srand  (Leído 3,846 veces)
EmmanuelTR9

Desconectado Desconectado

Mensajes: 31


Ver Perfil
Juego del gato usuario vs maquina con srand
« en: 29 Octubre 2019, 20:43 pm »

Estoy intentando hacer el modo de usuario vs cpu ya tengo el de usuario1 vs usuario2 pero no entiendo como usar la funcion de random para hacer funcionar esto, si alguien me podria explicar se lo agradeceria.
Código:
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>

int tablero[3][3];
int col, fila;
int modo, ban;
int win;
int pos;
int player;

void gotoxy(int x,int y){
HANDLE hcon;
hcon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD dwPos;
dwPos.X = x;
dwPos.Y= y;
SetConsoleCursorPosition(hcon,dwPos);
}

void escenario(){
gotoxy(33,2); printf("#############");
gotoxy(33,3); printf("# 1 # 2 # 3 #"); //35,3 39,3 43,3
gotoxy(33,4); printf("#############");
gotoxy(33,5); printf("# 4 # 5 # 6 #"); //35,5 39,5 43,5
gotoxy(33,6); printf("#############");
gotoxy(33,7); printf("# 7 # 8 # 9 #"); //35,7 39,7 43,7
gotoxy(33,8); printf("#############");

gotoxy(33,10); printf("#############");
gotoxy(33,11); printf("#   #   #   #"); //35,11 39,11 43,11
gotoxy(33,12); printf("#############");
gotoxy(33,13); printf("#   #   #   #"); //35,13 39,13 43,13
gotoxy(33,14); printf("#############");
gotoxy(33,15); printf("#   #   #   #"); //35,15 39,15 43,15
gotoxy(33,16); printf("#############");
}


main(){
for(col=0; col<3; col++){
for(fila=0; fila<3; fila++){
tablero[col][fila]=5;
}
}

do{
system("cls");
printf("El juego del Gato\n");
ban=0;
gotoxy(1,18);printf("Elija la modalidad de juego: 1 Usuario1 vs Usuario2 - 2 Usuario vs Maquina");
gotoxy(1,19);printf("Modalidad: ");
scanf("%d",&modo);
if(modo == 1){
ban=1;
if(modo==1){
gotoxy(1,20);printf("Usuario1 <<X>> vs Maquina <<O>>");
escenario();
win=0;
player=1;
}
do{
gotoxy(1,21); printf("En que cuadro quiere tirar: ");
scanf("%d",&pos);
if(pos>=1 && pos<=9){
switch(pos){
case 1:
if(tablero[0][0]==5)
{
if(player==1){
tablero[0][0]=1;
player=2;
gotoxy(35,11);printf("%d",tablero[0][0]);
}
else{
tablero[0][0]=0;
player=1;
gotoxy(35,11);printf("%d",tablero[0][0]);
}
}
else{
printf("La Casilla ya esta ocupada, intente de nuevo");
}
break;

case 2:
if(tablero[0][1]==5){
if(player==1){
tablero[0][1]=1;
player=2;
gotoxy(39,11);printf("%d",tablero[0][1]);
}
else{
tablero[0][1]=0;
player=1;
gotoxy(39,11);printf("%d",tablero[0][1]);
}
}
else{
printf("La Casilla ya esta ocupada, intente de nuevo");
}
break;
}
}

}while(win!=1);

}
else{
printf("La Opcion Seleccionada es Erronia intente nuevamente");
}

getch();
}while(ban!=1);
getch();
}


« Última modificación: 1 Noviembre 2019, 07:23 am por EmmanuelTR9 » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Juego del gato usuario vs maquina con srand
« Respuesta #1 en: 30 Octubre 2019, 16:54 pm »

Si quieres recibir ayuda de alguien, pónselo un poco más fácil a quien te intente ayudar...
Es un código bastante grande, la tabulación está regular y sin resaltado de sintaxis (en la etiqueta de apertura de code puedes poner "=c" o "=cpp" sin comillas para que se resalte la sintaxis de C o de C++ o directamente elegir el lenguaje del desplegable "Código GeSHi"). Además no especificas nada de tu problema. Obligas a quien te quiera ayudar a leerse el código entero... y te aseguro que no es para nada apetecible.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
EmmanuelTR9

Desconectado Desconectado

Mensajes: 31


Ver Perfil
Re: Juego del gato usuario vs maquina con srand
« Respuesta #2 en: 1 Noviembre 2019, 07:24 am »

Si quieres recibir ayuda de alguien, pónselo un poco más fácil a quien te intente ayudar...
Es un código bastante grande, la tabulación está regular y sin resaltado de sintaxis (en la etiqueta de apertura de code puedes poner "=c" o "=cpp" sin comillas para que se resalte la sintaxis de C o de C++ o directamente elegir el lenguaje del desplegable "Código GeSHi"). Además no especificas nada de tu problema. Obligas a quien te quiera ayudar a leerse el código entero... y te aseguro que no es para nada apetecible.

Lo siento pero me sentia desesperado ahora ya, me explico si es que puedes explicarme como puedo hacer que cuando jugador 1(yo) tire despues siga la maquina me entiendes?
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Juego del gato usuario vs maquina con srand
« Respuesta #3 en: 1 Noviembre 2019, 17:33 pm »

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<windows.h>
  4. #include<conio.h>
  5.  
  6. int tablero[3][3];
  7. int col, fila;
  8. int modo, ban;
  9. int win;
  10. int pos;
  11. int player;
  12.  
  13. void gotoxy(int x,int y){
  14.    HANDLE hcon;
  15.    hcon = GetStdHandle(STD_OUTPUT_HANDLE);
  16.    COORD dwPos;
  17.    dwPos.X = x;
  18.    dwPos.Y= y;
  19.    SetConsoleCursorPosition(hcon,dwPos);
  20. }
  21.  
  22. void escenario(){
  23.    gotoxy(33,2); printf("#############");
  24.    gotoxy(33,3); printf("# 1 # 2 # 3 #"); //35,3 39,3 43,3
  25.    gotoxy(33,4); printf("#############");
  26.    gotoxy(33,5); printf("# 4 # 5 # 6 #"); //35,5 39,5 43,5
  27.    gotoxy(33,6); printf("#############");
  28.    gotoxy(33,7); printf("# 7 # 8 # 9 #"); //35,7 39,7 43,7
  29.    gotoxy(33,8); printf("#############");
  30.  
  31.    gotoxy(33,10); printf("#############");
  32.    gotoxy(33,11); printf("#   #   #   #"); //35,11 39,11 43,11
  33.    gotoxy(33,12); printf("#############");
  34.    gotoxy(33,13); printf("#   #   #   #"); //35,13 39,13 43,13
  35.    gotoxy(33,14); printf("#############");
  36.    gotoxy(33,15); printf("#   #   #   #"); //35,15 39,15 43,15
  37.    gotoxy(33,16); printf("#############");
  38. }
  39.  
  40.  
  41. main(){
  42.    for(col=0; col<3; col++){
  43.        for(fila=0; fila<3; fila++){
  44.            tablero[col][fila]=5;
  45.        }
  46.    }
  47.  
  48.    do{
  49.        system("cls");
  50.        printf("El juego del Gato\n");
  51.        ban=0;
  52.        gotoxy(1,18);printf("Elija la modalidad de juego: 1 Usuario1 vs Usuario2 - 2 Usuario vs Maquina");
  53.        gotoxy(1,19);printf("Modalidad: ");
  54.        scanf("%d",&modo);
  55.        if(modo == 1){
  56.            ban=1;
  57.            if(modo==1){
  58.                gotoxy(1,20);printf("Usuario1 <<X>> vs Maquina <<O>>");
  59.                escenario();
  60.                win=0;
  61.                player=1;
  62.            }
  63.            do{
  64.                gotoxy(1,21); printf("En que cuadro quiere tirar: ");
  65.                scanf("%d",&pos);
  66.                if(pos>=1 && pos<=9){
  67.                    switch(pos){
  68.                        case 1:
  69.                            if(tablero[0][0]==5){
  70.                                if(player==1){
  71.                                    tablero[0][0]=1;
  72.                                    player=2;
  73.                                    gotoxy(35,11);printf("%d",tablero[0][0]);
  74.                                }
  75.                                else{
  76.                                    tablero[0][0]=0;
  77.                                    player=1;
  78.                                    gotoxy(35,11);printf("%d",tablero[0][0]);
  79.                                }
  80.                            }
  81.                            else{
  82.                                printf("La Casilla ya esta ocupada, intente de nuevo");
  83.                            }
  84.                            break;
  85.  
  86.                        case 2:
  87.                            if(tablero[0][1]==5){
  88.                                if(player==1){
  89.                                    tablero[0][1]=1;
  90.                                    player=2;
  91.                                    gotoxy(39,11);printf("%d",tablero[0][1]);
  92.                                }
  93.                                else{
  94.                                    tablero[0][1]=0;
  95.                                    player=1;
  96.                                    gotoxy(39,11);printf("%d",tablero[0][1]);
  97.                                }
  98.                            }
  99.                            else{
  100.                                printf("La Casilla ya esta ocupada, intente de nuevo");
  101.                            }
  102.                            break;
  103.                    }
  104.                }
  105.  
  106.            }while(win!=1);
  107.  
  108.        }
  109.        else{
  110.            printf("La Opcion Seleccionada es Erronia intente nuevamente");
  111.        }
  112.  
  113.        getch();
  114.    }while(ban!=1);
  115.    getch();
  116. }
Esto era lo que estaba pidiendo que hicieras para poder leer tu código porque sino es realmente imposible saber hasta donde llega cada llave...

Deberías usar funciones y usar variables locales. Las variables globales hacen a los programas inconsistentes... Para algo existen los parámetros a funciones. Además si te das cuenta:
  • Las líneas 55y 57 son lo mismo. Si entra en el primer <if> obviamente entrará en el segundo también.
  • No sé cuál es la utilidad de la variable <ban>.
  • La línea 66 no es necesaria ya que puedes hacer el <switch> del 1 al 9 y un caso <default> para cualquier otro caso.
  • No utilices números mágicos (es decir, número literales como para el tamaño de la matriz o los bucles for). Es mejor crear unas constantes por ejemplo así:
Código
  1. #define TAM_COLS 3
  2. #define TAM_FILAS 3
  • En vez de inicializar toda la matriz a 5 (que entiendo que es un número al azar) sería mejor inicializarla a 0 y usar el 1 para el primer jugador y el 2 para el segundo.
  • Cada <case> es prácticamente igual al resto y ocupa 15 líneas. Agrupar código en una función te ahorrará bastante.


Yo haría lo siguiente: inicializar el tablero a 0, usar la variable <jugador> con valor {1,2} para determinar el jugador en cada momento, la variable <modo> con valor {1,2} para determinar 2 jugadores o 1 jugador vs máquina, respectivamente; y la variable <ganador> con valor {0,1,2} para representar ningún ganador, el primer jugador gana o el segundo jugador gana, respectivamente.

El programa general sería algo así:
Código
  1. // librerias
  2.  
  3. #define TAM_FILA 3
  4. #define TAM_COL 3
  5.  
  6. // prototipos de funciones
  7. // es mejor poner los prototipos antes del main y las funciones despues del main. Tambien se pueden poner las funciones completas antes del main
  8.  
  9. int main(){ // la funcion main es de tipo int. Es mejor ponerlo siempre
  10.    int tablero[TAM_FILA][TAM_COL]; // tablero del juego
  11.    int jugador = 1; // indica el jugador actual (por defecto el 1). valores = {1,2}
  12.    int modo; // indica el modo de juego. valores = {1,2}
  13.    int ganador = 0; // indica el ganador. valores = {0,1,2}
  14.  
  15.    inicializarTablero(tablero, 0);
  16.  
  17.    modo = elegirModo();
  18.  
  19.    while(!ganador && !tableroCompleto(tablero)){
  20.        posicion = elegirPosicion(tablero, jugador, modo);
  21.        actualizarTablero(tablero, jugador, posicion);
  22.        ganador = comprobarGanador(tablero);
  23.        jugador = (jugador + 1) % jugador; // intercambia el jugador de 1 a 2 y de 2 a 1
  24.    }
  25.  
  26.    if(ganador)
  27.        printf("Jugador %d gana!!", ganador);
  28.    else
  29.        printf("Empate...");
  30. }

Un código limpio, corto y sencillo... que con leer el <main> ya sabes lo que hace el programa. Si luego quieres ver cómo funciona una parte específica o quieres cambiar alguna parte, sólo tienes que ir a la función correspondiente.

Con esto claro puedes hacer una función como esta para que un jugador elija una posición VÁLIDA del tablero:
Código
  1. // como la variable tablero deberia ser declarada dentro del main, tendras que pasarla como parametro:
  2. int elegirPosicion(int tablero[][TAM_COLS], int jugador, int modo){
  3.    do{
  4.        if(jugador == 2 && modo == 2) // si le toca a la maquina...
  5.            posicion = 1 + rand() % (TAM_FILA * TAM_COL); // calcula una posicion aleatoria
  6.        else{
  7.            printf("Elige una posicion valida [%d, %d]: ", 1, TAM_FILA * TAM_COL);
  8.            scanf("%d", posicion);
  9.        }
  10.        int fila = (posicion - 1) / TAM_COL; // calculas la fila segun la posicion
  11.        int col = (posicion - 1) % TAM_COL; // calculas la columna segun la posicion
  12.    }  while(fila >= TAM_FILA || col >= TAM_COL || tablero[fila][col]); // la tercera expresion solo funciona si inicializas la matriz a 0 como dije antes
  13.    return posicion;
  14. }

El resto de funciones te las dejo a ti que yo creo que con esto ya te he hecho bastante. Te dejo como guía lo que debería hacer cada función:
Código
  1. // Poner todas las casillas del tablero con el valor <valor>
  2. void inicializarTablero(int tablero[][TAM_COL], int valor);
  3.  
  4. // Mostrar los modos, hacer un filtro para que el modo sea valido y devolverlo cuando lo sea
  5. int elegirModo();
  6.  
  7. // En la funcion <elegirPosicion(...) ya hemos comprobado que la casilla no este ocupada por lo que aqui
  8. // solo tienes que calcular la fila y columna correspondiente y asignarle el valor <jugador>
  9. void actualizarTablero(int tablero[][TAM_COL], int jugador, int posicion);
  10.  
  11. // Recorrer todo el tablero mientras no encuentres un 0 (valor por defecto de las casillas)
  12. // Si encuentras un 0 devuelves el 0 y si no devuelves un numero distinto de 0 (la opcion habitual es 1 para asemejarlo a un true/false).
  13. int tableroCompleto(tablero);
  14.  
  15. // Recorrer todo el tablero. Devolver el numero del jugador que ha ganado y si ninguno ha ganado, devolver un 0.
  16. int comprobarGanador(tablero)
« Última modificación: 1 Noviembre 2019, 17:35 pm por YreX-DwX » En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
EmmanuelTR9

Desconectado Desconectado

Mensajes: 31


Ver Perfil
Re: Juego del gato usuario vs maquina con srand
« Respuesta #4 en: 1 Noviembre 2019, 20:43 pm »

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<windows.h>
  4. #include<conio.h>
  5.  
  6. int tablero[3][3];
  7. int col, fila;
  8. int modo, ban;
  9. int win;
  10. int pos;
  11. int player;
  12.  
  13. void gotoxy(int x,int y){
  14.    HANDLE hcon;
  15.    hcon = GetStdHandle(STD_OUTPUT_HANDLE);
  16.    COORD dwPos;
  17.    dwPos.X = x;
  18.    dwPos.Y= y;
  19.    SetConsoleCursorPosition(hcon,dwPos);
  20. }
  21.  
  22. void escenario(){
  23.    gotoxy(33,2); printf("#############");
  24.    gotoxy(33,3); printf("# 1 # 2 # 3 #"); //35,3 39,3 43,3
  25.    gotoxy(33,4); printf("#############");
  26.    gotoxy(33,5); printf("# 4 # 5 # 6 #"); //35,5 39,5 43,5
  27.    gotoxy(33,6); printf("#############");
  28.    gotoxy(33,7); printf("# 7 # 8 # 9 #"); //35,7 39,7 43,7
  29.    gotoxy(33,8); printf("#############");
  30.  
  31.    gotoxy(33,10); printf("#############");
  32.    gotoxy(33,11); printf("#   #   #   #"); //35,11 39,11 43,11
  33.    gotoxy(33,12); printf("#############");
  34.    gotoxy(33,13); printf("#   #   #   #"); //35,13 39,13 43,13
  35.    gotoxy(33,14); printf("#############");
  36.    gotoxy(33,15); printf("#   #   #   #"); //35,15 39,15 43,15
  37.    gotoxy(33,16); printf("#############");
  38. }
  39.  
  40.  
  41. main(){
  42.    for(col=0; col<3; col++){
  43.        for(fila=0; fila<3; fila++){
  44.            tablero[col][fila]=5;
  45.        }
  46.    }
  47.  
  48.    do{
  49.        system("cls");
  50.        printf("El juego del Gato\n");
  51.        ban=0;
  52.        gotoxy(1,18);printf("Elija la modalidad de juego: 1 Usuario1 vs Usuario2 - 2 Usuario vs Maquina");
  53.        gotoxy(1,19);printf("Modalidad: ");
  54.        scanf("%d",&modo);
  55.        if(modo == 1){
  56.            ban=1;
  57.            if(modo==1){
  58.                gotoxy(1,20);printf("Usuario1 <<X>> vs Maquina <<O>>");
  59.                escenario();
  60.                win=0;
  61.                player=1;
  62.            }
  63.            do{
  64.                gotoxy(1,21); printf("En que cuadro quiere tirar: ");
  65.                scanf("%d",&pos);
  66.                if(pos>=1 && pos<=9){
  67.                    switch(pos){
  68.                        case 1:
  69.                            if(tablero[0][0]==5){
  70.                                if(player==1){
  71.                                    tablero[0][0]=1;
  72.                                    player=2;
  73.                                    gotoxy(35,11);printf("%d",tablero[0][0]);
  74.                                }
  75.                                else{
  76.                                    tablero[0][0]=0;
  77.                                    player=1;
  78.                                    gotoxy(35,11);printf("%d",tablero[0][0]);
  79.                                }
  80.                            }
  81.                            else{
  82.                                printf("La Casilla ya esta ocupada, intente de nuevo");
  83.                            }
  84.                            break;
  85.  
  86.                        case 2:
  87.                            if(tablero[0][1]==5){
  88.                                if(player==1){
  89.                                    tablero[0][1]=1;
  90.                                    player=2;
  91.                                    gotoxy(39,11);printf("%d",tablero[0][1]);
  92.                                }
  93.                                else{
  94.                                    tablero[0][1]=0;
  95.                                    player=1;
  96.                                    gotoxy(39,11);printf("%d",tablero[0][1]);
  97.                                }
  98.                            }
  99.                            else{
  100.                                printf("La Casilla ya esta ocupada, intente de nuevo");
  101.                            }
  102.                            break;
  103.                    }
  104.                }
  105.  
  106.            }while(win!=1);
  107.  
  108.        }
  109.        else{
  110.            printf("La Opcion Seleccionada es Erronia intente nuevamente");
  111.        }
  112.  
  113.        getch();
  114.    }while(ban!=1);
  115.    getch();
  116. }
Esto era lo que estaba pidiendo que hicieras para poder leer tu código porque sino es realmente imposible saber hasta donde llega cada llave...

Deberías usar funciones y usar variables locales. Las variables globales hacen a los programas inconsistentes... Para algo existen los parámetros a funciones. Además si te das cuenta:
  • Las líneas 55y 57 son lo mismo. Si entra en el primer <if> obviamente entrará en el segundo también.
  • No sé cuál es la utilidad de la variable <ban>.
  • La línea 66 no es necesaria ya que puedes hacer el <switch> del 1 al 9 y un caso <default> para cualquier otro caso.
  • No utilices números mágicos (es decir, número literales como para el tamaño de la matriz o los bucles for). Es mejor crear unas constantes por ejemplo así:
Código
  1. #define TAM_COLS 3
  2. #define TAM_FILAS 3
  • En vez de inicializar toda la matriz a 5 (que entiendo que es un número al azar) sería mejor inicializarla a 0 y usar el 1 para el primer jugador y el 2 para el segundo.
  • Cada <case> es prácticamente igual al resto y ocupa 15 líneas. Agrupar código en una función te ahorrará bastante.


Yo haría lo siguiente: inicializar el tablero a 0, usar la variable <jugador> con valor {1,2} para determinar el jugador en cada momento, la variable <modo> con valor {1,2} para determinar 2 jugadores o 1 jugador vs máquina, respectivamente; y la variable <ganador> con valor {0,1,2} para representar ningún ganador, el primer jugador gana o el segundo jugador gana, respectivamente.

El programa general sería algo así:
Código
  1. // librerias
  2.  
  3. #define TAM_FILA 3
  4. #define TAM_COL 3
  5.  
  6. // prototipos de funciones
  7. // es mejor poner los prototipos antes del main y las funciones despues del main. Tambien se pueden poner las funciones completas antes del main
  8.  
  9. int main(){ // la funcion main es de tipo int. Es mejor ponerlo siempre
  10.    int tablero[TAM_FILA][TAM_COL]; // tablero del juego
  11.    int jugador = 1; // indica el jugador actual (por defecto el 1). valores = {1,2}
  12.    int modo; // indica el modo de juego. valores = {1,2}
  13.    int ganador = 0; // indica el ganador. valores = {0,1,2}
  14.  
  15.    inicializarTablero(tablero, 0);
  16.  
  17.    modo = elegirModo();
  18.  
  19.    while(!ganador && !tableroCompleto(tablero)){
  20.        posicion = elegirPosicion(tablero, jugador, modo);
  21.        actualizarTablero(tablero, jugador, posicion);
  22.        ganador = comprobarGanador(tablero);
  23.        jugador = (jugador + 1) % jugador; // intercambia el jugador de 1 a 2 y de 2 a 1
  24.    }
  25.  
  26.    if(ganador)
  27.        printf("Jugador %d gana!!", ganador);
  28.    else
  29.        printf("Empate...");
  30. }

Un código limpio, corto y sencillo... que con leer el <main> ya sabes lo que hace el programa. Si luego quieres ver cómo funciona una parte específica o quieres cambiar alguna parte, sólo tienes que ir a la función correspondiente.

Con esto claro puedes hacer una función como esta para que un jugador elija una posición VÁLIDA del tablero:
Código
  1. // como la variable tablero deberia ser declarada dentro del main, tendras que pasarla como parametro:
  2. int elegirPosicion(int tablero[][TAM_COLS], int jugador, int modo){
  3.    do{
  4.        if(jugador == 2 && modo == 2) // si le toca a la maquina...
  5.            posicion = 1 + rand() % (TAM_FILA * TAM_COL); // calcula una posicion aleatoria
  6.        else{
  7.            printf("Elige una posicion valida [%d, %d]: ", 1, TAM_FILA * TAM_COL);
  8.            scanf("%d", posicion);
  9.        }
  10.        int fila = (posicion - 1) / TAM_COL; // calculas la fila segun la posicion
  11.        int col = (posicion - 1) % TAM_COL; // calculas la columna segun la posicion
  12.    }  while(fila >= TAM_FILA || col >= TAM_COL || tablero[fila][col]); // la tercera expresion solo funciona si inicializas la matriz a 0 como dije antes
  13.    return posicion;
  14. }

El resto de funciones te las dejo a ti que yo creo que con esto ya te he hecho bastante. Te dejo como guía lo que debería hacer cada función:
Código
  1. // Poner todas las casillas del tablero con el valor <valor>
  2. void inicializarTablero(int tablero[][TAM_COL], int valor);
  3.  
  4. // Mostrar los modos, hacer un filtro para que el modo sea valido y devolverlo cuando lo sea
  5. int elegirModo();
  6.  
  7. // En la funcion <elegirPosicion(...) ya hemos comprobado que la casilla no este ocupada por lo que aqui
  8. // solo tienes que calcular la fila y columna correspondiente y asignarle el valor <jugador>
  9. void actualizarTablero(int tablero[][TAM_COL], int jugador, int posicion);
  10.  
  11. // Recorrer todo el tablero mientras no encuentres un 0 (valor por defecto de las casillas)
  12. // Si encuentras un 0 devuelves el 0 y si no devuelves un numero distinto de 0 (la opcion habitual es 1 para asemejarlo a un true/false).
  13. int tableroCompleto(tablero);
  14.  
  15. // Recorrer todo el tablero. Devolver el numero del jugador que ha ganado y si ninguno ha ganado, devolver un 0.
  16. int comprobarGanador(tablero)

Gracias por responder y ayudarme, lo que no mencione es que el programa debe de ser asi porque yo algo parecido estuve haciendo asi pero el profesor lo quiere como lo mostre
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Juego del gato usuario vs maquina con srand
« Respuesta #5 en: 1 Noviembre 2019, 21:11 pm »

Si de verdad me estás diciendo que tu profesor no te deja aplicar ninguno de los consejos y que por ende te está enseñando/obligando a no usar constantes, usar variables globales, repetir código, escribir código innecesario y no organizarlo en funciones... Siento decirte que tienes un pésimo profesor.

Pero bueno, tu duda era cómo generar un valor aleatorio para la máquina y en la función <elegirPosicion()> te he mostrado cómo hacerlo. Así que no sé si tienes alguna duda más.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
EmmanuelTR9

Desconectado Desconectado

Mensajes: 31


Ver Perfil
Re: Juego del gato usuario vs maquina con srand
« Respuesta #6 en: 2 Noviembre 2019, 08:29 am »

si mas o menos me di una idea gracias por responder, el profesor piensa que copiamos del internet pero solamente hacemos el de pasar codigo pero ya vez.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Juego Gato Inteligente.
Programación C/C++
xcoverdalex 5 7,593 Último mensaje 2 Septiembre 2010, 15:00 pm
por xcoverdalex
Juego Gato
Java
Lain0x 2 9,680 Último mensaje 22 Marzo 2011, 05:43 am
por sapito169
Juego del gato « 1 2 »
Programación C/C++
m@o_614 13 21,880 Último mensaje 30 Abril 2012, 03:41 am
por s00rk
juego del gato
Java
m@o_614 4 4,935 Último mensaje 8 Mayo 2012, 22:04 pm
por m@o_614
Ayuda con el juego del gato
Programación C/C++
Dieux Rablia 3 3,549 Último mensaje 20 Mayo 2012, 18:59 pm
por Dieux Rablia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines