Exemple #1
0
        /// <summary>
        /// </summary>
        public int Tick()
        {
            if (_activeBonus == null)
            {
                var position = new Position2D(
                    _randomGenerator.Next(0, SnakeConfig.RowCount - 1),
                    _randomGenerator.Next(0, SnakeConfig.ColumnCount - 1)
                    );

                while (CellAt(position).BackColor != SnakeConfig.BlankColor)
                {
                    position = new Position2D(
                        _randomGenerator.Next(0, SnakeConfig.RowCount - 1),
                        _randomGenerator.Next(0, SnakeConfig.ColumnCount - 1)
                        );
                }

                _bonusPosition         = position;
                _activeBonus           = CellAt(_bonusPosition);
                _activeBonus.BackColor = SnakeConfig.AppleColor;
            }

            if (_snake.Position.Equals(_bonusPosition))
            {
                if (_snake.Tick(false) == null)
                {
                    GameOver = true;
                }
                else
                {
                    _activeBonus.BackColor = SnakeConfig.SnakeNormalColor;
                    _activeBonus           = null;
                    _score += 100;
                }
            }
            else if (_snake.Tick(true) == null)
            {
                GameOver = true;
            }
            else
            {
                _score++;
            }

            return(_score);
        }
Exemple #2
0
 /// <summary>
 /// </summary>
 /// <param name="other"></param>
 public Position2D(Position2D other)
 {
     X = other.X;
     Y = other.Y;
 }
Exemple #3
0
 /// <summary>
 /// </summary>
 /// <param name="position2D"></param>
 /// <returns></returns>
 public Button CellAt(Position2D position2D)
 {
     return(_matrix[position2D.X * SnakeConfig.ColumnCount + position2D.Y]);
 }
Exemple #4
0
 /// <summary>
 /// </summary>
 /// <param name="button"></param>
 /// <param name="position"></param>
 public SnakeSegment(Control button, Position2D position)
 {
     Button           = button;
     Position         = position;
     button.BackColor = SnakeConfig.SnakeHeadColor;
 }