コード例 #1
0
ファイル: LevelManager.cs プロジェクト: csatari/pixeek
        /// <summary>
        /// Elindít egy új játékot a megadott paraméterekket
        /// </summary>
        /// <param name="gameMode">játékmód</param>
        /// <param name="difficulty">nehézség</param>
        /// <param name="imageList">képek listája</param>
        /// <param name="boardAnimal">a tábla alakzata, ha null, akkor szimpla négyzet lesz</param>
        /// <returns>A táblával tér vissza</returns>

        /*public Board newGame(GameMode gameMode, Difficulty difficulty, IBoardShapes boardAnimal, List<Image> imageList)
         * {
         *  this.gameMode = gameMode;
         *
         *  board = new Board(imageList);
         *  board.createBoard(difficulty, boardAnimal); //TODO az imageList-bõl válasszon képet
         *  //board.createBoard_New(difficulty, boardAnimal);
         *  ImagesToFind = Game.ImagesToFind.createNewImagesToFind(gameMode, difficulty, board);
         *
         *  if (gameMode == GameMode.TIME)
         *  {
         *      elapsedTime = new TimeSpan(0, 0, 30);
         *  }
         *  else
         *  {
         *      elapsedTime = TimeSpan.Zero;
         *  }
         *  if(TimeElapsedHandler!=null) TimeElapsedHandler(elapsedTime);
         *  time.Start();
         *
         *  return board;
         * }*/

        /// <summary>
        /// Elindít egy új játékot a megadott paraméterekket
        /// </summary>
        /// <param name="gameMode">játékmód</param>
        /// <param name="difficulty">nehézség</param>
        /// <param name="imageList">képek listája</param>
        /// <param name="boardAnimal">a tábla alakzata, ha null, akkor szimpla négyzet lesz</param>
        /// <returns>A táblával tér vissza</returns>
        public Board NewGame(GameMode gameMode, Difficulty difficulty, IBoardShapes boardAnimal, List <Image> imageList)
        {
            this.gameMode   = gameMode;
            this.difficulty = difficulty;
            board           = new Board(imageList);
            board.CreateBoard(difficulty, boardAnimal);
            ImagesToFind = Game.ImagesToFind.CreateNewImagesToFind(gameMode, difficulty, board);

            if (gameMode == GameMode.TIME)
            {
                ElapsedTime = new TimeSpan(0, 0, 30);
            }
            else
            {
                ElapsedTime = TimeSpan.Zero;
            }
            if (TimeElapsedHandler != null)
            {
                TimeElapsedHandler(ElapsedTime);
            }
            startTime = GameManager.CurrentGameTime;
            Paused    = false;
            time.Start();

            return(board);
        }
コード例 #2
0
        /// <summary>
        /// Elkészíti a megtalálandó képek osztályát az elkészített táblából nehézség szerint
        /// </summary>
        /// <param name="gameMode"></param>
        /// <param name="difficulty"></param>
        /// <param name="board"></param>
        /// <returns></returns>
        public static ImagesToFind CreateNewImagesToFind(GameMode gameMode, Difficulty difficulty, Board board)
        {
            ImagesToFind imagesToFind = new ImagesToFind();

            imagesToFind.ToFind   = new List <Image>();
            imagesToFind.Board    = board;
            imagesToFind.GameMode = gameMode;

            //Nehézség szerint kitalálja, hogy hány képet is kelljen keresnie a játékosnak
            Random random      = new Random();
            int    toFindCount = 0;

            if (difficulty == Difficulty.EASY)
            {
                toFindCount = 5 + random.Next(-2, 2);
            }
            else if (difficulty == Difficulty.NORMAL)
            {
                toFindCount = 10 + random.Next(-3, 3);
            }
            else if (difficulty == Difficulty.HARD)
            {
                toFindCount = 20 + random.Next(-5, 5);
            }
            //kiválaszt megadott számú random mezõt az elkészített táblából
            List <Field> toFindRandomFieldsFromBoard = board.AllFields.OrderBy(x => random.Next()).Take(toFindCount).ToList();

            //a random mezõkbõl kiszedi a képet - ez azért kell, mert egy kép többször is szerepelhet
            foreach (Field field in toFindRandomFieldsFromBoard)
            {
                imagesToFind.ToFind.Add(field.ImageProperty);
            }
            return(imagesToFind);
        }