Exemple #1
0
    // Obtém a pontuação da aula de uma vez só, um float apenas.
    // Observação: Se for necessário, quebrar essa função em mais funções, uma
    // para cada mídia escolhida para esta metodologia.
    public override float ObterPontuacaoDaAula()
    {
        float pontuacao = 0;

        if (MidiasDaAula == null)
        {
            MidiasDaAula = ObterMidiasDaAula(EstadoDoJogo.Instance);
        }

        var midiasCujasPontuacoesJaForamCalculadas = new NomeDeMidia[QuantidadeDeMidiasDaAula];

        for (int i = 0; i < QuantidadeDeMidiasDaAula; i++)
        {
            var midia = MidiasDaAula[i];

            var  categoriasDaMidia = midia.NomeMidia.CategoriasDaMidia();
            bool midiaFoiRepetida  = midiasCujasPontuacoesJaForamCalculadas.Contains(midia.NomeMidia);
            pontuacao += MetodologiaDaAula.PontuacaoParaCategoriasDeMidia(categoriasDaMidia, midiaFoiRepetida);

            midiasCujasPontuacoesJaForamCalculadas[i] = midia.NomeMidia;
        }

        // Média aritmética entre as mídias da aula
        return(pontuacao / QuantidadeDeMidiasDaAula);
    }