Jogo batalha naval

3 respostas
B
Boa Tarde pessoal  estou desenvolvendo um programa de jogo batalha naval para trabalho de faculdade bom o processo eh o seguinte desenvolvi uma matriz [10][10] e tem q ser preenchida apenas com 0 e 1 bom ela inicialmente tem q estar preenchida com 0 e apenas 10 numeros 1 dentro dessa matriz eu não estou conseguindo fazer pegar apenas esses 10 numeros 1 dentro da matriz

//preenche as posiçoes na matriz aleatoriamente

for ( linha = 0; linha < 10; linha++)

{

for ( coluna = 0; coluna < 10; coluna++)

{

tabuleiro [linha] [coluna] = random.nextInt(2);

}

}

esta colocando 20 numeros 1 eu preciso soh de 10 tem como fazer isto.

3 Respostas

S

bom de onde vem o random?

S

aqui vai um exemplo para preencher, só que não é muito justo pois ele pode colocar todos os 1 logo no começo.
verifica uma lógica que espalhe os números de forma melhor.

public class BatalhaNaval {

	
	public static void main(String ar[])
	{
		int tabuleiro[][];
		int linha;;
		int coluna;
		int count =0;
		tabuleiro=new int[10][10];
		for ( linha = 0; linha < 10; linha++) 
		{ 
			for ( coluna = 0; coluna < 10; coluna++) 
			{ 
				int x = (int)(Math.random()*10)%2;//pega o valor 0 ou 1
				if(x==1)
					count ++;//conta quantas vezes o 1 ja apareceu
				if(count <=10)//se for menos de 10 vezes coloca o numero 1 
					tabuleiro [linha] [coluna] = x; 
				else//se tiverem 10 vezes o 1 coloca sempre 0
					tabuleiro [linha] [coluna] = 0;
				System.out.println(linha +" - "+coluna+" "+tabuleiro [linha] [coluna]);
			} 
		}
	}
}
B

Muito obrigado resolveu o meu problema valew …

Criado 19 de maio de 2008
Ultima resposta 22 de mai. de 2008
Respostas 3
Participantes 2