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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Juego 4 en linea. Ayuda!!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Juego 4 en linea. Ayuda!!!  (Leído 10,947 veces)
mathias_vg

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Juego 4 en linea. Ayuda!!!
« en: 3 Junio 2013, 16:47 pm »

Buenas tardes soy nuevo en el foro y recien me estoy iniciando en el tema de la programacion, estoy intentando hacer el juego 4 en linea pero ando bastante trancado, elijo la dimension de mi tablero y muestro el mismo sin problemas pero cuando hago la primer jugada ya me muestra cualquier cosa.
Les dejo el codigo abajo para ver si me pueden ayudar.


Desde ya, muchas gracias.


Estoy compilando con DevC++


Codigo:

#include <stdio.h>
main()
{
   // Elejimos la dimension del tablero
   int n,k;
   printf("Ingrese la dimension del tablero de juego: ");
   scanf("%d",&n);
    char matriz[n][n];
    int i,j;

    // Mostramos el tablero inicial
    for (i=0;i<n;i++)
    {
       for (j=0;j<n;j++)
        {
           printf("%c ",matriz[j]='-');
          }
printf("\n");
     }
     printf("Haga su jugada: ");
     scanf("%d",&k);
     matriz[k][n]='X';
     printf("%c",matriz[k][n]+matriz[j]);
}


« Última modificación: 3 Junio 2013, 18:04 pm por mathias_vg » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #1 en: 4 Junio 2013, 14:08 pm »

Código
  1. printf("Haga su jugada: ");
  2. scanf("%d",&k);    
  3. matriz[k][n]='X';

Has puesto la coordenada x pero no la y  :silbar:


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #2 en: 4 Junio 2013, 17:21 pm »

Código
  1. printf("Haga su jugada: ");
  2. scanf("%d",&k);    
  3. matriz[k][n]='X';
Has puesto la coordenada x pero no la y  :silbar:

Es decir debería ser algo así::

Código
  1. printf("Haga su jugada: ");
  2. scanf("%d",&k);  
  3. scanf("%d",&n);    
  4. matriz[k][n]='X';

Y además:

Código
  1. printf("%c",matriz[k][n]+matriz[i][j]);

te dará un cararacter "rarito". Debe ser tan solo:

Código
  1. printf("%c",matriz[k][n]);

Saluditos! . ... ..
En línea

mathias_vg

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #3 en: 4 Junio 2013, 22:25 pm »

Hola gracias por las prontas respuestas,

si pongo tan solo printf("%c",matriz[k][n]); me deja toda la matriz en X.

Logro hacer la matriz inicial pero cuando quiero colocar un valor no me da, se me modifican varios.

Les agradezco sus respuestas!
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #4 en: 5 Junio 2013, 01:04 am »


Una pequeñita ayudita que te dibuja el tablero y te va poniendo las X:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.    int n=0,i=0,j=0,k=0,dim=0;
  6.    puts ("Ingresa la dimension del tablero de juego:");
  7.    scanf (" %d",&dim);
  8.    char matriz[dim][dim];
  9.    do
  10.    {
  11.        for (i=0;i<dim;i++)
  12.        {
  13.            for (j=0;j<dim;j++)
  14.            {
  15.                if (matriz[i][j]!='X' )
  16.                    printf("%c ",'-');
  17.                else
  18.                    printf ("%c",'X');
  19.            }
  20.             putchar ('\n');
  21.        }
  22.        puts("\nHaga su jugada. Introduzca las coordenadas:");
  23.        scanf (" %d",&k);
  24.        scanf (" %d",&n);
  25.        matriz[k][n]='X';
  26.        printf ("%c\n",matriz[k][n]);
  27.     }while (1);
  28.    return 0;
  29. }
  30.  

Saluditos! .... ..
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #5 en: 5 Junio 2013, 13:47 pm »

Una pequeñita ayudita que te dibuja el tablero y te va poniendo las X:


