Skip to content

Commit

Permalink
corrigindo #9: jogador que tocar tendo peça acaba com o jogo agora.
Browse files Browse the repository at this point in the history
aproveitando e verificando tambem se o jogador nao retornou null como jogada.
  • Loading branch information
brunoabdon committed Apr 11, 2014
1 parent 3a08b2f commit d95d838
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions src/br/nom/abdon/domino/motor/Partida.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Partida {
private MesaImpl mesa;
private Pedra[] dorme = new Pedra[4];

private DominoEventListener eventListener;
private final DominoEventListener eventListener;

public Partida(Dupla dupla1, Dupla dupla2, DominoEventListener eventListener) {
super();
Expand All @@ -36,10 +36,10 @@ public Partida(Dupla dupla1, Dupla dupla2, DominoEventListener eventListener) {
protected ResultadoPartida jogar(Dupla duplaQueGanhouApartidaAnterior) throws BugDeJogadorException{

JogadorWrapper jogadorDaVez = null;
String nomeJogadorDaVez = null;
String nomeJogadorDaVez;

Pedra pedra = null;
Lado lado = null;
Lado lado;

boolean alguemBateu = false, trancou = false;

Expand All @@ -65,8 +65,21 @@ protected ResultadoPartida jogar(Dupla duplaQueGanhouApartidaAnterior) throws Bu

Jogada jogada = jogadorDaVez.joga(mesa);

if(jogada == Jogada.TOQUE){
this.eventListener.eventoAconteceu(new EventoDomino(Tipo.JOGADOR_TOCOU,nomeJogadorDaVez));
if(jogada == null){
throw new BugDeJogadorException("Qual é a jogada? Nenhuma?", jogadorDaVez);
} else if(jogada == Jogada.TOQUE){
//tocou mesmo?
boolean tinhaPedraPraJogar =
maoDoJogadorDaVez.stream().anyMatch(
pedraNaMao ->
pedraNaMao.temNumero(mesa.getNumeroDireita())
|| pedraNaMao.temNumero(mesa.getNumeroDireita()));

if(tinhaPedraPraJogar){
throw new BugDeJogadorException("Tocou tendo pedra pra jogar!", jogadorDaVez);
}
this.eventListener.eventoAconteceu(new EventoDomino(Tipo.JOGADOR_TOCOU,nomeJogadorDaVez));

} else {
//se livrando logo do objeto Jogada, que veio do jogador.
lado = jogada.getLado();
Expand Down Expand Up @@ -273,4 +286,5 @@ private Dupla duplaDaVez(int vez) {
private int avanca(int vez){
return (vez+1)%4;
}

}

0 comments on commit d95d838

Please sign in to comment.