Apple Component (Snakes's Food) - UQcsse3200/2024-studio-2 GitHub Wiki
Overview
The snake mini-game has an Apple class which represents the food item that the snake consumes to increase it's size and grow longer.
This Apple class plays a crucial role in handling the spawning of the apple on the game grid, ensuring it appears in a random, unoccupied cell each time. The player's goal in this mini-game is to guide the snake character to this apple to score points and increase the snake's length.
Class: Apple
Package
package com.csse3200.game.components.minigame.snake;
Imports
import com.csse3200.game.components.minigame.Grid;
import java.util.Random;
Description
The Apple class is responsible for:
- Generating the apple at a random location on the game grid
- Making sure it does overlap with the snake's current position
- Checking if the snake's head is in the same position as the apple (this will trigger the snake to consume the apple)
Constructor
Apple(Grid grid)
- Parameters:
Grid grid: The grid on which the apple is placed.
- Description:
- Creates an apple associated with a specific grid. Upon creation, the apple is automatically placed at a random, unoccupied position on the grid.
Methods
void spawn()
- Description:
- Randomly spawns the apple at an unoccupied position on the grid.
- Uses a
Randomobject to determine the x and y coordinates, ensuring the apple doesn't appear on an occupied cell (where the snake is currently located).
boolean isTouchingSnakeHead(Snake snake)
- Parameters:
Snake snake: The snake character in the snake mini-game.
- Returns:
boolean:trueif the snake's head is at the same coordinates as the apple,falseotherwise.
- Description:
- Checks if the snake's head is in the same position as the apple, this will indicate that the apple has been consumed.
int getX() and int getY()
- Returns:
int: x-coordinate/ y-coordinate of the apple's position.
- Description:
- Retrieves the x-coordinate/ y-coordinate where the apple is currently located on the grid.