public bool Jogar(int posicao, out ValidacaoDaJogada validacao) { bool retorno = false; validacao = ValidacaoDaJogada.JogadaValida; if (Status == Dominio.Status.Acabado) { validacao = ValidacaoDaJogada.JogoAcabado; retorno = false; } else if (Casas[posicao] != Marca.Vazio) { validacao = ValidacaoDaJogada.PosicaoJaMarcada; retorno = false; } else { retorno = true; validacao = ValidacaoDaJogada.JogadaValida; Casas[posicao].Marca = MarcaDaRodada; if (Status == Dominio.Status.Rodando) { PassarRodada(); JogadorDaRodada.Jogar(this); } else { Jogador1.ObservarFimDaJogada(this); Jogador2.ObservarFimDaJogada(this); AtualizarPlacar(); } } return(retorno); }
public void Reiniciar() { if (Status == Status.Acabado) { TrocarJogadorQueInicia(); } ZerarCasas(); Jogador1.ObservarReinicioDeJogo(this); Jogador2.ObservarReinicioDeJogo(this); JogadorDaRodada.Jogar(this); }