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); }
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); } }
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); } }