Ahora de pequeñita na´de na´. Para que te hagas una idea, el código que te paso rellena la matriz según el tamaño introducido, va colocando las fichas de los jugadores, teniendo en cuenta que no estén ya ocupadas y ...... ¡el tamaño de la consola se ajusta al tamaño de la matriz!.


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4.  
  5. int dim=0,dim_plus=0,x=0,y=0, i=0,j=0,jugador =0;
  6.  
  7. void dibujar_tablero(int matriz[dim_plus][dim_plus],int dim);
  8. void jugadores (int matriz [dim_plus][dim_plus], int dim, int jugador);
  9.  
  10. int main()
  11. {
  12.    char tamanyo_consola[80];
  13.    do
  14.    {
  15.        puts ("\nIngresa la dimension del tablero de juego( 3-10):");
  16.        if (scanf ("%d",&dim)==0)
  17.        {
  18.            while (getchar ()!='\n');
  19.            puts ("\nOpción erronea.Vuelva a intentarlo:");
  20.            dim=12;
  21.        }
  22.    }while (dim<3  || dim>10);
  23.    dim_plus=dim+1;
  24.    int matriz[dim_plus][dim_plus];
  25.    for(i=0;i<=dim;i++)
  26.        for(j=0;j<=dim;j++)
  27.        {
  28.            if (i==0  && j==0 )
  29.                matriz[i][j]=0;
  30.            else if (i==0 && j>0)
  31.                matriz[i][j]=j;
  32.            else if (j==0)
  33.                matriz[i][j]=i;
  34.            else
  35.                matriz[i][j]=0;
  36.        }
  37.    int tam_x=0,tam_y=0;
  38.    tam_x=6*dim+2; /* con estos valores puedes*/
  39.    tam_y=dim+14; /*cambiar el tamanyo de la consola*/
  40.    sprintf(tamanyo_consola, "MODE %d,%d", tam_x, tam_y);
  41.    system ("pause");
  42.    system ("cls");
  43.    system(tamanyo_consola);
  44.    do
  45.    {
  46.        dibujar_tablero( matriz, dim);
  47.        jugadores ( matriz ,dim,jugador);
  48.        jugador++;
  49.        system ("cls");
  50.        dibujar_tablero( matriz, dim);
  51.        jugadores ( matriz ,dim,jugador);
  52.        system ("cls");
  53.        dibujar_tablero( matriz, dim);
  54.        system ("cls");
  55.        jugador=0;
  56.    }while (1);
  57.    return 0;
  58. }
  59.  
  60. void dibujar_tablero(int matriz[dim_plus][dim_plus],int dim)
  61. {
  62.    for(i=0;i<=dim;i++){
  63.        for(j=0;j<=dim;j++){
  64.            if ( matriz[i][j]==11 )
  65.                printf(" (X) ");
  66.            else if ( matriz[i][j]==12 )
  67.                printf (" (O) ");
  68.            else if (i>=1 && j>=1)
  69.                printf (" (-) ");
  70.            else if (i==0 && j==0  )
  71.                printf ("  ");
  72.            else if (j==0  )
  73.                printf (" %d",matriz[i][j]);
  74.            else if (i==0 || j==0  )
  75.                printf ("  %d  ",matriz[i][j]);
  76.            else
  77.                printf (" %d ",matriz[i][j]);
  78.        }
  79.        putchar ('\n');
  80.    }
  81. }
  82. void jugadores (int matriz [dim_plus][dim_plus], int dim, int jugador)
  83. {
  84.        do
  85.        {
  86.            printf("\nJUGADOR %d. Haga su jugada.\nIntroduzca las coordenadas:",jugador+1);
  87.            do
  88.            {
  89.                printf ("\nIngresa la coordenada X( 1-%d):",dim);
  90.                if (scanf (" %d",&x)==0)
  91.                {
  92.                    while (getchar ()!='\n');
  93.                    puts ("\nOpción erronea.Vuelva a intentarlo:");
  94.                    x=dim;
  95.                }
  96.                else if (x<1  || x>dim)
  97.                    puts ("Valor fuera de rango.");
  98.            }while (x<1  || x>dim);
  99.            do
  100.            {
  101.                printf ("Ingresa la coordenada Y( 1-%d):",dim);
  102.                if (scanf (" %d",&y)==0)
  103.                {
  104.                    while (getchar ()!='\n');
  105.                    puts ("\nOpción erronea.Vuelva a intentarlo:");
  106.                    y=dim;
  107.                }
  108.                else if (y<1  || y>dim)
  109.                    puts ("Valor fuera de rango.");
  110.            }while (y<1  || y>dim);
  111.  
  112.            if (matriz[x][y]!=0)
  113.                puts ("Posicion ocupada.\nIntroduzca nuevas coordenadas.");
  114.        }while (matriz[x][y]!=0);
  115.        system ("cls");
  116.        if (jugador ==0)
  117.            matriz[x][y]=11;
  118.        else
  119.            matriz[x][y]=12;
  120. }
  121.  

