Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DominoPlayer {
- private String name;
- private DominoPiece[] dominoPieces;
- public DominoPlayer(String name, DominoPiece[] tiles) {
- this.name = name;
- dominoPieces = tiles;
- }
- public DominoPlayer(String name) {
- this.name = name;
- }
- //Default constructor
- public DominoPlayer(){
- }
- //The method gives the player domino tiles
- public void giveDominoPieces(DominoPiece[] pieces) {
- if (dominoPieces == null)
- dominoPieces = pieces;
- else { //If the player already has some domino tiles
- int oldSize = dominoPieces.length;
- DominoPiece[] dpsTemp = dominoPieces;
- dominoPieces = new DominoPiece[oldSize + pieces.length];
- for (int i = 0; i < oldSize; i++)
- dominoPieces[i] = dpsTemp[i];
- for (int i = 0; i < pieces.length; i = i + 1)
- dominoPieces[i + oldSize] = pieces[i];
- }
- }
- //Check if there is a valid move and make that move
- public boolean playMove(GameBoard gameBoard) {
- for (DominoPiece piece : dominoPieces) {
- if (gameBoard.addToLeftEnd(piece) || gameBoard.addToRightEnd(piece)) {
- removePiece(piece);
- return true;
- } else {
- piece.flipDominoPiece();
- if (gameBoard.addToLeftEnd(piece) || gameBoard.addToRightEnd(piece)) {
- removePiece(piece);
- return true;
- }
- }
- }
- return false;
- }
- //After the move the player doesn't have the tile anymore
- private void removePiece(DominoPiece piece) {
- DominoPiece[] pieces = new DominoPiece[dominoPieces.length - 1];
- int counter = 0;
- for (DominoPiece tempPiece : dominoPieces)
- if (!tempPiece.equals(piece)) {
- pieces[counter] = tempPiece;
- counter++;
- }
- dominoPieces = pieces;
- }
- //The score that the player has earned
- public int countScore() {
- int sum = 0;
- for (DominoPiece piece : dominoPieces)
- sum += piece.getLeft() + piece.getRight();
- return sum;
- }
- //Check if the player has move domino pieces in his hand
- public boolean hasMoreDominoPieces() {
- return dominoPieces.length > 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement