Sábado 14 de Diciembre de 2024, 20:55
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Ayuda Para Ir Completando Esto
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Ayuda Para Ir Completando Esto (Leído 2528 veces)
Getta
Nuevo Miembro
Mensajes: 12
Ayuda Para Ir Completando Esto
«
en:
Sábado 15 de Mayo de 2004, 20:18 »
0
He de hacer este ejercicio y lo he empezado pero me hay muchas cosas que no se como hacer que salgan.
De momento he hecho la matriz y pongo un 1(posicion del barco) en ella aleatpriamente. ahora viene lo que no se como hacer que es leer unas cordenadas y buscarlas en la matriz para decir si ha sido tocado o no, o si ha sido en las casillas exteriores al barco
/*juego de los barcos
Matriz de 6*6 donde hay que posicionar un barco
de una sola casilla, que sera marcada por un uno,
se tendran que introducir las coordenadas y indicar si se ha acertado(2),
,se ha fallado o si el disparo ha dado en una de las casillas exteriores
al barco(?).*/
Tweet
nicokiki
Miembro MUY activo
Mensajes: 298
Re: Ayuda Para Ir Completando Esto
«
Respuesta #1 en:
Sábado 15 de Mayo de 2004, 22:06 »
0
Hola!!!!!!
Mira, no entiendo q es lo q queres. Queres a partir de unas coordenadas ver el contenido de la matriz en ellas???
Si es eso es facil:
if ( Matriz[columna][fila] == 1 )
cout << "Le pegaste" << endl;
else
cout << "Le erraste" << endl;
No se si era eso,
Salu2!!!!!
Getta
Nuevo Miembro
Mensajes: 12
Re: Ayuda Para Ir Completando Esto
«
Respuesta #2 en:
Domingo 16 de Mayo de 2004, 00:00 »
0
lo k necesitaria primero es al k si hago un scanf de unas coordenadas x e y como hago para saber si he dado en el blanco, si he fallado he he dado en las casillas de alrededor
Rataman
Miembro activo
Mensajes: 45
Re: Ayuda Para Ir Completando Esto
«
Respuesta #3 en:
Domingo 16 de Mayo de 2004, 01:22 »
0
Yo hize un juego de hundir la flota, y en vez de usar dos estados (1 y 0), usaba tres estados, puede usar 0 para las vacias, 1 para las casillas de alrededor del "barco" y 2 para el barco en cuestion, asi es muxho mas facil controlar lo k creo que pretendes hacer...
nicokiki
Miembro MUY activo
Mensajes: 298
Re: Ayuda Para Ir Completando Esto
«
Respuesta #4 en:
Domingo 16 de Mayo de 2004, 01:52 »
0
Hola de nuevo!!!
Lo primero q deberias hacer para no mandarte en una de meterte en memoria fuera de los limites y q el resultado sea inesperado, es checkear q tanto x como y sean menores o iguales q la dimension de la matriz (CANTIDADCOLUMNAS, CANTIDADFILAS).
Una vez q cumple con esto, estas seguro de estar en el rango de coordenadas de la matriz. Luego, con esas coordenadas haces lo q te dije antes:
if ( Matriz[columna][fila] == 1 )
cout << "Le pegaste" << endl;
else
cout << "Le erraste" << endl;
Donde columna y fila son las coordenadas ingresadas por el usuario.
Salu2!!!!!
Getta
Nuevo Miembro
Mensajes: 12
Re: Ayuda Para Ir Completando Esto
«
Respuesta #5 en:
Domingo 16 de Mayo de 2004, 12:02 »
0
en el main hago un scanf("%d %d",fila,columna), depues llamo a la funcion siguiente:
void Disparo(){
int fila,columna;
if(Matriz[fila][columna]==1){
printf("\nTocado");
}else{
printf("\nFallaste");
}
}
Pero haciendo esto no funciona
Ademas otra cosa la matrix que hago de [6][6] al introducir las coordenadas es de 1-6 o de 0-5?
nicokiki
Miembro MUY activo
Mensajes: 298
Re: Ayuda Para Ir Completando Esto
«
Respuesta #6 en:
Domingo 16 de Mayo de 2004, 17:22 »
0
Hola de nuevo!!
Los arreglos en C/C++ se empiezan a contar desde cero asi q va de 0-5 para referenciarlos. En cuanto a por q no te anda, yo calculo porque las matrices en C/C++ se referencian primero por la columna y despues por la fila, o sea, deberias hacer esto:
void Disparo(int fila, int columna)
{
if ( (fila < CANTIDADFILAS) && (columna < CANTIDADCOLUMNAS) )
{
if(Matriz[columna][fila]==1)
printf("\nTocado");
else
printf("\nFallaste");
}
}
Lo q estas haciendo mal es q en esta funcion tuya no estaba recibiendo lo q ingresaba el usuario, o sea, no le pasabas la fila y la columna por parametro. Estas declarando dos variables locales fila y columna y luego verificabas la matriz en esas coordenadas q es exactamente lo mismo q hacer esto Matriz[0][0] ya q las variables locales son automaticamente inicializadas en cero (supuestamente).
Espero q te sirva
Salu2!!!!!
Getta
Nuevo Miembro
Mensajes: 12
Re: Ayuda Para Ir Completando Esto
«
Respuesta #7 en:
Domingo 16 de Mayo de 2004, 17:49 »
0
Lo que tengo ahora es esto pero no se como poner si las coordenadas que le paso son las mismas que donde esta el numero 2 que se supone que es el barco, i si fallo que me marque con otro simbolo si el barco esta en una casilla esterior a donde se ha disparado.
nicokiki
Miembro MUY activo
Mensajes: 298
Re: Ayuda Para Ir Completando Esto
«
Respuesta #8 en:
Domingo 16 de Mayo de 2004, 20:19 »
0
Hola!!!!!!
Seguis haciendo mal lo q te dije q estaba malllllllllll.
Estas llamando a una funcion sin parametros y pretendes ver q hay en una posicion de la matriz, pero NUNCA le decis en q posicion mirar, SIEMPRE mira en la mismaaaaaaaaaa.
A parte locx y locy no son globales a tu archivo, asi q no se q estas haciendo cuando en la funcion disparo comparas la matriz en esas posiciones.
Tu prototipo de disparo debe ser asi:
void Disparo(int fila, int columna);
Y haces lo q te dije antes en la implementacion.
Salu2!!!!!!!
P.D.: responde si lo q te decimos sirve o no, porque cada cosa q escribi no la hiciste entonces me estas haciendo escribir no se para q. Media pila!!!!!
Getta
Nuevo Miembro
Mensajes: 12
Re: Ayuda Para Ir Completando Esto
«
Respuesta #9 en:
Domingo 16 de Mayo de 2004, 20:42 »
0
Código: Text
void Matrix(){
int i,j;
for(i=0;i<6;i++){
for(j=0;j<6;j++){
Matriz[i][j]=0;
}
}
}
void Muestra(){
int i,j;
for(i=0;i<6;i++){
for(j=0;j<6;j++){
printf("%d",Matriz[i][j]);
}
printf("\n");
}
}
Getta
Nuevo Miembro
Mensajes: 12
Re: Ayuda Para Ir Completando Esto
«
Respuesta #10 en:
Lunes 17 de Mayo de 2004, 15:57 »
0
Como haria ahora para detectar si el barco esta cerca de la casilla que yo le paso
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Ayuda Para Ir Completando Esto