Autor
|
Tema: Dibujar e inicializar tablero de posibles distintos tamaños en C [?] (Leído 13,790 veces)
|
dragonlady
Desconectado
Mensajes: 37
|
Buenos días gente, tengo un juego para hacer en C que me está dando dolor de cabeza y una de las cosas que más me complica es que tengo que dibujar un tablero, pero que puede ser solamente de tamaño (cuadrado) 6, 8, 10, 14 o 18 (tamaño que el jugador elige). Y la verdad que no se como hacer eso.
Había intentando hacer 5 tableros distintos, pero me enlió más, entonces me gustaría saber si alguien tiene una manera de que se pueda hacer esto.
Solo puedo usar C, nada de C++ ni funciones muy avanzadas.
Si alguien sabe como, les agradezco la ayuda desde ya,
Gracias!!
|
|
« Última modificación: 30 Mayo 2015, 14:53 pm por dragonlady »
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Pide el tamaño del tablero: int tam = 1;
Luego creas el tablero: int tablero[tam][tam];
Luego tienes que usar for para modificar o imprimir los valores del tablero No se si es lo que querias. Un saludo
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
dragonlady
Desconectado
Mensajes: 37
|
Muchisimas gracias! Era una bobada pero realmente no me daba cuenta, es que este trabajito me tiene muy trancada. Ahora, el problema que tengo es que el tablero me tira basura, inicializé todo pero no se si es algo más que pasa... Pego el código: int tam = 1; printf("ingrese tamanio: "); scanf(" %d", &tam);
int i=0,j=0;
int matriz[tam][tam];
printf("\n "); for (j=0;j<tam;j++)//cuento columnas printf("%d ", j); printf("\n");
for (i=0;i<tam;i++) { printf("%c | ", 'a' + i); for (j=0;j<tam;j++)
printf(" %c", matriz[i][j]); printf("\b|\n"); }
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
En realidad en tu código no estas iniciando los valores, solo los tratas de imprimir int tam = 1; int i=0,j=0; int matriz[tam][tam]; memset(matriz ,0,sizeof(matriz )); //inicia todos los valores a 0 for(i = 0; i < tam; i++){ //imprime todos los valores for(j = 0; j < tam; j++) }
+ para memset #include <string.h>
|
|
« Última modificación: 31 Mayo 2015, 01:32 am por 0xFer »
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
dragonlady
Desconectado
Mensajes: 37
|
no me dejan hacer eso, ni siquiera se lo que es memset :O, menos agregarle otra library Hay otra manera? Perdon la joda :|
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Parecido a cuando quieres imprimir: for(i = 0; i < tam; i++){ for(j = 0; j < tam; j++) matriz[i][j] = 0; } }
No se si te sirva mucho un tablero que imprima solo números, asi que puedes cambiar ese int por un char y podras imprimir letras u otro tipo de caracteres
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
dragonlady
Desconectado
Mensajes: 37
|
Ahí lo arreglé, había hecho el matriz [j] = 0; pero no lo habia puesto donde debía Si, tendría que ser %c porque le tengo que poner objetos aleatorios(como el buscaminas) y un jugador empieza en la punta arriba a la izquierda y el otro en la punta derecha abajo, asi que tendré que usar letras.
Mil gracias por la ayuda
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Si, tendría que ser %c Así es. No dudes en preguntar si tienes más dudas, suerte.
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
dragonlady
Desconectado
Mensajes: 37
|
Gracias por la ayuda, de nuevo. Ahora tengo el tablero estoy tratando de ingresar unas X que tienen que aparecer aleatoriamente en el. (por ejemplo en un tablero de 6x6 tienen que aparecer 3 X, que aparte no pueden jamas aparecer en las pociciones q tapen las entradas de los jugadores, por ejemplo no pueden aparecer X así ...................................... J1 . X . . . . ...................................... X . . . . X . ...................................... . . . X . J2 . ...................................... y bueno, estoy probando el código que hice del tablero con la funcion randomica y no me funciona. Le ingreso un valor de 6 por ejemplo y me tendrian que aparecer 3 X aleatoriamente pero no sucede. Pego mi código: int tam = 1; char tablero[tam][tam]; int i,j; for (j=0;j<tam;j++) for (i=0;i<tam;i++) { for (j=0;j<tam;j++) tablero[i][j]=0; } for (X=0;X<3;X++) { do { } while(tablero[i][j]==6); }
Que puedo estar haciendo mal? Realmente no me doy cuenta
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
No te aparece ninguna X porque no has declarado la variable X y porque cuando tratas de generar las "X" aleatoriamente te olvidas de volver a imprimir tu arreglo, además la forma en la que generabas las "X"s no es la correcta Espero que esto te sirva: #include <stdio.h> int main(){ int tam = 6; char tablero[tam][tam]; 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 ; //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; }
|
|
« Última modificación: 1 Junio 2015, 02:10 am 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
|
|