Raposa E As Galinhas

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Raposa E As Galinhas as PDF for free.

More details

  • Words: 717
  • Pages: 4
Faculdade Unicapital Exercicio dado em sala de Aula 4. Raposas e Galinhas Na fazenda do Sr. Buscap� existe um certo n�mero de galinhas. Enquanto elas est�o dormindo profundamente, alguns raposas famintas tentam invadir a fazenda e atacar as galinhas. Galinhas normais ficariam indefesas diante de tal amea�a, mas felizmente as galinhas do Sr. Buscap� s�o ninjas e conseguem defender-se adequadamente. A fazenda possui um formato retangular e consiste de ninhos arranjados em linhas e colunas. Cada ninho pode conter uma galinha (representada pela letra �k�), uma raposa (letra �v�), uma cerca (s�mbolo �#�) ou simplesmente estar vazio (s�mbolo �.�). Consideramos que dois ninhos pertencem a um mesmo galinheiro se podemos ir de um ninho ao outro atrav�s de um caminho formado somente com movimentos horizontais ou verticais, sem passar por uma cerca. Na fazenda podem existir ninhos vazios que n�o pertencem a nenhum galinheiro. Um ninho vazio n�o pertence a nenhum galinheiro se � poss�vel �escapar� da fazenda a partir desse ninho (ou seja, caso exista um caminho desse ninho at� a borda da fazenda). Durante a noite, as galinhas conseguem combater as raposas que est�o no mesmo galinheiro, da seguinte forma: se em um determinado galinheiro houver mais galinhas do que raposas, as galinhas sobrevivem e matam todos as raposas naquele galinheiro. Caso contr�rio, as galinhas daquele galinheiro s�o comidas pelas raposas, que sobrevivem. Note que caso um galinheiro possua o mesmo n�mero de raposas e galinhas, somente os raposas sobreviver�o, j� que raposas s�o predadores naturais, ao contr�rio de galinhas. Tarefa Escreva um programa que, dado um mapa da fazenda do Sr. Buscap� indicando a posi��o das cercas, galinhas e raposas, determine quantas galinhas e quantas raposas estar�o vivas na manh� seguinte. Entrada A entrada cont�m v�rios conjuntos de testes, que devem ser lidos de um arquivo. A primeira linha da entrada cont�m dois inteiros R e C que indicam o n�mero de linhas (3 = R = 200) e de colunas (3 = C = 200) de ninhos da fazenda. Cada uma das R linhas seguintes cont�m C caracteres, representando o conte�do do ninho localizado naquela linha e coluna (espa�o vazio, cerca, ovelha ou raposa). Sa�da Seu programa deve imprimir, na sa�da padr�o, uma �nica linha, contendo dois inteiros, sendo que o primeiro representa o n�mero de galinhas e o segundo representa o n�mero de raposas que ainda est�o vivos na manh� seguinte. Exemplo de Entrada 6 6 ...#.. .##v#. #v.#.# #.k#.#

.###.# ...### 8 8 .######. #..k...# #.####.# #.#v.#.# #.#.k#k# #k.##..# #.v..v.# .######. 9 12 .###.#####.. #.kk#...#v#. #..k#.#.#.#. #..##k#...#. #.#v#k###.#. #..#v#....#. #...v#v####. .####.#vv.k# .......##### 0 0 Sa�da 0 2 3 1 3 5 Exercicio Resolvido package raposa.e.galinha; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class GalinhaRaposa { int linha; int coluna; char fazenda[][]; int contadorGalinhas = 0; int contadorRaposas = 0; int totalGalinha = 0; int totalRaposa = 0; public static void main(String[] args) { GalinhaRaposa exe = new GalinhaRaposa(); exe.lerArquivo(); } public void lerArquivo() { File labTxt = new File("arquivo.txt"); try { Scanner leitorDeArquivo = new Scanner(labTxt); linha = leitorDeArquivo.nextInt();

coluna = leitorDeArquivo.nextInt(); fazenda = new char [linha][coluna]; String linhaDoArquivo = leitorDeArquivo.nextLine(); for(int l = 0; l < linha; l++){ linhaDoArquivo = leitorDeArquivo.nextLine(); for(int c = 0; c < coluna; c++){ fazenda[l][c] = linhaDoArquivo.charAt(c); System.out.print(fazenda[l][c]); } System.out.println(); } } catch (FileNotFoundException e) { e.printStackTrace(); } verificarGalinheiro(); } void verificarGalinheiro(){ for (int l = 0; l < linha; l++) { for (int c = 0; c < coluna ; c++) { marcarNinho(l, c); contatarSobrevivente(); } } imprima(); } void

contatarSobrevivente(){ if(contadorGalinhas > contadorRaposas){ totalGalinha += contadorGalinhas; }else { totalRaposa += contadorRaposas; } contadorGalinhas = 0; contadorRaposas = 0;

} public void marcarNinho(int l, int c) { if(l < 0 || l >= linha) return; if(c < 0 || c >= coluna) return; if(fazenda[l][c] == '#') return; if(fazenda[l][c] == 'P') return; if(fazenda[l][c] == '.') { fazenda[l][c] = 'P'; marcarNinho(l-1, c); marcarNinho(l+1, c); marcarNinho(l, c-1); marcarNinho(l, c+1); } if(fazenda[l][c] == 'k') { contadorGalinhas++; fazenda[l][c] = 'P'; marcarNinho(l-1, c); marcarNinho(l+1, c);

marcarNinho(l, c +1); marcarNinho(l, c-1);

} if(fazenda[l][c] == 'v'){ contadorRaposas++; fazenda[l][c] = 'P'; marcarNinho(l-1, c); marcarNinho(l+1, c); marcarNinho(l, c +1); marcarNinho(l, c-1); } }

}

void imprima(){ System.out.println(totalGalinha+" "+totalRaposa); for (int l = 0; l < linha; l++) { for ( int c = 0; c < coluna; c++) { System.out.print(fazenda[l][c]); } System.out.println(); } }

Related Documents

Galos E Galinhas
July 2020 7
A Raposa E O Lenhador
November 2019 8
Gregory Raposa
December 2019 20
Kathleen A Raposa
December 2019 38