// 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); }