Esempio n. 1
0
        public Cell GetRandomFreeCell()
        {
            Cell randomCell = new Cell();

            randomCell.Content = Content.Wall;

            while (randomCell.IsWall())
            {
                int x = random.Next(0, _width);
                int y = random.Next(0, _height);
                randomCell = _map[x, y];
            }

            return(randomCell);
        }
Esempio n. 2
0
        protected bool CanMoveRight()
        {
            int yTemp1, yTemp2, xTemp;

            yTemp1 = (int)((GetTop() + _epsilon) / _size);
            yTemp2 = (int)((GetBottom() - _epsilon) / _size);
            xTemp  = (int)((_xPos / _size) + _epsilon);
            // Review IM : дужки
            if (yTemp1 >= 0 && yTemp1 < _level.Height &&
                xTemp >= 0 && xTemp < _level.Width &&
                yTemp2 >= 0 && yTemp2 < _level.Height)
            {
                Cell cell1 = _level.Map[xTemp, yTemp1];
                Cell cell2 = _level.Map[xTemp, yTemp2];
                return(!cell1.IsWall() && !cell2.IsWall());
            }
            else
            {
                return(true);
            }
        }
Esempio n. 3
0
        protected bool CanMoveDown()
        {
            int xTemp1, xTemp2, yTemp;

            xTemp1 = (int)((GetLeft() + _epsilon) / _size);
            xTemp2 = (int)((GetRight() - _epsilon) / _size);
            yTemp  = (int)((_yPos / _size) + _epsilon);
            // Review IM : дужки
            if (xTemp1 >= 0 && xTemp1 < _level.Width &&
                yTemp >= 0 && yTemp < _level.Height &&
                xTemp2 >= 0 && xTemp2 < _level.Width)
            {
                Cell cell1 = _level.Map[xTemp1, yTemp];
                Cell cell2 = _level.Map[xTemp2, yTemp];
                return(!cell1.IsWall() && !cell2.IsWall());
            }
            else
            {
                return(true);
            }
        }