Cualquier duda, pregunta.

Y a ti te queda implementar la condición de cuando se gana. Espero ansioso tus aportaciones.


Saluditos! .... ..
P.D: ¡Y sin un solo goto!.
« Última modificación: 7 Enero 2014, 17:30 pm por leosansan » En línea

mathias_vg

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #6 en: 5 Junio 2013, 13:54 pm »

Muchas gracias leosansan, me ha sido de gran ayuda, pero cuando intento complilar el ultimo codigo me sale error cuando llamo al procedimiento imprimir_matriz; tampoco me dejan utilizar la el comando getchar  :-X

En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #7 en: 5 Junio 2013, 14:09 pm »

Muchas gracias leosansan, me ha sido de gran ayuda, pero cuando intento complilar el ultimo codigo me sale error cuando llamo al procedimiento imprimir_matriz; tampoco me dejan utilizar la el comando getchar  :-X


¿De qué código me estas hablando?. El mio no tiene ni lo uno ni lo otro.

Si es uno tuyo postealo para revisarlo, pero esta ves hazlo bien: picas en donde pone GeSHi y eliges C++ y en medio de las etiquetas que aparecen copias el código. Si no, es muy difícil de entender, toda vez que el código sin etiquetas no sale completo, como el original. No te olvides, es importante para los que queramos echarte una mano.


Saluditos! .... ..
En línea

mathias_vg

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #8 en: 5 Junio 2013, 14:27 pm »

Código
  1. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 7 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] variable-size type declared outside of any function
  2. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 7 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] variable-size type declared outside of any function
  3. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 8 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] variable-size type declared outside of any function
  4. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 8 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] variable-size type declared outside of any function
  5. In function `int main()':
  6. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 46 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] `dibujar_tablero' undeclared (first use this function)
  7. 46 [Error] (Each undeclared identifier is reported only once for each function it appears in.)
  8. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 47 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] cannot convert `int (*)[((unsigned int)((int)dim_plus))]' to `int (*)[2]' for argument `1' to `void jugadores(int (*)[2], int, int)'
  9. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 51 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] cannot convert `int (*)[((unsigned int)((int)dim_plus))]' to `int (*)[2]' for argument `1' to `void jugadores(int (*)[2], int, int)'
  10. C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp: At global scope:
  11. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 61 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] variable-size type declared outside of any function
  12. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 61 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] variable-size type declared outside of any function
  13. In function `void dibujar_tablero(int (*)[2], int)':
  14. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 61 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] `void dibujar_tablero(int (*)[2], int)' used prior to declaration
  15. C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp: At global scope:
  16. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 83 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] variable-size type declared outside of any function
  17. \Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp 83 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C [Error] variable-size type declared outside of any function
  18. unrecognized option `-static-libstdc++'
  19.  

Ese error me sale cuando intento compilar el codigo que me colgaste abajo.
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Juego 4 en linea. Ayuda!!!
« Respuesta #9 en: 5 Junio 2013, 15:07 pm »

Sorry, cambia la linea:

Código
  1. void imprimir............;
  2.  
  3. y
  4.  
  5. void jugadores (int matriz [dim][dim], int dim, int jugador);
  6.  
  7.  
  8.  

por la actual:

Código
  1. void dibujar_tablero(int matriz[dim_plus][dim_plus],int dim);
  2.  
  3. y
  4.  
  5. void jugadores (int matriz [dim_plus][dim_plus], int dim, int jugador)
  6. {
  7.  

Había puesto una versión anterior. Ya está corregido también en el post anterior. Y por cierto, guárdalo como .c no .cpp, ya que está en C y no en C++.

Yo uso Code::Blocks y no me "canta" ni warnings. ¿No usarás Dev-C++?


Saluditos! .... ..
« Última modificación: 5 Junio 2013, 15:28 pm por leosansan » En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines