Snake Game - UQcsse3200/2024-studio-2 GitHub Wiki
Overview
The overall game logic for the Snake mini-game is managed by the SnakeGame class. It handles the game's core mechanics including the
- Snake Character management
- Detecting the collisions
- tracking the player's score
- when the game actually terminates
This
SnakeGameclass also integrates various components of the game which includes: SnakeAppleSnakeGridThisSnakeGameclass overall ensures smooth gameplay and an amazing player experience.
Class: SnakeGame
Package
package com.csse3200.game.components.minigame.snake;
Imports
import java.util.List;
Description
The SnakeGame class is responsible for:
- Snake's movement
- Spawning of the apples
- Score calculation
- Game state (whether the game is over)
Constructor
SnakeGame(Snake snake, Apple apple, SnakeGrid snakeGrid)
- Parameters:
Snake snake: The snake characterApple apple: The apple that the snake consumes.SnakeGrid snakeGrid: The grid on which the game is played.
- Description:
- Initialises a new instance of the
SnakeGame, setting up the snake, apple, and grid. It also initialises the score to 0.
- Initialises a new instance of the
Methods
boolean getIsGameOver()
- Returns:
boolean:trueif the game is over,falseotherwise.
- Description:
- Getter for the isGameOver variable
void setIsGameOver(boolean state)
- Parameters:
boolean state: The new state of the game (truefor game over,falsefor ongoing).
- Description:
- Set the isGameOver function. Is true if over, else false
int getScore()
- Returns:
int: The current score of the game.
- Description:
- Returns the current score of the game, which increases as the snake consumes apples.
void attemptEatFruit()
- Description:
- Attempts to eat the apple in the snake game if the snake has reached it. If the snake can eat the apple then a new apple will spawn, the snake will grow and the score will increase.
int calculateScore()
- Returns:
int: The value to add to the score when the snake eats an apple.
- Description:
- A private method that defines the score increment when the snake consumes an apple. The current implementation adds 1 point per apple (Adds constant to the score)
void set_score(int value)
- Parameters:
int value: The new score value.
- Description:
- Sets the score (used for testing only)
boolean boundaryDetection()
- Returns:
boolean:trueif the snake has hit the boundary of the grid,falseotherwise.
- Description:
- Detects if the snake it at the boundary of the grid, indicating a collision with the wall and triggering game-over conditions.
boolean snakeCollisionDetection()
- Returns:
boolean:trueif the snake's head has collided with its own body,falseotherwise.
- Description:
- Determines if the snake has run into itself. A collision results in the game ending.