private void CheckIfNextPositionIsValid(SnakeSegment nextPosition) { if (nextPosition.Line >= _lineCount || nextPosition.Column >= _columnCount) { throw new Exception("Game Over"); } }
private void generateFood() { int maxXpos = pbCanvas.Size.Width / SettingsP1.Width; int maxYpos = pbCanvas.Size.Height / SettingsP1.Height; Random rnd = new Random(); food = new SnakeSegment { X = rnd.Next(0, maxXpos), Y = rnd.Next(0, maxYpos) }; }
private void CheckIfGotFood(SnakeSegment nextPosition) { if (nextPosition.Line == Food.Line && nextPosition.Column == Food.Column) { UpdateHead(); SetNewFoodPosition(); nextPosition.Update(GetNextPosition()); } }
public void Initialize() { Head = new SnakeSegment(0, 0); AllSegments = new List <SnakeSegment> { Head }; SetNewFoodPosition(); _movingDirection = Direction.Right; }
private static void testRender() { Game game2 = new Game(60, 25); game2.Spawn(GameObjectType.SnakeHead); game2.Spawn(GameObjectType.Apple); SnakeSegment seg = new SnakeSegment(new Point(14, 14)); game2.Render(); seg.Render(); }
private void Eat(List <SnakeSegment> snake) { SnakeSegment body = new SnakeSegment { X = snake[snakeP1.Count - 1].X, Y = snake[snakeP1.Count - 1].Y, }; snake.Add(body); generateFood(); }
internal void GoUp() { if (head.Y > 0) { this.segments.Enqueue(head); head = new SnakeSegment(this.head.X, this.head.Y - 30); isFoodEaten(); IsDead(); printMe(); } else { TeleportMe(); } }
internal void GoRight() { if (head.X + 60 <= board.Width) { this.segments.Enqueue(head); head = new SnakeSegment(this.head.X + 30, this.head.Y); isFoodEaten(); IsDead(); printMe(); } else { TeleportMe(); } }
private void SetNewFoodPosition() { var random = new Random(); var line = random.Next(1, _lineCount - 1); var column = random.Next(1, _columnCount - 1); while (HasSegmentIn(line, column)) { line = random.Next(1, _lineCount - 1); column = random.Next(1, _columnCount - 1); } Food = new SnakeSegment(line, column); }
internal void GoDown() { if (head.Y + 60 <= board.Height) { this.segments.Enqueue(head); head = new SnakeSegment(this.head.X, this.head.Y + 30); isFoodEaten(); IsDead(); printMe(); } else { TeleportMe(); } }
private void MoveSnake() { while (_snakeSegments.Count >= _snakeLength) { GameArea.Children.Remove(_snakeSegments[0].UiElement); _snakeSegments.RemoveAt(0); } foreach (SnakeSegment snakeSegment in _snakeSegments) { ((Rectangle)snakeSegment.UiElement).Fill = _snakeBodyBrush; snakeSegment.IsHead = false; } SnakeSegment snakeHead = _snakeSegments[^ 1];
private void StartGame() { label3.Visible = false; new SettingsP1(); new SettingsP2(); snakeP1.Clear(); snakeP2.Clear(); SnakeSegment head = new SnakeSegment { X = 10, Y = 5 }; SnakeSegment head2 = new SnakeSegment { X = 5, Y = 10 }; snakeP1.Add(head); snakeP2.Add(head2); generateFood(); }
public GameScreen() { InitializeComponent(); snakeP1 = new List <SnakeSegment>(); snakeP2 = new List <SnakeSegment>(); food = new SnakeSegment(); new SettingsP1(); new SettingsP2(); gameTimer.Interval = 1250 / SettingsP1.Speed; gameTimer.Tick += UpdateScreen; gameTimer.Start(); StartGame(); }
public Snake(Canvas boardOfGame) { this.board = boardOfGame; head = new SnakeSegment(300, 300); segments = new Queue <SnakeSegment>(); queueLength = 3; foodObject = new Food(); foodObject.moveToNewPlace(this.board, this); snakeTimer = new System.Windows.Threading.DispatcherTimer(); snakeTimer.Tick += new EventHandler(dispatcherTimer_Tick); snakeTimer.Interval = new TimeSpan(0, 0, 0, 0, 80); snakeTimer.Start(); this.currentMovement = GoUp; printMe(); }
private void TeleportMe() { this.segments.Enqueue(head); if (currentDirection == Key.Right) { head = new SnakeSegment(this.head.X = 0, this.head.Y); } else if (currentDirection == Key.Left) { head = new SnakeSegment(this.head.X = ((int)board.Width - 30), this.head.Y); } else if (currentDirection == Key.Up) { head = new SnakeSegment(this.head.X, this.head.Y = ((int)board.Height - 30)); } else if (currentDirection == Key.Down) { head = new SnakeSegment(this.head.X, this.head.Y = 0); } printMe(); }
public void Move(SnakeSegment nextPosition) { PreviousSegment?.Move(this); Update(nextPosition); }
private void PaintSquare(SnakeSegment segment) { var lineControl = _lines.ElementAt(segment.Line); lineControl.Text = lineControl.Text.Remove(segment.Column, 1).Insert(segment.Column, $"{FILLED_SQUARE}"); }
public void Update(SnakeSegment nextPosition) { Line = nextPosition.Line; Column = nextPosition.Column; }