Beispiel #1
0
        public void Contabilizar()
        {
            // Inicializar pontuação para todos jogadores com 0
            Resultado = new Dictionary <Jogador, int>();
            foreach (var jogador in Jogadores)
            {
                Resultado.Add(jogador, 0);
            }

            int posicoesConsideradas = 3;

            foreach (var q in Questoes)
            {
                // Busca somente as respostas corretas da questão atual
                // Ordena pelo tempo de resposta e pega somente a quantidade de posições consideradas
                var respostasQuestao = RespostasQuestoes
                                       .Where(rq => rq.Questao.Codigo == q.Codigo && rq.Questao.Pergunta.Equals(rq.Alternativa))
                                       .OrderBy(rq => rq.DataHora).Take(posicoesConsideradas);

                int pontuacaoAtual = posicoesConsideradas;
                foreach (var resposta in respostasQuestao)
                {
                    Resultado[resposta.Jogador] += pontuacaoAtual;
                    pontuacaoAtual--;
                }
            }
        }
Beispiel #2
0
        public void QuestaoRepondida(Jogador jogador, Questao questao, DateTime dataHora, string alternativa)
        {
            Jogadores.Add(jogador);
            Questoes.Add(questao);

            RespostasQuestoes.Add(new RespostaQuestao()
            {
                Jogador  = jogador, Questao = questao,
                DataHora = dataHora, Alternativa = alternativa
            });
        }