Player.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /*
  2. * Player.java
  3. *
  4. * This class hold all information that deals with each individual player
  5. *
  6. */
  7. import java.util.ArrayList;
  8. public class Player
  9. {
  10. //fields
  11. private ArrayList<Domino> hand;
  12. private boolean isWinner;
  13. private int numberOfDots;
  14. //constructor accepts arraylist of dominoes to use as hand.
  15. public Player(ArrayList<Domino> inputHand)
  16. {
  17. hand = inputHand;
  18. isWinner = false;
  19. }
  20. //getter method retrieves value in isWinner field
  21. public boolean getIsWinner()
  22. {
  23. return isWinner;
  24. }
  25. //method removes a domino from hand ArrayList
  26. public Domino removeFromHand(int dIndex)
  27. {
  28. return hand.remove(dIndex);
  29. }
  30. //take domino from table and add it to players hand
  31. public void addToHand(Domino dominoesFromTable)
  32. {
  33. hand.add(dominoesFromTable);
  34. }
  35. //returns dominoes in players hand as String
  36. public String handToString()
  37. {
  38. String outString = "";
  39. //iterate though arraylist and print each domino
  40. //Note: the dominoes have a defined toString() method.
  41. for (int i=0; i<hand.size(); i++){
  42. outString += hand.get(i);
  43. }
  44. return outString;
  45. }
  46. //method sets isWinner field to true when player wins game
  47. public void setPlayerAsWinner()
  48. {
  49. isWinner = true;
  50. }
  51. //returns information for the whole player class
  52. public String toString()
  53. {
  54. return "\nWinner: " + isWinner
  55. + "\nhand: " + handToString()
  56. + "\nDots: " + getNumberOfDots()
  57. + "\n";
  58. }
  59. //returns number of dominoes in players hand
  60. public int getHandSize()
  61. {
  62. return hand.size();
  63. }
  64. //returns dominoes in players hand as an ArrayList<Domino>
  65. public ArrayList<Domino> getHand()
  66. {
  67. ArrayList<Domino> copy = new ArrayList<Domino>();
  68. copy = hand;
  69. return copy;
  70. }
  71. //returns true if the player has no dominoes in their hand
  72. public boolean checkIfHandEmpty()
  73. {
  74. if ( this.getHandSize() <= 0 )
  75. {
  76. return true;
  77. }
  78. return false;
  79. }
  80. //checks if hand is empty or if player was set as winner by something else.
  81. public boolean checkAndSetIfWinner()
  82. {
  83. if ( this.checkIfHandEmpty() || this.getIsWinner() )
  84. {
  85. setPlayerAsWinner();
  86. return true;
  87. }
  88. return false;
  89. }
  90. //returns sum of domino dots
  91. public int getNumberOfDots()
  92. {
  93. return numberOfDots;
  94. }
  95. //setter method for numberOfDots field
  96. public void setNumberOfDots(int dots)
  97. {
  98. this.numberOfDots = dots;
  99. }
  100. }