public void Jogar(Jogador jogador, int jogada) { if (!EhTurnoDoJogador(jogador)) throw new Exception("Não é o turno do jogador"); if (!JogadaDisponivel(jogada)) throw new Exception("Jogada não disponivel"); Jogadas.Add(jogada, jogador); if (PadraoVitoria != null) { if (jogador == Jogador1) Estado = EstadoJogo.FinalizadoVitoriaJogador1; else if (jogador == Jogador2) Estado = EstadoJogo.FinalizadoVitoriaJogador2; } else if (Jogadas.Count == MAXIMO_JOGADAS) { Estado = EstadoJogo.FinalizadoEmpate; } else FinalizarTurno(); }
public Jogador BuscaOponente(Jogador jogador) { if (Jogador1 == jogador) return Jogador2; if (Jogador2 == jogador) return Jogador1; throw new Exception("Jogador não faz parte do jogo"); }
public bool EhTurnoDoJogador(Jogador jogador) { if (Estado == EstadoJogo.TurnoJogador1 && Jogador1 == jogador) return true; if (Estado == EstadoJogo.TurnoJogador2 && Jogador2 == jogador) return true; return false; }