Ir para conteúdo
Fórum Script Brasil
  • 0

batalha naval


ramiroramiro10

Pergunta

pessoas...cá estou eu desenvolvendo um jogo de batalha naval...ele está funcionando ok ...mas só falta um pequeno detalhe que não consigo resolver: gostaria que quando o jogador atingir uma coordenada repetidamente, que o jogo avisasse...

o jogo já não computa pontos de coordenadas repetidas...mas ao invés de dizer: ESTA PARTE DO NAVIO JÁ FOI ATINGIDA...ELE DIZ: ACERTOU!!!!

alguém tem alguma idéia??/] segue o codigo:

var matriz = [
			[0, 0, 0, 0, 0, 0, 0], 
			[0, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0],
			];

	//  Um navio
			
			var partesNav1 = [
			[0, 0],
			[0, 0],
			[0, 0]
			];
			var nav1Afundou = false;
			var posNav1Linha = Math.floor(Math.random() * 6);
			var posNav1Col = Math.floor(Math.random() * 6);
			var verticalOuHoriz = (Math.floor(Math.random() * 10) + 1); // numero aleatorio para posicao vert. ou horiz. do navio
			
			if (verticalOuHoriz % 2 == 0){

				matriz[posNav1Linha][posNav1Col] = 1;
				partesNav1[0][0] = posNav1Linha;
				partesNav1[0][1] = posNav1Col;

				matriz[posNav1Linha][posNav1Col + 1] = 1;
				partesNav1[1][0] = posNav1Linha;
				partesNav1[1][1] = posNav1Col + 1;

				matriz[posNav1Linha][posNav1Col + 2] = 1;
				partesNav1[2][0] = posNav1Linha;
				partesNav1[2][1] = posNav1Col + 2;
			} else {
				matriz[posNav1Linha][posNav1Col] = 1;
				partesNav1[0][0] = posNav1Linha;
				partesNav1[0][1] = posNav1Col;

				matriz[posNav1Linha + 1][posNav1Col] = 1;
				partesNav1[1][0] = posNav1Linha + 1;
				partesNav1[1][1] = posNav1Col;

				matriz[posNav1Linha + 2][posNav1Col] = 1;
				partesNav1[2][0] = posNav1Linha + 2;
				partesNav1[2][1] = posNav1Col;


			}
	
			
			
	// Mostra matriz para referencia de teste
			
			
			for (var linha = 0; linha <= 6; linha++){
				for (var coluna = 0; coluna <= 6; coluna++){
				
				document.write (matriz[linha][coluna]);
				
				}
				document.write ("<br>");	
			}

	
	// jogadas
			var numJogadas = 0;
			var pontos = 0;
			var numAcertos = 0;	
			
			while (numJogadas < 5 && (!nav1Afundou)) {
			
				var jogadaL = prompt ("digite um número");
				var jogadaC = prompt ("digite um numero");
				
				if (matriz[jogadaL][jogadaC] == 1){

					for (var c = 0; c < 2; c++){
				
						for (var l = 0; l < 3; l++){				

							if (jogadaL == partesNav1[l][c] && jogadaC == partesNav1[l][c + 1]){
								partesNav1[l][c] = 9;
								partesNav1[l][c + 1] = 9;
								numAcertos++;
								pontos++;
							} 
						} 
					}	
					
				alert ("ACERTOU!!!");
					
					
				} else {
							alert ("TENTE DE NOVO!!");
						}
			numJogadas++;
			
			
				// ganhou ou perdeu?		
					
					if (numAcertos == 3) {
						nav1Afundou = true;
					}
			} // FECHA WHILE
			
	
					if (nav1Afundou) {
						
						alert ("CARA FALA SERIO, WE ARE THE CHAMPIONS PONTOS: " + pontos);
					} else {
						alert ("TENTE NOVAMENTE!!! PONTOS: " + pontos);
					}
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...