Campo minado

5 respostas
rodrigoerocha

Peguei esse programa na net e estou quebrando a cabeça para resolver:

Faça um programa que escolha, aleatoriamente, 10 posições de uma matriz 10 x 10 de caracteres, e marque cada uma dessas posições com * (asterisco). Crie, em seguida, uma matriz de inteiros de 10 x 10 que contenha, para cada posição [i,j], o número de bombas na vizinhança. Imprima, por fim, essa matriz na tela. Cada posição tem no máximo 8 vizinhos (as diagonais contam).

import java.util.Scanner;
public class CampoMinado {
	public static void main(String[] args) {
		char[][] bomba = new char[10][10];
		int[][] campo = new int[10][10];
		int quebra = 0;
		for (int i = 0; i < 10; i++){ // gera um número aleatório entre 0 e 10
		    int linha = (int)(Math.random() * 9);
		    int coluna = (int)(Math.random() * 9);
		    bomba[linha][coluna] = 'x';
		}
		for (int i = 0; i < bomba.length; i++){ //imprime a matriz com as bombas
			for (int j=0; j < bomba[i].length; j++){
				System.out.print(bomba[i][j]);
				System.out.print(" ");
				quebra++; //quebra a linha na impressão
				if (quebra == 10){
					System.out.println();
					quebra = 0;
				}
			}
		}
		for (int i = 0; i < campo.length; i++){ //imprime a matriz dos campos
			for (int j=0; j < campo[i].length; j++){
				
				//daqui pra frente me perdi
				
				
			}
		}
	    System.exit(0);
	}
}

ALGUEM AJUDA AI.... RS :P

5 Respostas

J

cara…
manda apenas a parte que tu tá te embaralhando que fica muito mais fácil de tentar te AJUDAR a resolver
flw!

rodrigoerocha

Opa;

Coloquei la no comentado no programa.

ta assim:

//daqui pra frente me perdi

J

vou tentar resolver!
… … …

J

tai…

public static void main(String[] args) {
		char[][] bomba = new char[10][10];
		int[][] campo = new int[10][10];
		int quebra = 0;
		for (int i = 0; i < 10; i++){ // gera um número aleatório entre 0 e 10
		    int linha = (int)(Math.random() * 9);
		    int coluna = (int)(Math.random() * 9);
		    bomba[linha][coluna] = 'x';
		}
		for (int i = 0; i < bomba.length; i++){ //imprime a matriz com as bombas
			for (int j=0; j < bomba[i].length; j++){
				System.out.print(bomba[i][j]);
				System.out.print(" ");
				quebra++; //quebra a linha na impressão
				if (quebra == 10){
					System.out.println();
					quebra = 0;
				}
			}
		}
                
                //************************************************
                //************************************************
                // obtem a qtd de bombas proximo aos campos
                for (int i = 0; i < bomba.length; i++){
                    for (int j = 0; j < bomba[i].length; j++){
                        
                        if (bomba[i][j] != 'x') // se nao for bomba....
                            continue;
                        
                        // incrementando os valores dos campos proximos da bomba
                        for (int a = i - 1; a <= i + 1; a++){
                            for (int b = j - 1; b <= j + 1; b++){
                                
                                try { // tratamento de excecao pois, pode ultrapassar o array...
                                    if (bomba[a][b] == 'x'){
                                        continue;
                                    }
                                    
                                    campo[a][b]++;
                                } catch (Exception e) {  }
                            }
                        }
                        
                        
                    }
                }
                //************************************************
                //************************************************
                
                System.out.println();
                // exibe o resultado
		for (int i = 0; i < campo.length; i++){ //imprime a matriz dos campos
			for (int j=0; j < campo[i].length; j++){
				System.err.print( campo[i][j] + " ");
				
			}
                        System.err.println();
		}
	    System.exit(0);
	}

ah, tira esse System.exit(0); … nao precisa

note que, nos locais onde a bomba está, deixei com o valor ZERO,
espero ser isso ai, falows!

rodrigoerocha

Valew;

Vou dar uma olhada no codigo…

qualquer coisa mando outra mensagem;

Criado 2 de setembro de 2008
Ultima resposta 2 de set. de 2008
Respostas 5
Participantes 2