Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public void Reiniciar()
        {
            if (Status == Status.Acabado)
            {
                TrocarJogadorQueInicia();
            }

            ZerarCasas();

            Jogador1.ObservarReinicioDeJogo(this);
            Jogador2.ObservarReinicioDeJogo(this);

            JogadorDaRodada.Jogar(this);
        }