Ir ao conteúdo
  • Cadastre-se

cardoso16059

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Boa Tarde, Estou com um pouco de dificuldade, pois não estou conseguindo chamar a class AppJogoDaVida para o main. Alguém pode me ajudar ? import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class teste { public static void main(String[] args) throws IOException { IniciaJogoDaVida(args[0], Integer.valueOf(args[1])); } public class AppJogoDaVida { public int tamanho = 0; public int[][] mapa = null; public void IniciaJogoDaVida(final String mapadoJogo, final int numGeracoes) throws IOException { iniciaSimulacao(mapadoJogo, numGeracoes);//O Parametro mapadoJogo é o args[0] e o numGeracoes é o args[1]. salvarArquivo(imprimeMapa(), numGeracoes);//Salva o mapa junto ao conte�do em um arquivo txt. System.out.println("Finalizando Simulacao."); } public void iniciaSimulacao(final String mapadoJogo, final int numGeracoes) throws IOException { System.out.println("Iniciando Simulacao..."); List<String> linhas = lerArquivoMapa(mapadoJogo);//Inicia uma lista com as linhas do mapadoJogo. carregarValoresCelulas(linhas);//Carrega a lista com os dados do arquivo txt. //Gera o numero de Geracoes Scanner entrada = new Scanner (System.in); int geração; System.out.println("Digite a quantidade de gerações:"); geração= entrada.nextInt(); for (int i = 0; i < geração; i++) { mapa = geração(); System.out.println("geração: " + (i + 1)); } } public void carregarValoresCelulas(List<String> strings) { setTamanho(Integer.parseInt(strings.get(0)));//Altera o valor do tamanho a matriz. mapa = new int[tamanho][tamanho];//Inicia a matriz com seu novo tamanho. //Atribui os valores do txt para a matriz. for (int i = 1; i < tamanho+1; i++) { for (int j = 0; j < tamanho; j++) { char caracter = strings.get(i).charAt(j);//Pega na posicao o caracter no caso (0 e 1), grava em uma variavel auxiliar. int valor = Integer.valueOf(String.valueOf(caracter));//Converte de String para Inteiro. mapa[i-1][j] = valor;//Grava na matriz o valor. } } } public List<String> lerArquivoMapa(final String mapadoJogo) throws IOException { ArrayList<String> linhas = new ArrayList<>();//Declarando um arraylist para as linhas try (BufferedReader leitor = new BufferedReader(new FileReader(mapadoJogo))) {//Inicializa um leitor para ler cada linha do txt String linha = leitor.readLine();//Le a primeira linha while (linha != null) { boolean adc; adc = linhas.add(linha); linha = leitor.readLine(); } } return linhas;//Retorna o arraylist de linhas } public void salvarArquivo(String conteudo, int generationNumber) throws FileNotFoundException, UnsupportedEncodingException { PrintWriter writer = new PrintWriter(generationNumber + "geracoes.txt");//A classe FileWriter serve para escrever diretamente no arquivo writer.println(conteudo);//Escreve o conteudo no novo arquivo writer.close();//Fecha o arquivo } public final String imprimeMapa() { String mapafinal = ""; this.mapa = getMatriz();//Carrega a matriz no mapa for (int i = 0; i < tamanho; i++) {//Linha da matriz for (int j = 0; j < tamanho; j++) {//coluna da matriz mapafinal += Integer.toString(mapa[j]);//Monta o mapafinal com a matriz } mapafinal += "\r\n";//Pula uma linha. } return mapafinal; } public int verificarVizinhos(int i, int j) { try { return mapa[j];//Retorna o mapa(matriz) com os parametros passados pelo metodo } catch (Exception e) { return 0;//Tratamento para a situacao de excecao, ele retorna 0 } } public int vizinhos(int i, int j) { return verificarVizinhos(i - 1, j - 1)//inf. esquerdo + verificarVizinhos(i - 1, j)//inferior + verificarVizinhos(i - 1, j + 1)//inf. direito + verificarVizinhos(i, j - 1)//esquerdo + verificarVizinhos(i, j + 1)//direito + verificarVizinhos(i + 1, j - 1)//sup. esquerdo + verificarVizinhos(i + 1, j)//superior + verificarVizinhos(i + 1, j + 1);//superior direito } public int[][] geração() { int aux[][] = new int[this.tamanho][this.tamanho];//Declara uma nova matriz com tamanho definido pela variavel "tamanho" for (int i = 0; i < tamanho; i++) {//Linha da matriz for (int j = 0; j < tamanho; j++) {//Coluna da matriz if (mapa[j] == 1) { if (vizinhos(i, j) < 2 || vizinhos(i, j) > 3) { aux[j] = 0; } else { aux[j] = 1; } } else { if (vizinhos(i, j) == 3) { aux[j] = 1; } else { aux[j] = 0; } } } } return aux; } //Permite que voce chame o Mapa (Matriz) public int[][] getMatriz() { return mapa; } //Permite voce alterar o tamanho da matriz, apenas sendo necessario chamar set e atribui um novo valor public void setTamanho(int tamanho) { this.tamanho=tamanho; } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...