Updated for 2023

This commit is contained in:
Oli
2023-03-10 10:58:11 +00:00
commit 0cccefdb9c
52 changed files with 2036 additions and 0 deletions
@@ -0,0 +1,103 @@
package uk.ac.soton.comp1206.game;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import uk.ac.soton.comp1206.component.GameBlock;
/**
* The Game class handles the main logic, state and properties of the TetrECS game. Methods to manipulate the game state
* and to handle actions made by the player should take place inside this class.
*/
public class Game {
private static final Logger logger = LogManager.getLogger(Game.class);
/**
* Number of rows
*/
protected final int rows;
/**
* Number of columns
*/
protected final int cols;
/**
* The grid model linked to the game
*/
protected final Grid grid;
/**
* Create a new game with the specified rows and columns. Creates a corresponding grid model.
* @param cols number of columns
* @param rows number of rows
*/
public Game(int cols, int rows) {
this.cols = cols;
this.rows = rows;
//Create a new grid model to represent the game state
this.grid = new Grid(cols,rows);
}
/**
* Start the game
*/
public void start() {
logger.info("Starting game");
initialiseGame();
}
/**
* Initialise a new game and set up anything that needs to be done at the start
*/
public void initialiseGame() {
logger.info("Initialising game");
}
/**
* Handle what should happen when a particular block is clicked
* @param gameBlock the block that was clicked
*/
public void blockClicked(GameBlock gameBlock) {
//Get the position of this block
int x = gameBlock.getX();
int y = gameBlock.getY();
//Get the new value for this block
int previousValue = grid.get(x,y);
int newValue = previousValue + 1;
if (newValue > GamePiece.PIECES) {
newValue = 0;
}
//Update the grid with the new value
grid.set(x,y,newValue);
}
/**
* Get the grid model inside this game representing the game state of the board
* @return game grid model
*/
public Grid getGrid() {
return grid;
}
/**
* Get the number of columns in this game
* @return number of columns
*/
public int getCols() {
return cols;
}
/**
* Get the number of rows in this game
* @return number of rows
*/
public int getRows() {
return rows;
}
}