Autor
|
Tema: Dibujar e inicializar tablero de posibles distintos tamaños en C [?] (Leído 13,792 veces)
|
dragonlady
Desconectado
Mensajes: 37
|
Pero ahí no se usa X, me da un error de que no se está usando esa variable. No entiendo para que la declaro?? (Osea, entiendo que la estoy usando y son las X que quiero me aparezcan en el tablero aleatoriamente, pero no veo donde las estoy usando, solo en 'X') Acá arreglé el código (le puse tam/2, porque las X tienen que ser la mitad del tamaño elegido, pero algo está mal porque si le ingreso un tamaño 10 me tira cualquier numero de X ): int main(){ int tam=1; char tablero[tam][tam]; printf("Ingrese tamanio (6,8,10,14 o 18): "); int i,j,X; //declaramos la variable X //Iniciando los valores del tablero a '.', esto tu lo puedes cambiar for(i = 0; i < tam;i++) for(j = 0; j < tam;j++) tablero[i][j] = ' '; //generando las 3 X aleatoriamente int Xnum = 0; //un contador while(Xnum < 3){ //hasta que se generen las 3 Xs i = rand() % tam /2; //el numero aleatorio depende del tamaño del tablero if( tablero[i][j] != 'X'){ //probamos si en esa posicion no existe alguna X tablero[i][j] = 'X'; //agregamos una X Xnum++; //aumentamos contador para no dibujar mas de 3 Xs } } //imprimimos todo for (j=0;j<tam;j++) for (i=0;i<tam;i++){ for (j=0;j<tam;j++){ printf(" %c|", tablero [i ][j ]); } }
|
|
« Última modificación: 1 Junio 2015, 20:36 pm por dragonlady »
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
En tu código si la usas for (X=0;X<3;X++)
Tienes que tener en cuenta de que estas usando una variable en ese bucle for, pero el 'X' es un caracter o sea es un valor que puede tomar una variable No te confundas con la variable X y el caracter 'X' son diferentes, el primero es una variable y el segundo un valor que puede tomar una variable
|
|
« Última modificación: 1 Junio 2015, 20:35 pm por 0xFer »
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
dragonlady
Desconectado
Mensajes: 37
|
Gracias por contestar! Ahí subí el código con las modificaciones. Entonces, es un error de compilación? Porque me dice que no uso esa variable al compilar?
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Pues es que ya no está siendo utilizado, ya lo puedes quitar. Acá arreglé el código (le puse tam/2, porque las X tienen que ser la mitad del tamaño elegido, pero algo está mal porque si le ingreso un tamaño 10 me tira cualquier numero de X ): //generando las 3 X aleatoriamente int Xnum = 0; //un contador while(Xnum < 3){ //hasta que se generen las 3 Xs i = rand() % tam /2; //el numero aleatorio depende del tamaño del tablero if( tablero[i][j] != 'X'){ //probamos si en esa posicion no existe alguna X tablero[i][j] = 'X'; //agregamos una X Xnum++; //aumentamos contador para no dibujar mas de 3 Xs } }
SI quieres que las 'X's generadas sean la mitad del tamaño del tablero entonces: int Xnum = 0; while(Xnum < (tam/2)){ //Presta atención aquí if( tablero[i][j] != 'X'){ tablero[i][j] = 'X'; Xnum++; } }
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
dragonlady
Desconectado
Mensajes: 37
|
Siguen sin aparecerme la mitad de tam de X Algo debe suceder en esta parte que no está muy bien o algo porque no está cumpliendo su funcion: Xnum++; //aumentamos contador para no dibujar mas de 3 Xs
|
|
« Última modificación: 1 Junio 2015, 21:19 pm por dragonlady »
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
pero quieres que aparezca tam/2 veces X en todo el tablero o en cada columna? No puedes hacer otro juego más fácil de entender?, algo así como un snake
|
|
« Última modificación: 1 Junio 2015, 22:14 pm por 0xFer »
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
dragonlady
Desconectado
Mensajes: 37
|
jajaja si!! Realmente está hasta mal redactado la guia del juego que nos dieron (y es obligatorio, no podemos hacer otro), me metí a preguntar porque me quedé sin compañero para hacerlo (era de a 2) pero bueno!
En todo el tablero me tienen que aparecer la mitad de X que el tamaño del mismo. Si es un tablero de 6x6, tienen que aparecer 3 X, si es uno de 14, 7 X y así :|
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Cuando ejecuto ésto: #include <stdio.h> int main(){ int tam = 8; //cambia este valor char tablero[tam][tam]; int i,j; //Iniciando los valores del tablero a '.', esto tu lo puedes cambiar for(i = 0; i < tam;i++) for(j = 0; j < tam;j++) tablero[i][j] = '.'; //generando las 3 X aleatoriamente int Xnum = 0; //un contador while(Xnum < tam/2 ){ //hasta que se generen las 3 Xs i = rand() % tam ; //el numero aleatorio depende del tamaño del tablero if( tablero[i][j] != 'X'){ //probamos si en esa posicion no existe alguna X tablero[i][j] = 'X'; //agregamos una X Xnum++; //aumentamos contador para no dibujar mas de 3 Xs } } //imprimimos todo for (j=0;j<tam;j++) for (i=0;i<tam;i++){ for (j=0;j<tam;j++){ } } return 0; }
Me aparece: a b c d e f g h 0 | . . . . . . . . 1 | . . . . . . . . 2 | . . . . . . . . 3 | . . X . . . . . 4 | X . X . . . . . 5 | . . . . . . . . 6 | . . . . . . . . 7 | . . X . . . . .
a b c d e f g h 0 | . . X . . X . . 1 | . . . . X . . . 2 | . . X . . . . . 3 | . . . . . . . . 4 | . . . . . . . . 5 | . . . . . . . . 6 | . . . . . . . . 7 | . . . . . . . .
en un tablero 8x8, prueba con otros valores que sean pares
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
dragonlady
Desconectado
Mensajes: 37
|
Ahh!!! Entonces es un tema de inicializar tam. Porque yo lo inicializé en 1 (después probé con 0 y me da error igual) ya que le tengo que preguntar al usuario que el me ingrese de que tamaño va a ser el tablero, no es fijo.
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Puedes definir el tamaño solo una vez(lo define el jugador del juego), después el tablero tendrá ese tamaño hasta que termine el programa, si quieres cambiar el tamaño entonces tendras que saber manejar memoria dinámica.
Un saludo
|
|
« Última modificación: 1 Junio 2015, 22:40 pm por 0xFer »
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Duda]Problema de tamaños
ASM
|
YST
|
3
|
3,422
|
25 Junio 2009, 22:24 pm
por YST
|
|
|
Tablero java
Java
|
lulu2704
|
1
|
4,927
|
23 Abril 2011, 05:11 am
por Castiblanco
|
|
|
tamaños swap
GNU/Linux
|
linuxos
|
4
|
2,582
|
24 Octubre 2011, 17:54 pm
por orvtech
|
|
|
Detectar movimientos de piezas en tablero de ajedrez.
« 1 2 »
Programación Visual Basic
|
E2E4
|
12
|
10,939
|
4 Junio 2012, 09:29 am
por BlackZeroX
|
|
|
Más de 400.000 barcos de todos los tamaños vulnerables a ataques de ....
Noticias
|
wolfbcn
|
0
|
1,366
|
27 Marzo 2014, 21:42 pm
por wolfbcn
|
|