Inicio
Buscar
Ingresar
Registrarse
Starfield: el juego que revolucionará el espacio y la tecnología
Hack x Crack - Comunidad de Seguridad informática
»
Programación
»
Java y Android
»
Necesito ayuda con un proyecto de hundir la flota en java
Imprimir
Páginas: [
1
]
Ir Abajo
Autor
Tema: Necesito ayuda con un proyecto de hundir la flota en java (Leído 4443 veces)
byrench
{ L0 } Ñuub
Mensajes: 1
Necesito ayuda con un proyecto de hundir la flota en java
«
en:
Abril 22, 2018, 11:51:12 am »
Hola a todos tengo mi proyecto de hundir la flota casi terminado pero tengo un problema al generar los barcos enemigos de manera aleatoria, y es que hay veces que estos coinciden con otras posiciones de barcos ya creados. He intentado arreglar esto comparando los arrays (tengo un array para cada barco donde guardo cada posicion) con el random generado. pero aún así coinciden. (elimino el método portaaviones porque al ser el primero no es necesario comparar nada)
lo siento por el código que ocupa casi 1800 lineas espero respuesta y gracias.
public static int[] posiciones = new int[10];
public Creador_Barcos_Enemigos(){
portaviones();
submarino();
destructor();
fragata();
}
/**
*
*/
public void submarino(){
int comprovador = 0;
int posi_submarino = (int) (Math.random()*100);
for (int i = 0; i < 7; i++) {
while(posi_submarino==posiciones
){
posi_submarino = (int) (Math.random()*101);
}
}
do{
if(posi_submarino==0||posi_submarino==2||posi_submarino==3||posi_submarino==4||posi_submarino==5||
posi_submarino==6||posi_submarino==7|posi_submarino==10||posi_submarino==20||
posi_submarino==30||posi_submarino==40||posi_submarino==50||posi_submarino==60||posi_submarino==70||
posi_submarino==80||posi_submarino==90||posi_submarino==91||posi_submarino==92||posi_submarino==92||
posi_submarino==93||posi_submarino==94||posi_submarino==95||posi_submarino==96||
posi_submarino==81){
for (int i = 0; i < 7; i++) {
if(posi_submarino+1==posiciones
|| posi_submarino+2 ==posiciones
){
comprovador =1;
}else{
posiciones[4]= posi_submarino;
posiciones[5]= posi_submarino+1;
posiciones[6]= posi_submarino+2;
break;
}
}
}else if( posi_submarino==8||posi_submarino==9||posi_submarino==19||posi_submarino==29||posi_submarino==39||posi_submarino==49||
posi_submarino==59||posi_submarino==69||posi_submarino==79||posi_submarino==82||posi_submarino==89||
posi_submarino==83||posi_submarino==84||posi_submarino==85||posi_submarino==86||posi_submarino==97||posi_submarino==99||
posi_submarino==87||posi_submarino==98||posi_submarino==88){
for (int i = 0; i < 7; i++) {
if(posi_submarino-1==posiciones
|| posi_submarino-2==posiciones
){
comprovador =1;
}else{
posiciones[4]= posi_submarino;
posiciones[5]= posi_submarino-1;
posiciones[6]= posi_submarino-2;
break;
}
}
}else{
for (int i = 0; i < 7; i++) {
if(posi_submarino+10==posiciones
|| posi_submarino+20==posiciones
){
comprovador =1;
}else{
posiciones[4]= posi_submarino;
posiciones[5]= posi_submarino+10;
posiciones[6]= posi_submarino+20;
break;
}
}
}
for (int i = 4; i < 7; i++) {
System.out.println("submarino " + posiciones
);
}
}while(posiciones[4]==0 || posiciones[5]==0 || posiciones[6]==0 || comprovador == 1);
}
public void destructor(){
int comprovador =0;
int posi_destructor = (int) (Math.random()*100);
for (int i = 0; i < 7; i++) {
while(posi_destructor==posiciones
){
posi_destructor = (int) (Math.random()*101);
}
}
do{
if(posi_destructor==0||posi_destructor==2||posi_destructor==3||posi_destructor==4||posi_destructor==5||
posi_destructor==6||posi_destructor==7|posi_destructor==10||posi_destructor==20||
posi_destructor==30||posi_destructor==40||posi_destructor==50||posi_destructor==60||posi_destructor==70||
posi_destructor==80||posi_destructor==90||posi_destructor==91||posi_destructor==92||posi_destructor==92||
posi_destructor==93||posi_destructor==94||posi_destructor==95||posi_destructor==96||
posi_destructor==98||posi_destructor==81){
for (int i = 0; i < 8; i++) {
if(posi_destructor+1==posiciones
){
comprovador =1;
}else{
posiciones[7]= posi_destructor;
posiciones[8]= posi_destructor+1;
break;
}
}
}else if( posi_destructor==8||posi_destructor==9||posi_destructor==19||posi_destructor==29||posi_destructor==39||posi_destructor==49||
posi_destructor==59||posi_destructor==69||posi_destructor==79||posi_destructor==82||posi_destructor==89||
posi_destructor==83||posi_destructor==84||posi_destructor==85||posi_destructor==86||posi_destructor==97||posi_destructor==99||
posi_destructor==87||posi_destructor==88){
for (int i = 0; i < 8; i++) {
if(posi_destructor-1==posiciones
){
comprovador =1;
}else{
posiciones[7]= posi_destructor;
posiciones[8]= posi_destructor-1;
break;
}
}
}else{
for (int i = 0; i < 8; i++) {
if(posi_destructor+10==posiciones
){
comprovador =1;
}else{
posiciones[7]= posi_destructor;
posiciones[8]= posi_destructor+10;
break;
}
}
}
for (int i = 7; i < 9; i++) {
System.out.println("destructor " + posiciones
);
}
}while(posiciones[7]==0 || posiciones[8]==0 || comprovador==1);
}
public void fragata(){
int posi_fragata = (int) (Math.random()*100);
for (int i = 0; i < 9; i++) {
while(posi_fragata==posiciones
){
posi_fragata = (int) (Math.random()*101);
}
}
posiciones[9] = posi_fragata;
System.out.println("fragata "+posiciones[9]);
}
}
En línea
Imprimir
Páginas: [
1
]
Ir Arriba
Hack x Crack - Comunidad de Seguridad informática
»
Programación
»
Java y Android
»
Necesito ayuda con un proyecto de hundir la flota en java
Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso...
OK
Learn more