quinta-feira, 9 de abril de 2015

Batalha Naval utilizando matrizes em Java




Ensinar matrizes e vetores com certeza é um assunto complexo nas disciplinas de programação, dependendo da idade dos estudantes isso torna-se complicado ainda mais. Métodos mais interativos devem ser usados, como aqueles citados em outros posts, aqui, aqui, aqui e aqui

Pois bem, aqui vai um exemplo de utilização de matrizes que pode auxiliar o processo de ensino.

O jogo foi desenvolvido em alguns minutos, tem muito a coisa a ser melhorada ainda.

Crie um projeto Java no Netbeans ou Eclipse e utilize o código abaixo para desenvolver o jogo.

Gostou do blog, curta a página no Facebook.

 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vetor;


import java.util.Random;
import javax.swing.JOptionPane;

/**
 *
 * @author uberdam.cavaletti
 */
public class Vetor {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       
        //criando a matriz
        String matriz[][] = new String[10][10];

        //variáveis que armazenarão as posições dos barcos
        int linha1, linha2, linha3;
        int coluna1, coluna2, coluna3;

        //linhas e colunas aleatórias que serão os pontos onde os navios estarão
        Random random = new Random();
        linha1 = random.nextInt(9);
        linha2 = random.nextInt(9);
        linha3 = random.nextInt(9);

        coluna1 = random.nextInt(9);
        coluna2 = random.nextInt(9);
        coluna3 = random.nextInt(9);

        //toda a matriz recebe água inicialmente
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                matriz[i][j] = "Água";
            }
        }

        // pontos que serão marcados como navios
        matriz[linha1][coluna1] = "Navio";
        matriz[linha2][coluna2] = "Navio";
        matriz[linha3][coluna3] = "Navio";

        //variáveis para tratar os valores digitados
        int linha = 0;
        int coluna = 0;
        boolean jogar = true;

        //enquanto jogar for true, o jogador estará jogando
        //jogar será falso, quando linha e coluna digitados forem -1;
        while (jogar) {

            //valores digitados pelo usuário
            linha = Integer.valueOf(JOptionPane.showInputDialog("Digite um valor para linha "));
            coluna = Integer.valueOf(JOptionPane.showInputDialog("Digite um valor para coluna "));

            if ((linha != -1) && (coluna != -1)) {
                System.out.println(matriz[linha][coluna]);
            } else {
                jogar = false;
            }
        }
        System.out.println("Fim de jogo");
    }
}


Nenhum comentário:

Postar um comentário