private void playButton_Click(object sender, EventArgs e) { SnakeGame gameForm = new SnakeGame(); gameForm.FormClosed += new FormClosedEventHandler(gameFormClose); gameForm.Show(); this.Hide(); }
private void snakeUpdate() { try { //new head position - snake move Point newPosition = new Point( snake[0].X + snakeDirection.X, snake[0].Y + snakeDirection.Y); snake.Insert(0, newPosition); snake.RemoveAt(snake.Count - 1); //eating if (snake[0].X == food.X && snake[0].Y == food.Y) { snake.Add(new Point(food.X, food.Y)); score++; SnakeGame.ActiveForm.Text = "Snake score " + score; generateFood(); } //eating bad food if (snake[0].X == badFood.X && snake[0].Y == badFood.Y) { score--; SnakeGame.ActiveForm.Text = "Snake score " + score; snake.RemoveAt(snake.Count - 1); } //collid with body for (int i = 1; i < snake.Count - 1; i++) { if (snake[0].X == snake[i].X && snake[0].Y == snake[i].Y) { timer.Stop(); MessageBox.Show("You have collided with your body! Play again.\nScore: " + score); SnakeGame snakeGame = new SnakeGame(); snakeGame.Show(); this.Dispose(false); } } //leave the map field if (snake[0].X > this.ClientSize.Width - 10 || snake[0].X <0 || snake[0].Y> this.ClientSize.Height - 10 || snake[0].Y < 0) { timer.Stop(); MessageBox.Show("You left the map field! Play again.\nScore: " + score); SnakeGame snakeGame = new SnakeGame(); snakeGame.Show(); this.Dispose(false); } } catch (ArgumentException) { //eating bad food first to kill snake timer.Stop(); MessageBox.Show("You ate bad food by accident! The Snake is dead. Play again.\nScore: " + score); SnakeGame snakeGame = new SnakeGame(); snakeGame.Show(); this.Dispose(false); } }