Skip to content

Instantly share code, notes, and snippets.

@antoniopassos
Created February 21, 2010 12:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save antoniopassos/310292 to your computer and use it in GitHub Desktop.
Save antoniopassos/310292 to your computer and use it in GitHub Desktop.
Componentes do AppJogoDeAdivinhacao
package net.antoniopassos.appjogodeadivinhacao.dominio;
/**
*
* @author Antonio Passos
*/
public class Jogador {
private String nome;
private int palpite;
public Jogador(String nome) {
this.nome = nome;
this.palpite = 0;
}
public int getPalpite() {
return this.palpite;
}
public void darPalpite() {
this.palpite = (int)(Math.random() * 10);
}
public String getNome(){
return this.nome;
}
}
package net.antoniopassos.appjogodeadivinhacao.dominio;
import net.antoniopassos.appjogodeadivinhacao.visao.UI;
/**
*
* @author Antonio Passos
*/
public class JogoDeAdivinhacao {
private Jogador jogadores[];
private Jogador ganhador;
private int numeroSorteado;
private int rodada;
public JogoDeAdivinhacao(Jogador[] jogadores) {
this.jogadores = jogadores;
}
public void jogar() {
boolean alguemGanhou = false;
this.rodada = 1;
do {
this.sortearNumero();
this.obterPalpites();
UI ui = new UI();
alguemGanhou = this.hasAcertador();
if (alguemGanhou == true) {
ui.imprimirResultado(rodada, ganhador);
} else {
ui.imprimirResultado(rodada);
}
rodada++;
} while (alguemGanhou == false);
}
public void sortearNumero() {
this.numeroSorteado = (int) (Math.random() * 10);
}
public void obterPalpites() {
for (Jogador jogador : jogadores) {
jogador.darPalpite();
}
}
public boolean hasAcertador() {
for (Jogador jogador : jogadores) {
int palpite = jogador.getPalpite();
if (palpite == numeroSorteado) {
this.ganhador = jogador;
return true;
}
}
return false;
}
public Jogador getGanhador() {
return this.ganhador;
}
public int getNumeroSorteado() {
return this.numeroSorteado;
}
}
package net.antoniopassos.appjogodeadivinhacao;
import net.antoniopassos.appjogodeadivinhacao.dominio.Jogador;
import net.antoniopassos.appjogodeadivinhacao.dominio.JogoDeAdivinhacao;
public class Principal {
public static void main(String[] args) {
Jogador jogador1 = new Jogador("Fulano");
Jogador jogador2 = new Jogador("Beltrano");
Jogador jogador3 = new Jogador("Cicrano");
Jogador [] jogadores = {jogador1, jogador2, jogador3};
JogoDeAdivinhacao jogo = new JogoDeAdivinhacao(jogadores);
jogo.jogar();
}
}
package net.antoniopassos.appjogodeadivinhacao.visao;
import net.antoniopassos.appjogodeadivinhacao.dominio.Jogador;
/**
*
* @author Antonio Passos
*/
public class UI {
public void imprimirResultado(int rodada, Jogador ganhador) {
System.out.println("Rodada: " + rodada);
System.out.println("Ganhador: " + ganhador.getNome());
System.out.println("Palpite dado: " + ganhador.getPalpite());
}
public void imprimirResultado(int rodada) {
System.out.println("Rodada: " + rodada);
System.out.println("Ninguém ganhou!");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment