elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ¿Còmo cambio de valor en una matriz?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Còmo cambio de valor en una matriz?  (Leído 3,029 veces)
andresach

Desconectado Desconectado

Mensajes: 1


Ver Perfil
¿Còmo cambio de valor en una matriz?
« en: 8 Agosto 2017, 05:51 am »

Estoy llevando un curso de Java en la Universidad y como proyecto final nos dejaron hacer un juego llamado Battleship (Undir la flota), he llegado a la parte de validar que en la matriz que uno quiere "colocar" la nave, no estè ya ocupada, lo cual no sé como hacerlo.
 Ya llené de ceros la matriz para así colocar las naves, pero no sé como hacer para verificar si ya está ocupado por algún otro número (que representan las otras naves) no lo coloque.

 Si alguien sabe por favor le agradecería un montón la ayuda. :D

PD: Ya lo coloqué diciendo:
 
if (fila != 0) {
System.out.print(tArea ya ocupada);
}


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: ¿Còmo cambio de valor en una matriz?
« Respuesta #1 en: 9 Agosto 2017, 00:47 am »

Precisamente poner ceros, para indicar presencia, es un error... el '0' debe inbdicar 'ausencia, esto es 'AGUA', y cualquier otro valor 'un objeto' (incluso tierra)

Si tienes un submarino, por ejemplo desde D5 hasta D9, pués (también por ejemplo) pones D5=6, D6=6, D7=6, D8=6, D9=6, así los submarinos (internamente) los reconoces por el valor 6, las fragatas con 2, un portaviones con 7, un destructor con 5, etc....
Ejemplo de un mapa:


    0 1 2 3 4 5 6 7 8 9
   -----------------------
A | 0 0 0 0 0 0 0 0 2 0
B | 0 0 0 0 0 0 0 0 2 0
C | 7 5 5 5 5 5 0 0 0 0
D | 7 0 0 0 6 6 6 6 6 6 <--- aquí el submarino (pero hay más barcos en el mapa)
E | 7 0 0 2 2 2 2 0 0 0
F | 7 0 3 3 3 3 0 0 0 0
G | 7 0 3 0 0 4 0 0 0 0
H | 7 0 3 0 0 4 0 0 0 0
I | 7 0 0 0 0 4 0 0 0 2
J | 7 0 0 0 0 4 3 3 3 2


Por último fíjate que el valor númérico al mismo tiempo indica el 'tamaño' del barco. Si ocupa 2  casillas d elargo, el valor será 2, si ocupa 4 de largo, usará el valor 4. Esto es útil para distinguir por ejemplo, dos buques de 2 casillas con respecto a uno de 4, o dos de 3 con respecto de 1 de 6 (o 3 de dos). Incluso haciendo esquina uno de 3 con otro de 3, podría parecer (al adversdario) que se trata de uno de 2 y uno de 4)...

Si un mapa fuera tan gigante como 300 casillas, podría no ser necesariamente cuadrado (rectángular), y podrías rellenar como 'tierra' con valor 9.... Así el mapa de 'agua' de cada jugador tendría una forma irregular (incluso islotes). Basta acordar la misma cantidad de casillas 'tierra'.


« Última modificación: 9 Agosto 2017, 00:52 am por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines