| 
	
		|  Autor | Tema: Dibujar e inicializar tablero de posibles distintos tamaños en C  [?]   (Leído 15,750 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,685 |  25 Junio 2009, 22:24 pm por YST
 |  
						|   |   | Tablero java Java
 | lulu2704 | 1 | 5,402 |  23 Abril 2011, 05:11 am por Castiblanco
 |  
						|   |   | tamaños swap GNU/Linux
 | linuxos | 4 | 2,874 |  24 Octubre 2011, 17:54 pm por orvtech
 |  
						|   |   | Detectar movimientos de piezas en tablero de ajedrez.
							« 1 2 » Programación Visual Basic
 | E2E4 | 12 | 11,393 |  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,596 |  27 Marzo 2014, 21:42 pm por wolfbcn
 |    |