Autor
|
Tema: Juego 4 en linea. Ayuda!!! (Leído 11,803 veces)
|
mathias_vg
Desconectado
Mensajes: 39
|
Si uso DevC++, debido a que me piden que se entregue para que funcione con ese compilador. Como puedo hacer para que me funcione en DevC++?
Muchas Gracias
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Si uso DevC++, debido a que me piden que se entregue para que funcione con ese compilador. Como puedo hacer para que me funcione en DevC++?
Muchas Gracias
Estoy en un ordenador de prestado, pero me hará el loco e instalaré el Dev-C++ a ver qué pasa. Tardaré unos minutitos.Saluditos, otra vez! .... ..
|
|
|
En línea
|
|
|
|
mathias_vg
Desconectado
Mensajes: 39
|
Ok, espero tu respuesta. muchas gracias por tu tiempo leosansan. Saludos!
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Ok, espero tu respuesta. muchas gracias por tu tiempo leosansan. Saludos!
¡Pá tras ni pá coger impulso!, como diría un buen canarion.
Es como volver a las cavernas, menos mal que está la imagen del post anterior para comprobar que efectivamente compila, no así en Dev-C++.
No acabo de comprender, si de entender, los múltiples mensajes que "larga" tu compilador. En esencia creo que el problema lo presenta por la declaración de las variables globales y el uso de un parámetro, dim o dim_plus para dimensionar las matrices, ya que no son variables constantes, que es lo que supongo espera el compilador, así como la declaración de variables "en medio" del código, cosa no permitida en C89 y sí en C99, así como el uso que hago de arrays de longitud variable o arrays cuya dimensión no es una constante definida previamente sino que se "escanea" en medio del código.
En fin, que no soy un experto en Dev-C++,nací al mundo del C/C++ de la mano del Code::Blocks, habiendo probado primero con el tuyo, Pelles C, Borland Builder, VisualStudio y algunos más y de todos ellos el que más me convenció para mis propósitos fue el Code::Blocks, con diferencia.
Espero que alguien entre quienes sigan el tema tenga más conocimientos de Dev-C++ y del lenguaje C que yo y pueda hacerlo rular en el dichoso Dev-C++.
Sorry, muchos sorry, la intención era buena, pero no pienso dejar mi Code::Blocks, en el que incluso puedo configurar lo para que acepte las novedades del C++11, por un compilador que no sé si ni tan siquiera llegó a adaptarse a las especificaciones del C99, más que nada por los años que hace que no se actualiza.
De todas formas siempre estoy abierto a aprender, cualquier sugerencia y/o lección magistral que me den será bienvenida, tanto de C como de Dev-C++.
Pero lo positivo es que tienes al menos un código por el que guiarte para tu tarea, trata de adaptarlo. Yo si fuera la adaptación para algo más nuevo me molestaría en hacerlo, pero como dije al principio "¡Pá tras ni pá coger impulso!". Saluditos! .... ..
|
|
|
En línea
|
|
|
|
mathias_vg
Desconectado
Mensajes: 39
|
Ok voy a tratar de verlo con algun compañero de clase que han tenido el mismo problema pero creo que lograron solucionarlo, cualquier cosa te comento luego para ver bien en que quedo esto jeje.
Saludos!!! y una vez mas gracias jeej
|
|
|
En línea
|
|
|
|
mathias_vg
Desconectado
Mensajes: 39
|
leosansan, eh estado tratando de seguir con el juego y hasta ahora he avanzado un poco aca abajo te cuelgo lo que puede hacer, a ver que tan bien esta o que me podes sugerir. Nota en el juego fije la coordenada Y (dim) porque tengo que colocar la ficha en el lugar mas bajo posible. Aguardo tus comentarios, saludos!!! #include <stdio.h> #include <iostream.h> int main() { char d; printf("\n\n\n JUEGO CUATRO EN LINEA\n\n\n\n\n\n\n"); printf(" Nueva partida (S/N)"); int n=0,i=0,j=0,dim=0,resto=0; printf("\n\n\n\nIngresa la dimension del tablero de juego:\n\n"); char matriz[dim][dim]; do { for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) else } } while (resto<=(dim*dim)) { if ((resto%2)==0) { printf("\nJuega JUGADOR 1: "); matriz[dim][n]='O'; printf ("%c\n",matriz [dim ][n ]); for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) else if ((matriz[i][j]!='X') && (matriz[i][j]!='.')) else } } } else { printf("\nJuega JUGADOR 2: "); matriz[dim][n]='X'; printf ("%c\n",matriz [dim ][n ]); for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) else if ((matriz[i][j]!='X') && (matriz[i][j]!='.')) else } } } resto++; } }while (1); return 0; }
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
leosansan, eh estado tratando de seguir con el juego y hasta ahora he avanzado un poco aca abajo te cuelgo lo que puede hacer, a ver que tan bien esta o que me podes sugerir.
Nota en el juego fije la coordenada Y (dim) porque tengo que colocar la ficha en el lugar mas bajo posible.
Aguardo tus comentarios, saludos!!!
Lamento tener que corregir a quien te puso esta tarea ya que su nombre es "conecta 4", donde las fichas obligatoriamente "caen" al fondo, de ahí que se rellenen de esa manera. En cambio, en el "cuatro en ralla" se "escribe" en cualquier posición, de ahí que tanto amchacon como yo te hallamos dicho que eran dos los scanf, uno para cada coordenada. Pero en el conecta-4 efectivamente sólo hace falta uno ya que la ficha "cae" en la columna indicada por el scanf y se parará cuando tropiece con otra.
Te dejo en el código que te paso algunas sugerencias. Lamentablemente ya por hoy no tengo más tiempo. Por cierto, tienes mal una librería, te la dejo corregida. La stdlib sería para usar system y "limpiar la pantalla después de cada jugada:#include <stdio.h> #include <stdlib.h> int main() { char d; printf("\n\n\n JUEGO CUATRO EN LINEA\n\n\n\n\n\n\n"); printf(" Nueva partida (S/N)"); scanf("%c",&d); /*<==esto asi no sirve. Tienes que hacer un do-while*/ /*para si es "s" jugar y si no salir*/ int n=0,i=0,j=0,dim=0,resto=0,/*<<<<<esto es nuevo>>>>>*/jugador=1; printf("\n\n\n\nIngresa la dimension del tablero de juego:\n\n"); scanf ("%d",&dim); char matriz[dim][dim]; do { for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) printf("%c ",'.'); else printf ("%c ",'X'); } printf("\n"); } while (resto<=(dim*dim)) { /*if ((resto%2)==0)*/ if (jugador==1)/*el codigo es mas eficiente porque se ahorra dim*dim divisiones y calculo de restos*/ { jugador++; printf("\nJuega JUGADOR 1: "); scanf (" %d",&n); matriz[dim][n]='O'; printf ("%c\n",matriz[dim][n]); for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { /*<==aqui tienes que revisar los if porque si la posicion*/ /* esta ocupada por X o por O , entonces es matriz[dim-1][n]='O'; es decir, sube, Tal como lo tienes los valores que repiten posicion borran a los anteriores y no sales nunca de la ultima linea*/ if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) printf("%c ",'.'); else if ((matriz[i][j]!='X') && (matriz[i][j]!='.')) printf ("%c ",'O'); else printf ("%c ",'X'); } printf("\n"); } } else { jugador=1; printf("\nJuega JUGADOR 2: "); scanf (" %d",&n); matriz[dim][n]='X'; printf ("%c\n",matriz[dim][n]); for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { /*<==IDEM se superponen tal como esta*/ if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) printf("%c ",'.'); else if ((matriz[i][j]!='X') && (matriz[i][j]!='.')) printf ("%c ",'O'); else printf ("%c ",'X'); } printf("\n"); } } resto++; } }while (1); return 0; system("PAUSE"); }
Saluditos! .... ..
|
|
« Última modificación: 9 Junio 2013, 22:49 pm por leosansan »
|
En línea
|
|
|
|
mathias_vg
Desconectado
Mensajes: 39
|
leosansan como estas? Eh estado tratando de solucionar los problemas que me marcaste, mas precisamente que me imprima hacia arriba las jugadas pero no lo eh lo grado me podrias decir en que estoy fallando? Cuelgo el codigo a continuacion Muchas gracias leosansan como estas? Eh estado tratando de solucionar los problemas que me marcaste, mas precisamente que me imprima hacia arriba las jugadas pero no lo eh lo grado me podrias decir en que estoy fallando? Cuelgo el codigo a continuacion Muchas gracias
|
|
|
En línea
|
|
|
|
mathias_vg
Desconectado
Mensajes: 39
|
#include <stdio.h> #include <stdlib.h> int main() { char d; bool termino = false; int n=0,i=0,j=0,dim1=0,dim2=0,resto=1,contador=1; printf("\n\n\n JUEGO CUATRO EN LINEA\n\n\n\n\n\n\n"); printf(" Nueva partida (S/N) "); switch (d) { case 'N':case 'n': termino = true; break; break; case 'S': case's': printf("\n\n\n\nIngresa la dimension del tablero de juego:\n\n"); dim1 = dim2; char matriz[dim1][dim2]; do { for (i=1;i<=dim1;i++) { for (j=1;j<=dim2;j++) { if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) { } else { } } } while (resto<=(dim2*dim2)) { if ((resto%2)==0) { printf("\nJuega JUGADOR 1: "); matriz[dim1][n]='O'; printf ("%c\n",matriz [dim1 ][n ]); for (i=1;i<=dim1;i++) { for (j=1;j<=dim2;j++) { if ((matriz[i][j]=='X') || (matriz[i][j]=='O')) { matriz[dim1-1][n]='O'; /* corregir */ } if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) { } else { if ((matriz[i][j]!='X') && (matriz[i][j]!='.')) { } else { } } } } } else { printf("\nJuega JUGADOR 2: "); matriz[dim1][n]='X'; printf ("%c\n",matriz [dim1 ][n ]); for (i=1;i<=dim1;i++) { for (j=1;j<=dim2;j++) { if ((matriz[i][j]=='X') || (matriz[i][j]=='O')) { matriz[dim1-1][n]='X'; /* corregir */ } if ((matriz[i][j]!='X') && (matriz[i][j]!='O')) { } else { if ((matriz[i][j]!='X') && (matriz[i][j]!='.')) { } else { } } } } } resto++; } }while (1); return 0; break; } while (!termino); }
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
leosansan, eh estado tratando de seguir con el juego y hasta ahora he avanzado un poco aca abajo te cuelgo lo que puede hacer, a ver que tan bien esta o que me podes sugerir.
Por si te has quedado atascado, te paso el código "ligeramente modificado" para que no tengas problemas al compilar con el Dev-C++.
He mejorado por un lado el tema de las elecciones de las variables y, por otro lado, ya puedes entrar las fichas sin que se superpongan y que "suban", vamos que puedes rellenar el tablero sin problemas.
Harina de otro costal es implementar las condiciones para ver quien gana,si hay empate y si se "salen" del tablero. Si tienes dificultad, si es que te lo piden también, avisa y veremos que se puede hacer. En realidad ya "casi" lo tengo hecho para el "otro" juego, el original de cuatro en línea, pero claro yo hago uso de funciones y no sé si tú puedes usarlas o no. Ya me dirás.
Eso sí, aclaro que no es el código que yo haría sino una mejora en el que has propuesto:#include <stdio.h> #include <stdlib.h> int main() { char d; printf("\n\n\n JUEGO CONECTA CUATRO\n\n\n\n\n\n\n"); do { printf(" Nueva partida (S/N): "); scanf("%c",&d); if (d=='n' || d=='N') { puts ("Hasta lueguito."); return 1; } if (d!='s' && d!='S') puts ("Elija: s / n "); }while (d!='s' && d!='S'); int n=0,i=0,j=0,dim=0,resto=0,k=0,jugador=1; printf("\n\n\n\nIngresa la dimension del tablero de juego(5-10):\n\n"); do { scanf (" \n%d",&dim); if (dim<5 || dim>10) puts("Opcion no valida.\nIngresa la dimension (5-10)"); }while (dim<5 || dim>10); char matriz[dim+1][dim+1]; system ("cls"); do { for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { matriz[i][j]='.'; printf("%c ",matriz[i][j]); } printf("\n"); } while (resto<=(dim*dim)) { if (jugador==1) { jugador++; do { // printf("\nJuega JUGADOR 1: "); scanf ("%d",&n); if (n<1 || n>5) puts ("Posicion no valida.\nEntre un nuevo valor."); }while(n<1 || n>5); for (k=dim;k>=1;k--)/*<==este for es mejorable*/ { if (matriz[k][n]!='.') continue; else { matriz[k][n]='O'; break; } } printf("\n"); for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { printf ("%c ",matriz[i][j]); } printf("\n"); } } else { jugador=1; do { printf("\nJuega JUGADOR 2: "); scanf ("%d",&n); if (n<1 || n>5) puts ("Posicion no valida.\nEntre un nuevo valor."); }while(n<1 || n>5); for (k=dim;k>=1;k--) { if (matriz[k][n]!='.') continue; else { matriz[k][n]='X'; break; } } system ("cls");printf("\n"); for (i=1;i<=dim;i++) { for (j=1;j<=dim;j++) { printf ("%c ",matriz[i][j]); } printf("\n"); } } resto++; } }while (1); return 0; system("PAUSE"); }
Saluditos! .... ..
|
|
« Última modificación: 7 Junio 2013, 06:17 am 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,844
|
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
|
3,944
|
26 Septiembre 2007, 03:31 am
por [Decoded]
|
|
|
On Live, una plataforma de juego en línea
Noticias
|
wolfbcn
|
0
|
1,298
|
9 Junio 2011, 18:09 pm
por wolfbcn
|
|
|
Juego en linea con anti WPE PRO
Juegos y Consolas
|
komanndoos
|
0
|
2,248
|
1 Noviembre 2015, 03:18 am
por komanndoos
|
|
|
juego de cuatro en linea en lenguaje C
Programación C/C++
|
gwennnnnn26
|
5
|
3,599
|
7 Diciembre 2016, 01:24 am
por jvm1994
|
|