Autor
|
Tema: Juego 4 en linea. Ayuda!!! (Leído 12,086 veces)
|
mathias_vg
Desconectado
Mensajes: 39
|
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
Mensajes: 1.211
|
matriz[k][n]='X';
Has puesto la coordenada x pero no la y
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
printf("Haga su jugada: "); scanf("%d",&k); matriz[k][n]='X';
Has puesto la coordenada x pero no la y Es decir debería ser algo así:: matriz[k][n]='X';
Y además: printf("%c",matriz[k][n]+matriz[i][j]);
te dará un cararacter "rarito". Debe ser tan solo: printf("%c",matriz[k][n]);
Saluditos! . ... ..
|
|
|
En línea
|
|
|
|
mathias_vg
Desconectado
Mensajes: 39
|
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
Mensajes: 1.314
|
Una pequeñita ayudita que te dibuja el tablero y te va poniendo las X:#include <stdio.h> #include <stdlib.h> int main() { int n=0,i=0,j=0,k=0,dim=0; puts ("Ingresa la dimension del tablero de juego:"); scanf (" %d",&dim); char matriz[dim][dim]; do { for (i=0;i<dim;i++) { for (j=0;j<dim;j++) { if (matriz[i][j]!='X' ) printf("%c ",'-'); else printf ("%c",'X'); } putchar ('\n'); } puts("\nHaga su jugada. Introduzca las coordenadas:"); scanf (" %d",&k); scanf (" %d",&n); matriz[k][n]='X'; printf ("%c\n",matriz[k][n]); }while (1); return 0; }
Saluditos! .... ..
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
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!.#include <stdio.h> #include <stdlib.h> #include <windows.h> int dim=0,dim_plus=0,x=0,y=0, i=0,j=0,jugador =0; void dibujar_tablero(int matriz[dim_plus][dim_plus],int dim); void jugadores (int matriz [dim_plus][dim_plus], int dim, int jugador); int main() { char tamanyo_consola[80]; do { puts ("\nIngresa la dimension del tablero de juego( 3-10):"); if (scanf ("%d",&dim)==0) { while (getchar ()!='\n'); puts ("\nOpción erronea.Vuelva a intentarlo:"); dim=12; } }while (dim<3 || dim>10); dim_plus=dim+1; int matriz[dim_plus][dim_plus]; for(i=0;i<=dim;i++) for(j=0;j<=dim;j++) { if (i==0 && j==0 ) matriz[i][j]=0; else if (i==0 && j>0) matriz[i][j]=j; else if (j==0) matriz[i][j]=i; else matriz[i][j]=0; } int tam_x=0,tam_y=0; tam_x=6*dim+2; /* con estos valores puedes*/ tam_y=dim+14; /*cambiar el tamanyo de la consola*/ sprintf(tamanyo_consola, "MODE %d,%d", tam_x, tam_y); system ("pause"); system ("cls"); system(tamanyo_consola); do { dibujar_tablero( matriz, dim); jugadores ( matriz ,dim,jugador); jugador++; system ("cls"); dibujar_tablero( matriz, dim); jugadores ( matriz ,dim,jugador); system ("cls"); dibujar_tablero( matriz, dim); system ("cls"); jugador=0; }while (1); return 0; } void dibujar_tablero(int matriz[dim_plus][dim_plus],int dim) { for(i=0;i<=dim;i++){ for(j=0;j<=dim;j++){ if ( matriz[i][j]==11 ) printf(" (X) "); else if ( matriz[i][j]==12 ) printf (" (O) "); else if (i>=1 && j>=1) printf (" (-) "); else if (i==0 && j==0 ) printf (" "); else if (j==0 ) printf (" %d",matriz[i][j]); else if (i==0 || j==0 ) printf (" %d ",matriz[i][j]); else printf (" %d ",matriz[i][j]); } putchar ('\n'); } } void jugadores (int matriz [dim_plus][dim_plus], int dim, int jugador) { do { printf("\nJUGADOR %d. Haga su jugada.\nIntroduzca las coordenadas:",jugador+1); do { printf ("\nIngresa la coordenada X( 1-%d):",dim); if (scanf (" %d",&x)==0) { while (getchar ()!='\n'); puts ("\nOpción erronea.Vuelva a intentarlo:"); x=dim; } else if (x<1 || x>dim) puts ("Valor fuera de rango."); }while (x<1 || x>dim); do { printf ("Ingresa la coordenada Y( 1-%d):",dim); if (scanf (" %d",&y)==0) { while (getchar ()!='\n'); puts ("\nOpción erronea.Vuelva a intentarlo:"); y=dim; } else if (y<1 || y>dim) puts ("Valor fuera de rango."); }while (y<1 || y>dim); if (matriz[x][y]!=0) puts ("Posicion ocupada.\nIntroduzca nuevas coordenadas."); }while (matriz[x][y]!=0); system ("cls"); if (jugador ==0) matriz[x][y]=11; else matriz[x][y]=12; }
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
Mensajes: 39
|
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
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
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 ¿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
Mensajes: 39
|
\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 \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 \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 \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 In function `int main()': \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) 46 [Error] (Each undeclared identifier is reported only once for each function it appears in.) \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)' \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)' C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp: At global scope: \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 \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 In function `void dibujar_tablero(int (*)[2], int)': \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 C:\Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\C Documents and Settings\MatiasC\Escritorio\Practico 1 Soluciones\Sin Nombre1.cpp: At global scope: \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 \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 unrecognized option `-static-libstdc++'
Ese error me sale cuando intento compilar el codigo que me colgaste abajo.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Sorry, cambia la linea: void imprimir............; y void jugadores (int matriz [dim][dim], int dim, int jugador);
por la actual:void dibujar_tablero(int matriz[dim_plus][dim_plus],int dim); y void jugadores (int matriz [dim_plus][dim_plus], int dim, int jugador) {
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
En Age of the Empire Conquerors como juego en lìnea si es una copia???
Juegos y Consolas
|
(¸.•´ .•´Trowa ¸.•´¸.•´¯)
|
4
|
4,939
|
18 Abril 2004, 05:12 am
por redHat
|
|
|
Crea tu propio Juego, sin programar ni una sola linea de codigo
Juegos y Consolas
|
[Decoded]
|
7
|
4,006
|
26 Septiembre 2007, 03:31 am
por [Decoded]
|
|
|
On Live, una plataforma de juego en línea
Noticias
|
wolfbcn
|
0
|
1,394
|
9 Junio 2011, 18:09 pm
por wolfbcn
|
|
|
Juego en linea con anti WPE PRO
Juegos y Consolas
|
komanndoos
|
0
|
2,315
|
1 Noviembre 2015, 03:18 am
por komanndoos
|
|
|
juego de cuatro en linea en lenguaje C
Programación C/C++
|
gwennnnnn26
|
5
|
3,673
|
7 Diciembre 2016, 01:24 am
por jvm1994
|
|