private Midia[] ObterMidiasDaAula(EstadoDoJogo jogo) { var midiasDaAula = new Midia[QuantidadeDeMidiasDaAula]; for (int i = 0; i < QuantidadeDeMidiasDaAula; i++) { midiasDaAula[i] = jogo.MidiasSelecionadas[i]; } return(midiasDaAula); }
// Obter feedback da Lurdinha para o jogador de acordo com as escolhas de metodologia e de mídias // É uma lista de strings pois a Lurdinha pode trazer múltiplos feedbacks para o jogador // Fonte: https://docs.google.com/spreadsheets/d/1L1-BTr9iV8cBK-1nssccfwQVfkWrLKnsqK4fABewKmg/edit#gid=0 public static List <string> ObterFeedback(EstadoDoJogo jogo) { var listaDeFeedbacks = new List <string>(); if (jogo.MetodologiaSelecionada == Metodologia.ABJ) { // TODO } else // jogo.MetodologiaSelecionada == Metodologia.ABP { var escolheuMidiaDeConsulta = jogo.MidiasSelecionadas.Any((midia) => midia.NomeMidia.CategoriasDaMidia().HasFlag(CategoriasDeMidia.ConsultaRepositorio)); var escolheuMidiaDigital = jogo.MidiasSelecionadas.Any((midia) => midia.NomeMidia.CategoriasDaMidia().HasFlag(CategoriasDeMidia.Digital)); var escolheuMidiaPopular = jogo.MidiasSelecionadas.Any((midia) => midia.NomeMidia.CategoriasDaMidia().HasFlag(CategoriasDeMidia.Popular)); if (escolheuMidiaDeConsulta && escolheuMidiaDigital) { listaDeFeedbacks.Add("Parabéns! Você oportunizou pesquisas de qualidade e discussões intensas para os alunos sobre o assunto abordado!"); } else if (escolheuMidiaDeConsulta) { listaDeFeedbacks.Add("Muito bem! Os alunos puderam pesquisar ótimos conteúdos sobre o assunto."); } else if (escolheuMidiaDigital) { listaDeFeedbacks.Add("Muito bem! A diversidade de conteúdos e ferramentas ajudou os alunos."); } if (escolheuMidiaPopular) { listaDeFeedbacks.Add("Cuidado com as Fake News! Buscar conteúdos e discussões em locais sem controle sobre as fontes pode gerar interpretações erradas."); } // Feedback padrão da Lurdinha caso nenhum dos if's anteriores tenham sido satisfeitos if (listaDeFeedbacks.Count == 0) { listaDeFeedbacks.Add("Boa aula prof.! Pense na escolha de mídias que ajudem os alunos a pesquisar e dêem acesso a diversas fontes."); } } // Adicionar feedback para quando o jogador seleciona mídias repetidas var quantidadeMidiasDistintas = jogo.MidiasSelecionadas .GroupBy((midia) => midia.NomeMidia) .Select((grupo) => grupo.First()) .Count(); if (jogo.MidiasSelecionadas.Length > quantidadeMidiasDistintas) { listaDeFeedbacks.Add("Procure oportunizar aos alunos o contato com diferentes mídias."); } return(listaDeFeedbacks); }
public void ReadData() { EstadoDoJogo estadoDoJogo = EstadoDoJogo.Instance; nivelDeEnsinoSelecionado = estadoDoJogo.NivelDeEnsino; areaDeConhecimentoSelecionada = estadoDoJogo.AreaDeConhecimento; inteligenciasSelecionadas = estadoDoJogo.Inteligencias; metodologiaSelecionada = estadoDoJogo.Metodologia; midiasSelecionadas = estadoDoJogo.Midias; SpriteCorpoPersonagem = estadoDoJogo.SpriteCorpoPersonagem; SpriteCabeloPersonagem = estadoDoJogo.SpriteCabeloPersonagem; SpriteRoupaPersonagem = estadoDoJogo.SpriteRoupaPersonagem; SpriteIconePersonagem = estadoDoJogo.SpriteIconePersonagem; }
public void WriteData() { EstadoDoJogo estadoDoJogo = EstadoDoJogo.Instance; estadoDoJogo.NivelDeEnsino = nivelDeEnsinoSelecionado; estadoDoJogo.AreaDeConhecimento = areaDeConhecimentoSelecionada; estadoDoJogo.Inteligencias = inteligenciasSelecionadas; estadoDoJogo.Metodologia = metodologiaSelecionada; estadoDoJogo.Midias = midiasSelecionadas; estadoDoJogo.SpriteCorpoPersonagem = SpriteCorpoPersonagem; estadoDoJogo.SpriteCabeloPersonagem = SpriteCabeloPersonagem; estadoDoJogo.SpriteRoupaPersonagem = SpriteRoupaPersonagem; estadoDoJogo.SpriteIconePersonagem = SpriteIconePersonagem; }
public void DefaultInitialization() { EstadoDoJogo estadoDoJogo = EstadoDoJogo.Instance; Midia[] midias = new Midia[4]; midias[0] = new Midia(NomeDeMidia.Plataformas); midias[1] = new Midia(NomeDeMidia.CadernosECartazes); midias[2] = new Midia(NomeDeMidia.EditoresDeTextoEPlanilhasEletronicas); midias[3] = new Midia(NomeDeMidia.Lousa); estadoDoJogo.NivelDeEnsino = NivelDeEnsino.EducacaoInfantil; estadoDoJogo.AreaDeConhecimento = AreaDeConhecimento.CienciasBiologicas; estadoDoJogo.Inteligencias = Inteligencias.CorporalCinestesicaComNaturalista; estadoDoJogo.Metodologia = Metodologia.Invertida; estadoDoJogo.Midias = midias; estadoDoJogo.SpriteCorpoPersonagem = SpriteCorpoPersonagem; estadoDoJogo.SpriteCabeloPersonagem = SpriteCabeloPersonagem; estadoDoJogo.SpriteRoupaPersonagem = SpriteRoupaPersonagem; estadoDoJogo.SpriteIconePersonagem = SpriteIconePersonagem; }
public IEnumerator ExecutarAnimacao(Inteligencias inteligenciasSelecionadas) { // Mostrar apenas os balões que correspondem ao par de inteligências selecionadas conjuntoDeBaloesAtivo = baloesPorInteligencias[inteligenciasSelecionadas]; conjuntoDeBaloesAtivo.SetActive(true); var transformDoConjunto = conjuntoDeBaloesAtivo.transform; var quantidadeDeBaloes = transformDoConjunto.childCount; // Esconder todos os balões deste conjunto for (var i = 0; i < quantidadeDeBaloes; i++) { transformDoConjunto.GetChild(i).gameObject.SetActive(false); } // Definir as variáveis usadas dentro do while int indiceAleatorio; GameObject balaoEscolhido; EstadoDoJogo jogo = EstadoDoJogo.Instance; Sprite spriteDoIconeDoBalao; Image imageDoIconeDoBalao; Image imageDoIconeDoBalao2; // Caso especial para inteligências interpessoal + musical bool InteligenciasInterpessoalComMusicalForamEscolhidas = (inteligenciasSelecionadas == Inteligencias.InterpessoalComMusical); // Mostrar um balão do conjunto de cada vez while (true) { // Sortear um balão aleatório do conjunto indiceAleatorio = Random.Range(0, quantidadeDeBaloes); balaoEscolhido = transformDoConjunto.GetChild(indiceAleatorio).gameObject; // Sortear uma categoria de ícone aleatória para estar no balão indiceAleatorio = Random.Range(0, (int)TipoDeIconeDeBalao.TamanhoDoEnum); // Puxar o sprite correto de acordo com a categoria de ícone sorteada switch (indiceAleatorio) { case (int)TipoDeIconeDeBalao.NivelDeEnsino: spriteDoIconeDoBalao = jogo.NivelDeEnsinoSelecionado.Sprite ? jogo.NivelDeEnsinoSelecionado.Sprite : nivelDeEnsinoFallbackSprite; break; case (int)TipoDeIconeDeBalao.AreaDeConhecimento: spriteDoIconeDoBalao = jogo.AreaDeConhecimentoSelecionada.Sprite ? jogo.AreaDeConhecimentoSelecionada.Sprite : areaDeConhecimentoFallbackSprite; break; case (int)TipoDeIconeDeBalao.Inteligencias: spriteDoIconeDoBalao = jogo.InteligenciasSelecionadas.SpriteGrande ? jogo.InteligenciasSelecionadas.SpriteGrande : inteligenciasFallbackSprite; break; case (int)TipoDeIconeDeBalao.Metodologia: spriteDoIconeDoBalao = jogo.MetodologiaSelecionada.Sprite ? jogo.MetodologiaSelecionada.Sprite : metodologiaFallbackSprite; break; case (int)TipoDeIconeDeBalao.Midia: // O jogador pode ter escolhido várias mídias para serem usadas na aula, // portanto, escolher o sprite do ícone de uma delas aleatoriamente indiceAleatorio = Random.Range(0, jogo.MidiasSelecionadas.Length); var midia = jogo.MidiasSelecionadas[indiceAleatorio]; spriteDoIconeDoBalao = midia.SpriteIcone ? midia.SpriteIcone : midiaFallbackSprite; break; default: spriteDoIconeDoBalao = null; break; } // Definir o sprite do ícone do balão // Caso especial para quando o jogador seleciona inteligências interpessoal + musical // Um balão na verdade é uma dupla de balões, os alunos conversam entre si e o // sprite do ícone estará apenas no segundo balão, que fica na frente if (InteligenciasInterpessoalComMusicalForamEscolhidas) { imageDoIconeDoBalao2 = balaoEscolhido.transform.GetChild(1).GetChild(0).GetComponent <Image>(); imageDoIconeDoBalao2.sprite = spriteDoIconeDoBalao; } else { imageDoIconeDoBalao = balaoEscolhido.transform.GetChild(0).GetComponent <Image>(); imageDoIconeDoBalao.sprite = spriteDoIconeDoBalao; } balaoEscolhido.SetActive(true); yield return(new WaitForSeconds(TempoEmSegundosDeUmBalao)); balaoEscolhido.SetActive(false); yield return(new WaitForSeconds(TempoEmSegundosEntreBaloes)); } }
private bool JogadaDoComputadorImperativo(int _ProfundidadeTotal) { if (m_enumTipoJogo == TipoDosJogadores.HumanoXComputador) { m_TabuleiroAtual = m_CJogadorDois.RealizaJogada(this.TabuleiroAtual, m_CJogadorDois, m_HJogadorUm, _ProfundidadeTotal); if (m_CJogadorDois.ComeuPeca) { m_HJogadorUm.PecasRestantes--; this.PecasRestantesDosJogadores[0] = m_HJogadorUm.PecasRestantes; this.PecasRestantesDosJogadores[1] = m_CJogadorDois.PecasRestantes; while (m_CJogadorDois.ComeMaisUmPeca(m_TabuleiroAtual, m_CJogadorDois.CorDoJogador, m_CJogadorDois.PecasRestantes, m_HJogadorUm.PecasRestantes)) { m_HJogadorUm.PecasRestantes--; this.PecasRestantesDosJogadores[0] = m_HJogadorUm.PecasRestantes; this.PecasRestantesDosJogadores[1] = m_CJogadorDois.PecasRestantes; m_CJogadorDois.ProximaJogada.CopyTo(m_TabuleiroAtual, 0); } m_CJogadorDois.ProximaJogada.CopyTo(m_TabuleiroAtual, 0); } m_enmEstado = EstadoDoJogo.JogadorUm; Fim(); return true; } else if (m_enumTipoJogo == TipoDosJogadores.ComputadorXHumano) { m_TabuleiroAtual = m_CJogadorUm.RealizaJogada(this.TabuleiroAtual, m_CJogadorUm, m_HJogadorDois, _ProfundidadeTotal); if (m_CJogadorUm.ComeuPeca) { m_HJogadorDois.PecasRestantes--; this.PecasRestantesDosJogadores[0] = m_CJogadorUm.PecasRestantes; this.PecasRestantesDosJogadores[1] = m_HJogadorDois.PecasRestantes; while (m_CJogadorUm.ComeMaisUmPeca(m_TabuleiroAtual, m_CJogadorUm.CorDoJogador, m_CJogadorUm.PecasRestantes, m_HJogadorDois.PecasRestantes)) { m_HJogadorDois.PecasRestantes--; this.PecasRestantesDosJogadores[0] = m_CJogadorUm.PecasRestantes; this.PecasRestantesDosJogadores[1] = m_HJogadorDois.PecasRestantes; m_CJogadorUm.ProximaJogada.CopyTo(m_TabuleiroAtual, 0); } m_CJogadorUm.ProximaJogada.CopyTo(m_TabuleiroAtual, 0); } m_enmEstado = EstadoDoJogo.JogadorDois; Fim(); return true; } else if (m_enumTipoJogo == TipoDosJogadores.ComputadorXComputador) { if (m_IsComputadorUM) { m_TabuleiroAtual = m_CJogadorUm.RealizaJogada(this.TabuleiroAtual, m_CJogadorUm, m_CJogadorDois, _ProfundidadeTotal); m_IsComputadorUM = false; Fim(); return true; } else //PC Dois jogando { m_TabuleiroAtual = m_CJogadorDois.RealizaJogada(this.TabuleiroAtual, m_CJogadorDois, m_CJogadorUm, _ProfundidadeTotal); m_IsComputadorUM = true; Fim(); return true; } } else if (m_enumTipoJogo == TipoDosJogadores.ComputadorXFComputador) //Os testes de adversários estao separados por questoes de organizacao, pois quando for // computador x Fcomputador NAO HA JOGADA AQUI DO COMPUTADOR DOIS { if (m_IsComputadorUM) { m_TabuleiroAtual = m_CJogadorUm.RealizaJogada(this.TabuleiroAtual, m_CJogadorUm, m_CJogadorDois, _ProfundidadeTotal); m_IsComputadorUM = false; Fim(); return true; } else { throw new Exception(); } } return false; }
/// <summary> /// Este método faz o chaveamento entre as diferentes IA do computador: imperativa e funcional. /// Se o tipo de jogadores for ComputadorXComputador, simplesmente chama o método tradicional para jogar. /// Se o tipo de jogadores for ComputadorXFComputador, chama o método tradicional para o jogador um /// e os métodos funcionais para o jogador dois (pois o funcional será sempre o jogador dois). /// </summary> /// <param name="_ProfundidadeTotal"></param> /// <returns></returns> public bool JogadaDoComputador(int _ProfundidadeTotal) { for (int i = 0; i < m_TabuleiroAtual.Length; i++) { if (m_TabuleiroAtual[i] == PECA_COMIDA) m_TabuleiroAtual[i] = VAZIA; } switch (m_enumTipoJogo) { //Apenas IA imperativas, joga totalmente imperativo case TipoDosJogadores.ComputadorXComputador: return JogadaDoComputadorImperativo(_ProfundidadeTotal); //Apenas UMA IA, a qual deve ser funcional case TipoDosJogadores.HumanoXFComputador: bool result = JogadaDoComputadorFuncional(_ProfundidadeTotal); m_enmEstado = EstadoDoJogo.JogadorUm; return result; //IA Imperativa X IA Funcional case TipoDosJogadores.ComputadorXFComputador: if (m_IsComputadorUM) return JogadaDoComputadorImperativo(_ProfundidadeTotal); else return JogadaDoComputadorFuncional(_ProfundidadeTotal); default: break; } return false; }
/// <summary> /// Construtor /// </summary> public Jogo(object _udtJogadorUm, object _udtJogadorDois, TipoDosJogadores _enumTipoJogo) { ////Chama o método que realiza jogada do computador para P1 //m_cp1 = new MudaEstado(CP1); ////Chama o método que realiza jogada do computador para P2 //m_cp2 = new MudaEstado(CP2); ////Chama o método que mostra o resultado do jogo //m_fim = new MudaEstado(Fim); m_enumTipoJogo = _enumTipoJogo; switch (m_enumTipoJogo) { case TipoDosJogadores.HumanoXComputador: m_HJogadorUm = new JHumano(); m_CJogadorDois = new JComputador(); CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois); break; case TipoDosJogadores.HumanoXFComputador: m_HJogadorUm = new JHumano(); m_CJogadorDois = new JComputador(); CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois); break; case TipoDosJogadores.HumanoXHumano: m_HJogadorUm = new JHumano(); m_HJogadorDois = new JHumano(); CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois); break; case TipoDosJogadores.ComputadorXHumano: m_CJogadorUm = new JComputador(); m_HJogadorDois = new JHumano(); CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois); break; case TipoDosJogadores.ComputadorXComputador: m_CJogadorUm = new JComputador(); m_CJogadorDois = new JComputador(); CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois); break; case TipoDosJogadores.ComputadorXFComputador: m_CJogadorUm = new JComputador(); m_CJogadorDois = new JComputador(); CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois); break; default: break; } //Instancia o Tabuleiro //A posicao 0 do array nao sera usada para facilitar varios calculos dos algoritmos //que envolvem os indices dele, por isso 26 posicoes para o jogo com 25 casas m_TabuleiroAtual = new int[26]; m_TabuleiroProximosMovimentos = new int[26]; Jogador jogadorConfig = (Jogador)_udtJogadorUm; if (jogadorConfig.IsPrimeiroJogador) { if (m_enumTipoJogo == TipoDosJogadores.HumanoXComputador || m_enumTipoJogo == TipoDosJogadores.HumanoXHumano || m_enumTipoJogo == TipoDosJogadores.HumanoXFComputador) m_enmEstado = EstadoDoJogo.JogadorUm; else if (m_enumTipoJogo == TipoDosJogadores.ComputadorXHumano || m_enumTipoJogo == TipoDosJogadores.ComputadorXComputador || m_enumTipoJogo == TipoDosJogadores.ComputadorXFComputador) { m_enmEstado = EstadoDoJogo.ComputadorJogando; m_IsComputadorUM = true; } } else { if (m_enumTipoJogo == TipoDosJogadores.ComputadorXHumano || m_enumTipoJogo == TipoDosJogadores.HumanoXHumano) m_enmEstado = EstadoDoJogo.JogadorDois; else if ( m_enumTipoJogo == TipoDosJogadores.HumanoXComputador || m_enumTipoJogo == TipoDosJogadores.ComputadorXComputador || m_enumTipoJogo == TipoDosJogadores.ComputadorXFComputador) { m_enmEstado = EstadoDoJogo.ComputadorJogando; m_IsComputadorUM = false; } } //Inicializa o tabuleiro for (int i = 1; i < 26; i++) { /* * Preenche de 1 a 12 com pecas do jogador NOT(Embaixo). * 14 a 25 com pecas do jogador Embaixo. * A casa 13 inicia vazia. */ if (jogadorConfig.IsEmbaixo) { if (i < 13) m_TabuleiroAtual[i] = CorJogadorAdversario(jogadorConfig.CorDoJogador); else m_TabuleiroAtual[i] = jogadorConfig.CorDoJogador; } else { if (i < 13) m_TabuleiroAtual[i] = jogadorConfig.CorDoJogador; else m_TabuleiroAtual[i] = CorJogadorAdversario(jogadorConfig.CorDoJogador); } m_TabuleiroProximosMovimentos[i] = VAZIA; } m_TabuleiroAtual[13] = VAZIA; }
public void Fim() { switch (m_enumTipoJogo) { case TipoDosJogadores.ComputadorXHumano: if (m_CJogadorUm.PecasRestantes == 0) { IsAdversarioVencedor = true; m_enmEstado = EstadoDoJogo.Fim; } else if (m_HJogadorDois.PecasRestantes == 0) { IsAdversarioVencedor = false; m_enmEstado = EstadoDoJogo.Fim; } break; case TipoDosJogadores.HumanoXComputador: if (m_HJogadorUm.PecasRestantes == 0) { IsAdversarioVencedor = false; m_enmEstado = EstadoDoJogo.Fim; } else if (m_CJogadorDois.PecasRestantes == 0) { IsAdversarioVencedor = true; m_enmEstado = EstadoDoJogo.Fim; } break; case TipoDosJogadores.HumanoXFComputador: if (m_HJogadorUm.PecasRestantes == 0) { IsAdversarioVencedor = false; m_enmEstado = EstadoDoJogo.Fim; } else if (m_CJogadorDois.PecasRestantes == 0) { IsAdversarioVencedor = true; m_enmEstado = EstadoDoJogo.Fim; } break; case TipoDosJogadores.HumanoXHumano: if (m_HJogadorUm.PecasRestantes == 0) { m_enmEstado = EstadoDoJogo.Fim; } else if (m_HJogadorDois.PecasRestantes == 0) { m_enmEstado = EstadoDoJogo.Fim; } break; case TipoDosJogadores.ComputadorXComputador: if (m_CJogadorUm.PecasRestantes == 0) { m_enmEstado = EstadoDoJogo.Fim; } else if (m_CJogadorDois.PecasRestantes == 0) { m_enmEstado = EstadoDoJogo.Fim; } break; case TipoDosJogadores.ComputadorXFComputador: if (m_CJogadorUm.PecasRestantes == 0) { m_enmEstado = EstadoDoJogo.Fim; } else if (m_CJogadorDois.PecasRestantes == 0) { m_enmEstado = EstadoDoJogo.Fim; } break; default: break; } if (m_enumTipoJogo == TipoDosJogadores.HumanoXHumano) { } }
/// <summary> /// Move efetivamente um peca, indo para a casa clicada com o botão direito (destino). /// </summary> /// <param name="_casaDestino">Casa para onde a peca devera se mover</param> /// <returns> /// True: se o movimento for valido e ocorrer (atribui um novo estado de tabuleiro efetivo /// a propriedade TabuleiroAtual) /// False: se ela nao puder se mover naquela direcao</returns> public bool CliqueDireito(int _casaDestino) { if (m_enmEstado != EstadoDoJogo.ComputadorJogando) { m_PodeComerSequencia = false; if (m_enmEstado == EstadoDoJogo.JogadorUm) { if (m_HJogadorUm.MovimentaPeca(_casaDestino, this.TabuleiroAtual)) { m_HJogadorUm.NovoTabuleiroAtual.CopyTo(m_TabuleiroAtual, 0); //Passa para o proximo jogador if (m_enumTipoJogo == TipoDosJogadores.HumanoXComputador || m_enumTipoJogo == TipoDosJogadores.ComputadorXHumano || m_enumTipoJogo == TipoDosJogadores.HumanoXFComputador) m_enmEstado = EstadoDoJogo.ComputadorJogando; else m_enmEstado = EstadoDoJogo.JogadorDois; //Atualiza as pecas restantes if (m_HJogadorUm.ComeuPeca) { this.PecaFoiComida = true; if (m_enumTipoJogo == TipoDosJogadores.HumanoXHumano) { m_HJogadorDois.PecasRestantes--; this.PecasRestantesDosJogadores[0] = m_HJogadorUm.PecasRestantes; this.PecasRestantesDosJogadores[1] = m_HJogadorDois.PecasRestantes; } else if (m_enumTipoJogo == TipoDosJogadores.HumanoXComputador) { m_CJogadorDois.PecasRestantes--; this.PecasRestantesDosJogadores[0] = m_HJogadorUm.PecasRestantes; this.PecasRestantesDosJogadores[1] = m_CJogadorDois.PecasRestantes; } if (m_HJogadorUm.ComeMaisUmPeca(this.TabuleiroAtual, m_HJogadorUm.CorDoJogador, _casaDestino)) { m_TabuleiroProximosMovimentos = m_HJogadorUm.CalculaProximasJogadas(_casaDestino, this.TabuleiroAtual); m_PodeComerSequencia = true; m_enmEstado = EstadoDoJogo.JogadorUm; } } Fim(); return true; } } else if (m_enmEstado == EstadoDoJogo.JogadorDois) { if (m_HJogadorDois.MovimentaPeca(_casaDestino, this.TabuleiroAtual)) { m_HJogadorDois.NovoTabuleiroAtual.CopyTo(m_TabuleiroAtual, 0); //Passa para o proximo jogador if (m_enumTipoJogo == TipoDosJogadores.HumanoXComputador || m_enumTipoJogo == TipoDosJogadores.ComputadorXHumano || m_enumTipoJogo == TipoDosJogadores.HumanoXFComputador) m_enmEstado = EstadoDoJogo.ComputadorJogando; else m_enmEstado = EstadoDoJogo.JogadorUm; //Atualiza as pecas restantes if (m_HJogadorDois.ComeuPeca) { this.PecaFoiComida = true; if (m_enumTipoJogo == TipoDosJogadores.HumanoXHumano) { m_HJogadorUm.PecasRestantes--; this.PecasRestantesDosJogadores[0] = m_HJogadorUm.PecasRestantes; this.PecasRestantesDosJogadores[1] = m_HJogadorDois.PecasRestantes; } else if (m_enumTipoJogo == TipoDosJogadores.ComputadorXHumano) { m_CJogadorUm.PecasRestantes--; this.PecasRestantesDosJogadores[0] = m_CJogadorUm.PecasRestantes; this.PecasRestantesDosJogadores[1] = m_HJogadorDois.PecasRestantes; } if (m_HJogadorDois.ComeMaisUmPeca(this.TabuleiroAtual, m_HJogadorDois.CorDoJogador, _casaDestino)) { m_TabuleiroProximosMovimentos = m_HJogadorDois.CalculaProximasJogadas(_casaDestino, this.TabuleiroAtual); m_PodeComerSequencia = true; m_enmEstado = EstadoDoJogo.JogadorDois; } } Fim(); return true; } } } return false; }
private void OnEnterPause(IGameEvent e) { estado = EstadoDoJogo.emPause; }
private void OnExitPause(IGameEvent obj) { estado = EstadoDoJogo.emGame; }
// Retorna uma dupla de strings, a primeira é o que o aluno falou e a segunda // é a assinatura do aluno, por exemplo "Nicole - Aluna do Ensino Fundamental" // Se ninguém assinou, a string assinatura == null public static (string feedback, string assinatura) ObterFeedback(EstadoDoJogo jogo) { if (jogo.MetodologiaSelecionada == Metodologia.ABJ) { // TODO return(SemFeedback, null); } else // jogo.MetodologiaSelecionada == Metodologia.ABP { // Escolher um entre os feedbacks possíveis, // dar prioridade a feedbacks sobre mídia de consulta var escolheuMidiaDeConsulta = jogo.MidiasSelecionadas.Any((midia) => midia.NomeMidia.CategoriasDaMidia().HasFlag(CategoriasDeMidia.ConsultaRepositorio)); var escolheuMidiaDigital = jogo.MidiasSelecionadas.Any((midia) => midia.NomeMidia.CategoriasDaMidia().HasFlag(CategoriasDeMidia.Digital)); if (jogo.NivelDeEnsinoSelecionado == NivelDeEnsino.EducacaoInfantil) { if (escolheuMidiaDeConsulta) { return("Adorei descobrir sobre tudo isso!", $"Ricardo - Aluno da {jogo.NivelDeEnsinoSelecionado.nome}"); } if (escolheuMidiaDigital) { return("É bem mais legal a aula com essas tecnologias.", $"Denise - Aluna da {jogo.NivelDeEnsinoSelecionado.nome}"); } } else if (jogo.NivelDeEnsinoSelecionado == NivelDeEnsino.EnsinoFundamental) { if (escolheuMidiaDeConsulta) { return("Não imaginava que existia tanta coisa diferente sobre esse assunto!", $"Nicole - Aluna do {jogo.NivelDeEnsinoSelecionado.nome}"); } if (escolheuMidiaDigital) { return("Gostei de interagir desse jeito na aula!", $"Fábio - Aluno do {jogo.NivelDeEnsinoSelecionado.nome}"); } } else if (jogo.NivelDeEnsinoSelecionado == NivelDeEnsino.EnsinoMedio) { if (escolheuMidiaDeConsulta) { return("Gostei de poder fazer as pesquisas sozinha, só pedi ajuda quando precisei mesmo.", $"Maria - Aluna do {jogo.NivelDeEnsinoSelecionado.nome}"); } if (escolheuMidiaDigital) { return("Usar essas ferramentas me ajudou na pesquisa e na apresentação!", $"Alexis - Aluno do {jogo.NivelDeEnsinoSelecionado.nome}"); } } else // (jogo.NivelDeEnsinoSelecionado == NivelDeEnsino.EnsinoSuperior) { if (escolheuMidiaDeConsulta) { return("O professor nos deu autonomia para pesquisar e encontrar nossas próprias soluções.", $"Natan - Aluno do {jogo.NivelDeEnsinoSelecionado.nome}"); } if (escolheuMidiaDigital) { return("As mídias digitais permitem que a gente pesquise e se prepare muito mais.", $"Indra - Aluna do {jogo.NivelDeEnsinoSelecionado.nome}"); } } return(SemFeedback, null); } }