Esempio n. 1
0
        public void SaveLevel(GameGrid grid)
        {
            ClearLevel();
            var cells = grid.SelectAll();

            for (var i = 0; i < cells.GetLength(0); i++)
            {
                for (var j = 0; j < cells.GetLength(1); j++)
                {
                    var cell = cells[i, j];
                    if (cell.GetName().Contains("Block"))
                    {
                        BlockPositions.Add(new PointData(i, j));
                    }
                    else if (cell.GetName().Contains("Treasure"))
                    {
                        TreasurePositions.Add(new PointData(i, j));
                    }
                    else if (cell.GetName().Contains("Stone"))
                    {
                        StonePositions.Add(new PointData(i, j));
                    }
                    else if (cell.GetName().Contains("Player"))
                    {
                        PlayerPosition = new PointData(i, j);
                    }
                }
            }
        }
Esempio n. 2
0
 public void Reset()
 {
     BlockPositions.Clear();
     addedBlocks.Clear();
     BlockPositions.Add(new Point(2, 0));
     BlockPositions.Add(new Point(1, 0));
     BlockPositions.Add(new Point(0, 0));
     Direction = direction.Right;
 }
Esempio n. 3
0
        private void MoveBlocks()
        {
            Point tail     = Tail;
            bool  newBlock = false;

            //position of new block equal tail position
            if (addedBlocks.Count > 0 && Tail == addedBlocks.Peek())
            {
                newBlock = true;
            }
            //каждая ячейка перемещается на позицию предшествующей ей
            for (int i = Length - 1; i != 0; i--)
            {
                BlockPositions[i] = BlockPositions[i - 1];
            }

            if (newBlock)
            {
                BlockPositions.Add(addedBlocks.Dequeue());
                OnBlockAddFinish(Tail);
            }
        }
Esempio n. 4
0
 public void ClearLevel()
 {
     BlockPositions.Clear();
     TreasurePositions.Clear();
     StonePositions.Clear();
 }