コード例 #1
0
    private bool RunProceduralGeneration()
    {
        if (blackBoard.Reset)
        {
            if (blackBoard.ConfigUI.Config.HeiarchalEnabled)
            {
                blackBoard.DifficultyNGram = NGramFactory.InitHierarchicalNGram(
                    blackBoard.ConfigUI.Config.N,
                    blackBoard.ConfigUI.Config.HeiarchalMemory);

                blackBoard.SimpleDifficultyNGram = NGramFactory.InitHierarchicalNGram(
                    blackBoard.ConfigUI.Config.N,
                    blackBoard.ConfigUI.Config.HeiarchalMemory);
            }
            else if (blackBoard.ConfigUI.Config.BackOffEnabled)
            {
                blackBoard.DifficultyNGram = NGramFactory.InitBackOffNGram(
                    blackBoard.ConfigUI.Config.N,
                    blackBoard.ConfigUI.Config.BackOffMemory);

                blackBoard.SimpleDifficultyNGram = NGramFactory.InitBackOffNGram(
                    blackBoard.ConfigUI.Config.N,
                    blackBoard.ConfigUI.Config.BackOffMemory);
            }
            else
            {
                blackBoard.DifficultyNGram       = NGramFactory.InitGrammar(blackBoard.ConfigUI.Config.N);
                blackBoard.SimpleDifficultyNGram = NGramFactory.InitGrammar(blackBoard.ConfigUI.Config.N);
            }

            GenerateNGram();
            blackBoard.Reset = false;
        }
        else
        {
            if (blackBoard.DifficultyNGram == null)
            {
                if (blackBoard.ConfigUI.Config.HeiarchalEnabled)
                {
                    blackBoard.DifficultyNGram = NGramFactory.InitHierarchicalNGram(
                        blackBoard.ConfigUI.Config.N,
                        blackBoard.ConfigUI.Config.HeiarchalMemory);

                    blackBoard.SimpleDifficultyNGram = NGramFactory.InitHierarchicalNGram(
                        blackBoard.ConfigUI.Config.N,
                        blackBoard.ConfigUI.Config.HeiarchalMemory);
                }
                else if (blackBoard.ConfigUI.Config.BackOffEnabled)
                {
                    blackBoard.DifficultyNGram = NGramFactory.InitBackOffNGram(
                        blackBoard.ConfigUI.Config.N,
                        blackBoard.ConfigUI.Config.BackOffMemory);

                    blackBoard.SimpleDifficultyNGram = NGramFactory.InitBackOffNGram(
                        blackBoard.ConfigUI.Config.N,
                        blackBoard.ConfigUI.Config.BackOffMemory);
                }
                else
                {
                    blackBoard.DifficultyNGram       = NGramFactory.InitGrammar(blackBoard.ConfigUI.Config.N);
                    blackBoard.SimpleDifficultyNGram = NGramFactory.InitGrammar(blackBoard.ConfigUI.Config.N);
                }
            }

            if (grammar == null || blackBoard.ProgressIndex != previousIndex)
            {
                GenerateNGram();
            }
        }

        if (blackBoard.ConfigUI.Config.DifficultyNGramEnabled)
        {
            grammar.AddGrammar(blackBoard.DifficultyNGram);
        }

        return(GenerateLevel());
    }