Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package darts;
- /**
- * @author Quoc Huynh, Kai Neubecker
- *Class to simulate a dart game
- */
- public class Darts implements IDarts{
- private String gamemode;
- private Player winner;
- public Player[] player;
- protected int maxPlayers;
- private int activePlayerNumber;
- private int getLeftDarts;
- private int playerCount;
- private int resetScore;
- private boolean isRunning;
- private boolean isOver;
- /**Constructor of Darts
- * @param gamemode
- * @param maxPlayers
- */
- public Darts(String gamemode, int maxPlayers) {
- this.gamemode = gamemode;
- this.maxPlayers = maxPlayers;
- setIsRunning(false);
- setIsOver(false);
- setPlayerCount(0);
- setLeftDarts(3);
- setActivePlayerNumber(0);
- this.player = new Player[maxPlayers-1];
- }
- /**Returns if the player is already added in the game
- * @param player
- * @return if the player is already added in the game
- */
- public boolean containsPlayer(Player player){
- if(this.player != null){
- for(Player p : this.player ){
- if (p == player){
- return true;
- }
- }
- }
- return false;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#addPlayer(darts.Player)
- */
- @Override
- public boolean addPlayer(Player player) {
- boolean accept = !isRunning() && maxPlayers > getPlayerCount() && !containsPlayer(player);
- if(!accept){
- if(isRunning()){
- System.out.println("addPlayer: Error game is already running!");
- }
- if(maxPlayers < getPlayerCount()){
- System.out.println("addPlayer: Error max Players reached!");
- }
- if (containsPlayer(player))
- System.out.println("addPlayer: Error player already added");
- return false;
- } else {
- //setPlayer(player, getPlayerCount());
- this.player[getPlayerCount()] = player;
- setPlayerCount(getPlayerCount()+1);
- return true;
- }
- }
- /* (non-Javadoc)
- * @see darts.IDarts#getActivePlayerNumber()
- */
- @Override
- public int getActivePlayerNumber() {
- // TODO Auto-generated method stub
- return activePlayerNumber;
- }
- /**set/change the activePlayerNumber
- * @param activePlayerNumber
- */
- public void setActivePlayerNumber(int activePlayerNumber){
- this.activePlayerNumber = activePlayerNumber;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#getPlayerCount()
- */
- @Override
- public int getPlayerCount() {
- // TODO Auto-generated method stub
- return playerCount;
- }
- /**set the current playerCount
- * @param playerCount
- */
- public void setPlayerCount(int playerCount){
- this.playerCount = playerCount;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#getPlayers()
- */
- @Override
- public Player[] getPlayers() {
- return player;
- }
- /**set a player into an array
- * @param player
- * @param index
- */
- public void setPlayer(Player player, int index){
- this.player[index] = player;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#getGamemode()
- */
- @Override
- public String getGamemode() {
- // TODO Auto-generated method stub
- return gamemode;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#getLeftDarts()
- */
- @Override
- public int getLeftDarts() {
- // TODO Auto-generated method stub
- return getLeftDarts;
- }
- /**set the current leftDarts
- * @param getLeftDarts
- */
- public void setLeftDarts(int getLeftDarts){
- this.getLeftDarts = getLeftDarts;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#isRunning()
- */
- @Override
- public boolean isRunning() {
- // TODO Auto-generated method stub
- return isRunning;
- }
- /**set the game isRunning or not
- * @param isRunning
- */
- public void setIsRunning(boolean isRunning){
- this.isRunning = isRunning;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#isOver()
- */
- @Override
- public boolean isOver() {
- // TODO Auto-generated method stub
- return isOver;
- }
- /**set the game isOver or not
- * @param isOver
- */
- public void setIsOver(boolean isOver){
- this.isOver = isOver;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#start()
- */
- @Override
- public boolean start() {
- boolean accept = !isRunning() && getPlayerCount() > 0;
- if(accept){
- setIsRunning(true);
- return true;
- } else
- if(isRunning())
- System.out.println("start: error game is already running!");
- if(getPlayerCount() > 0)
- System.out.println("start: error no player available!");
- setIsRunning(true);
- setIsOver(false);
- return false;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#getWinner()
- */
- @Override
- public Player getWinner() {
- return winner;
- }
- /**set a winner
- * @param winner
- */
- public void setWinner(Player winner){
- this.winner = winner;
- }
- /** returns the start score of the round
- * @return the starts score of the round
- */
- public int getResetScore(){
- return resetScore;
- }
- /** set the start score
- * @param resetScore
- */
- public void setResetScore(int resetScore){
- this.resetScore = resetScore;
- }
- @Override
- public boolean throwDart(int number, int multiplier) {
- boolean accept = false;
- switch (multiplier){
- case 0: accept = number == 0; break;
- case 1: case 2:
- case 3: accept = number > 0 && number < 21 || (multiplier < 3? number ==25 : false); break;
- }
- if(accept == false){
- System.out.println("throwDart: error invalid input/combination!");
- }
- return accept;
- }
- /* (non-Javadoc)
- * @see darts.IDarts#endGame()
- */
- @Override
- public void endGame() {
- setIsRunning(false);
- setIsOver(true);
- setPlayerCount(0);
- setActivePlayerNumber(0);
- setLeftDarts(3);
- if(getWinner() != null){
- getWinner();
- System.out.println("Winner is " + getWinner().getName() + ".");
- } else {
- setWinner(null);
- System.out.println("Draw.");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement