A version of Quoridor built with Java. An eclipse project. UI-Base: JavaFX
- Game (Model)
- The encapsulating object that contains all algorithms and constructs of Quoridor
- Board
- The board that holds n x n spaces. (n must be odd and n >= 5)
- Space
- The tile that holds the player, and is surrounded by fences
- Has top, left, right, bottom Fence attributes.
- Contains a player
- Player (1/2)
- A pawn controlled by a player.
- A player can move from space to space
- Fence
- A barrier that the player cannot hop over
- Can be valid (usable by the player) (inner Fences) or invalid (Not used by the player; default state of border).
- Can be placed (Automatically the outside ring of fences) or not placed (the inner fences until changed by a Player).
- ArrayList<ArrayList< Space > board;
- Stores game data.
- Constructor:
ArrayList<ArrayList<Space>>() board; public Board(int size){ board = new ArrayList<ArrayList<Space>(); for // initiate the 2d ArrayList // fill values of arraylist // exclude() means that the space is placed but not valid for x.. for y.. if(x == 0) { space.top.exclude(); }else if (x == size - 1) { space.bottom.exclude(); } if(y == 0) { space.left.exclude(); }else if(y == size - 1) { space.right.exclude(); } }
- getFeedBack()
- Displays who won the game.
- setSize(int size)
- Sets the size of the board.
- getSize()
- gets the size of the board (if needed).
- reset()
- clears/resets the game board to original board.
- isGameWon()
- Determines if a player has won the game
- setChanged()
- Given method that says that something has changed (needed method by observable)
- notifyObservers(...)
- Given method that notifies subscribers to update. (needed method by observable)
- When a player Moves.
- When a fence is placed.
- setting the board Size.
- changeTurn(...)
- Switches the current player's turn.
- placeWall(...)
- TBD
- makeMove(...)
- TBD
- reset()
- Resets the game board
- Constructor();
- getSpace(int x, int y);
- Fence top;
- Fence left;
- Fence bottom;
- Fence right;
- Player playerSpace;
- Constructor();
- setSpace();
- String identifier
- Gives the "name" of the player
- boolean placed;
- boolean valid;
- exclude(...)
- isValid(...)
-
DataType board
-
DataType space
- Stores space data.
- Constructor:
private Fence top; private Fence bottom; private Fence left; private Fence right; private DataType player; public Space(){ // Instantiate Variables }
-
DataType fence
- Stores fence data.
-
int size
- Stores the size of the board.
-
DataType player
- Stores whose move it currently is.
-
boolean gameOver
- keeps track if the game has won. True for game over, false otherwise.
- update(...)
- Method used to update the view that is called by the model (needed method by observable)
- Model object to communicate with model
- Button reset
- Resets the board by calling model.reset.
- ComboBox sizeSelect.
- Gives user a ComboBox to select the size of the board.
- Label feedback
- Displays whose turn it currently is/who won the game.
- Label sizeLabel
- says "select a size"
- int boardSize
- takes in size user inputed from sizeSelect
- Handle method
- for ActionEvents
- Model object
- for communicating with Model
- View object (unless controller is inside of view)
- for communicating with view