예제 #1
0
        public IEnumerable <ITreeNode> GetDisplayTreeNodes(string id)
        {
            int           level   = fProvider.GetLevel(fDefinition, id);
            IParamBuilder builder = TreeUtil.GetLevelBuilder(fSelector, fDefinition,
                                                             level, id, fProvider);

            var data = TreeUtil.SelectData(fSelector, this, () => fSelector.Select(builder), id);

            return(TreeUtil.GetDisplayTreeNodes(data, id));
        }
예제 #2
0
        public Quizz GenerateQuizz(int size)
        {
            var questions = new List <Question>();

            for (int i = 0; i < size; i++)
            {
                questions.Add(new Question(_levelProvider.GetLevel()));
            }

            var ratio    = questions.Sum(o => o.Points) / questions.Count();
            var avgLevel = new Level();

            if (ratio > 0 && ratio <= 1)
            {
                avgLevel = Level.Easy;
            }
            else if (ratio > 1 && ratio <= 2)
            {
                avgLevel = Level.Medium;
            }
            else
            {
                avgLevel = Level.Hard;
            }

            return(new Quizz()
            {
                Questions = questions,
                AverageLevel = avgLevel
            });
        }
예제 #3
0
        public ComponentsEnum[,] GetLevel(int difficulty)
        {
            ComponentsEnum[,] level;
            // If the user has requested a difficulty not one level above
            if (bestDifficultyRequested + 1 < difficulty)
            {
                difficulty = bestDifficultyRequested;       // Reset the request difficulty
            }

            // Checking if the proxy already contain the level in it's cache
            if (!m_cache.TryGetValue(difficulty, out level))
            {
                level = originalProvider.GetLevel(difficulty); // Request the level from the server
                m_cache.Add(difficulty, level);                // Adding the level to the cache
            }
            bestDifficultyRequested = difficulty;              // Storing the last requestes level
            return(level);                                     // Return the level
        }
예제 #4
0
        public LevelDataRowTreeNode(ITree tree, DataRow row,
                                    LevelTreeDefinition treeDef, ILevelProvider provider)
            : base(tree, row)
        {
            Id   = row[treeDef.IdField].ToString();
            Name = row[treeDef.NameField].ToString();
            int level = provider.GetLevel(treeDef, Id);

            ParentId = provider.GetParentId(treeDef, level, Id);
            if (level < treeDef.TotalLevel - 1)
            {
                HasChild = true;
                NodeType = level == 0 ? TreeNodeType.Root : TreeNodeType.Branch;
            }
            else
            {
                NodeType = TreeNodeType.Leaf;
            }
        }
예제 #5
0
 private void StartLevel()
 {
     if (m_levelProvider.HasLevel(m_difficulty))
     {
         var level = m_levelProvider.GetLevel(m_difficulty); // Getting the level from the provider
         if (level != null)
         {
             m_levelTemplate.LoadLevel(level);                          // Loading the Level to the template
             m_boardDisplayer.ClearBoard();                             // Clearing the Board
             m_boardDisplayer.DisplayBoard(m_levelTemplate.GetBoard()); // Displaying the board of the game
             m_stateMachine.SetBoard(m_levelTemplate.GetBoard());       // Storing the board
             m_stateMachine.SetWorker(m_levelTemplate.GetWorker());     // Storing the worker
         }
     }
     else
     {
         EndGame();
     }
 }
예제 #6
0
 public Task <Level> Get(string name)
 {
     return(_levelProvider.GetLevel(name));
 }