Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.62 KB | None | 0 0
  1.  
  2. package darts;
  3.  
  4.  
  5. /**
  6. * @author Quoc Huynh, Kai Neubecker
  7. *Class to simulate a dart game
  8. */
  9. public class Darts implements IDarts{
  10.  
  11. private String gamemode;
  12. private Player winner;
  13. public Player[] player;
  14.  
  15. protected int maxPlayers;
  16. private int activePlayerNumber;
  17. private int getLeftDarts;
  18. private int playerCount;
  19. private int resetScore;
  20.  
  21. private boolean isRunning;
  22. private boolean isOver;
  23.  
  24. /**Constructor of Darts
  25. * @param gamemode
  26. * @param maxPlayers
  27. */
  28. public Darts(String gamemode, int maxPlayers) {
  29. this.gamemode = gamemode;
  30. this.maxPlayers = maxPlayers;
  31. setIsRunning(false);
  32. setIsOver(false);
  33. setPlayerCount(0);
  34. setLeftDarts(3);
  35. setActivePlayerNumber(0);
  36. this.player = new Player[maxPlayers-1];
  37. }
  38.  
  39. /**Returns if the player is already added in the game
  40. * @param player
  41. * @return if the player is already added in the game
  42. */
  43. public boolean containsPlayer(Player player){
  44. if(this.player != null){
  45. for(Player p : this.player ){
  46. if (p == player){
  47. return true;
  48. }
  49. }
  50. }
  51. return false;
  52. }
  53.  
  54. /* (non-Javadoc)
  55. * @see darts.IDarts#addPlayer(darts.Player)
  56. */
  57. @Override
  58. public boolean addPlayer(Player player) {
  59. boolean accept = !isRunning() && maxPlayers > getPlayerCount() && !containsPlayer(player);
  60.  
  61. if(!accept){
  62. if(isRunning()){
  63. System.out.println("addPlayer: Error game is already running!");
  64. }
  65. if(maxPlayers < getPlayerCount()){
  66. System.out.println("addPlayer: Error max Players reached!");
  67. }
  68. if (containsPlayer(player))
  69. System.out.println("addPlayer: Error player already added");
  70. return false;
  71. } else {
  72. //setPlayer(player, getPlayerCount());
  73. this.player[getPlayerCount()] = player;
  74. setPlayerCount(getPlayerCount()+1);
  75. return true;
  76. }
  77. }
  78.  
  79. /* (non-Javadoc)
  80. * @see darts.IDarts#getActivePlayerNumber()
  81. */
  82. @Override
  83. public int getActivePlayerNumber() {
  84. // TODO Auto-generated method stub
  85. return activePlayerNumber;
  86. }
  87.  
  88. /**set/change the activePlayerNumber
  89. * @param activePlayerNumber
  90. */
  91. public void setActivePlayerNumber(int activePlayerNumber){
  92. this.activePlayerNumber = activePlayerNumber;
  93. }
  94.  
  95. /* (non-Javadoc)
  96. * @see darts.IDarts#getPlayerCount()
  97. */
  98. @Override
  99. public int getPlayerCount() {
  100. // TODO Auto-generated method stub
  101. return playerCount;
  102. }
  103.  
  104. /**set the current playerCount
  105. * @param playerCount
  106. */
  107. public void setPlayerCount(int playerCount){
  108. this.playerCount = playerCount;
  109. }
  110. /* (non-Javadoc)
  111. * @see darts.IDarts#getPlayers()
  112. */
  113. @Override
  114. public Player[] getPlayers() {
  115. return player;
  116. }
  117.  
  118. /**set a player into an array
  119. * @param player
  120. * @param index
  121. */
  122. public void setPlayer(Player player, int index){
  123. this.player[index] = player;
  124. }
  125.  
  126. /* (non-Javadoc)
  127. * @see darts.IDarts#getGamemode()
  128. */
  129. @Override
  130. public String getGamemode() {
  131. // TODO Auto-generated method stub
  132. return gamemode;
  133. }
  134.  
  135. /* (non-Javadoc)
  136. * @see darts.IDarts#getLeftDarts()
  137. */
  138. @Override
  139. public int getLeftDarts() {
  140. // TODO Auto-generated method stub
  141. return getLeftDarts;
  142. }
  143.  
  144. /**set the current leftDarts
  145. * @param getLeftDarts
  146. */
  147. public void setLeftDarts(int getLeftDarts){
  148. this.getLeftDarts = getLeftDarts;
  149. }
  150.  
  151. /* (non-Javadoc)
  152. * @see darts.IDarts#isRunning()
  153. */
  154. @Override
  155. public boolean isRunning() {
  156. // TODO Auto-generated method stub
  157. return isRunning;
  158. }
  159.  
  160. /**set the game isRunning or not
  161. * @param isRunning
  162. */
  163. public void setIsRunning(boolean isRunning){
  164. this.isRunning = isRunning;
  165. }
  166. /* (non-Javadoc)
  167. * @see darts.IDarts#isOver()
  168. */
  169. @Override
  170. public boolean isOver() {
  171. // TODO Auto-generated method stub
  172. return isOver;
  173. }
  174.  
  175. /**set the game isOver or not
  176. * @param isOver
  177. */
  178. public void setIsOver(boolean isOver){
  179. this.isOver = isOver;
  180. }
  181.  
  182. /* (non-Javadoc)
  183. * @see darts.IDarts#start()
  184. */
  185. @Override
  186. public boolean start() {
  187. boolean accept = !isRunning() && getPlayerCount() > 0;
  188.  
  189. if(accept){
  190. setIsRunning(true);
  191. return true;
  192. } else
  193. if(isRunning())
  194. System.out.println("start: error game is already running!");
  195. if(getPlayerCount() > 0)
  196. System.out.println("start: error no player available!");
  197. setIsRunning(true);
  198. setIsOver(false);
  199. return false;
  200. }
  201.  
  202. /* (non-Javadoc)
  203. * @see darts.IDarts#getWinner()
  204. */
  205. @Override
  206. public Player getWinner() {
  207. return winner;
  208. }
  209.  
  210. /**set a winner
  211. * @param winner
  212. */
  213. public void setWinner(Player winner){
  214. this.winner = winner;
  215. }
  216.  
  217. /** returns the start score of the round
  218. * @return the starts score of the round
  219. */
  220. public int getResetScore(){
  221. return resetScore;
  222. }
  223.  
  224. /** set the start score
  225. * @param resetScore
  226. */
  227. public void setResetScore(int resetScore){
  228. this.resetScore = resetScore;
  229. }
  230.  
  231. @Override
  232. public boolean throwDart(int number, int multiplier) {
  233. boolean accept = false;
  234.  
  235. switch (multiplier){
  236. case 0: accept = number == 0; break;
  237. case 1: case 2:
  238. case 3: accept = number > 0 && number < 21 || (multiplier < 3? number ==25 : false); break;
  239. }
  240. if(accept == false){
  241. System.out.println("throwDart: error invalid input/combination!");
  242. }
  243. return accept;
  244. }
  245. /* (non-Javadoc)
  246. * @see darts.IDarts#endGame()
  247. */
  248. @Override
  249. public void endGame() {
  250. setIsRunning(false);
  251. setIsOver(true);
  252. setPlayerCount(0);
  253. setActivePlayerNumber(0);
  254. setLeftDarts(3);
  255. if(getWinner() != null){
  256. getWinner();
  257. System.out.println("Winner is " + getWinner().getName() + ".");
  258. } else {
  259. setWinner(null);
  260. System.out.println("Draw.");
  261. }
  262. }
  263. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement