public override Acao Executar(Acao animalAntigo)
        {
            string animal = this.INTERACAO_COM_USUARIO.aprender("Qual animal você pensou?");
            string habilidade = this.INTERACAO_COM_USUARIO.aprender("O que um(uma) " + animal + " faz que o " + animalAntigo.Descricao + " não?");

            return criaNovaHabilidadeComAnimais(animalAntigo, animal, habilidade);
        }
Example #2
0
 public override Acao Executar(Acao habilidade)
 {
     //Mostra pergunta para tentar advinhar o animal, caso advinhe o jogo ganha.
     //Em caso de erro, o jogo pede para ser ensinado retornando assim o nó de
     //habilidade e animal aprendido
     if (MostraPergunta(_PERGUNTA, this.Descricao))
         return this.afirmaVitoria.Executar(this);
     else
         return this.aprende.Executar(this);
 }
        public override Acao Executar(Acao animal)
        {
            //Mostra a pergunta com a habilidade para tentar advinhar o animal
            //em caso qualquer das resposta, é aqui que acontece a mágia do jogo
            //ao atribuir o retorno o método Executar para _respostaSim e _respostaNao
            //o código substitui o nó de animal por um nó de habilidade, fazendo com
            //que o nó de animal se torne a resposta não do animal pensado.
            if (MostraPergunta(_PERGUNTA, this.Descricao))
                this._respostaSim = this._respostaSim.Executar(null);
            else
                this._respostaNao = this._respostaNao.Executar(null);

            return this;
        }
 private Habilitadade criaNovaHabilidadeComAnimais(Acao animalAntigo, string animal, string habilidade)
 {
     Animal novoAnimal = new Animal(new AfirmaVitoria(this.INTERACAO_COM_USUARIO), this, animal, this.INTERACAO_COM_USUARIO);
     return new Habilitadade(novoAnimal, animalAntigo, habilidade, this.INTERACAO_COM_USUARIO);
 }
 public Habilitadade(Acao respostaSim, Acao respostaNao, string caracteristica, GUI.IInteracaoComUsuario interacaoComUsuario)
     : base(caracteristica, interacaoComUsuario)
 {
     this._respostaSim = respostaSim;
     this._respostaNao = respostaNao;
 }
Example #6
0
 public Animal(AfirmaVitoria afirmaVitoria, Aprende aprende, string descricao, GUI.IInteracaoComUsuario interacaoComUsuario)
     : base(descricao, interacaoComUsuario)
 {
     this.afirmaVitoria = afirmaVitoria;
     this.aprende = aprende;
 }
 public override Acao Executar(Acao animal)
 {
     this.INTERACAO_COM_USUARIO.mostraVitoria();
     return animal;
 }
Example #8
0
 public abstract Acao Executar(Acao acao);