Coverage Report - com.buckosoft.fibs.domain.gameEvent.GameEventFirstMove
 
Classes in this File Line Coverage Branch Coverage Complexity
GameEventFirstMove
0%
0/25
0%
0/10
1.714
 
 1  
 /******************************************************************************
 2  
  * GameEventFirstMove.java - Someone makes the first move
 3  
  * $Id$
 4  
  * 
 5  
  * BuckoFIBS - Backgammon by BuckoSoft
 6  
  * Copyright© 2011 - Dick Balaska - BuckoSoft, Corp.
 7  
  * 
 8  
  * $Log$
 9  
  */
 10  
 
 11  
 /* 
 12  
  * This program is free software: you can redistribute it and/or modify
 13  
  * it under the terms of the GNU General Public License as published by
 14  
  * the Free Software Foundation, either version 3 of the License, or
 15  
  * (at your option) any later version.
 16  
  *
 17  
  * This program is distributed in the hope that it will be useful,
 18  
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 19  
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 20  
  * GNU General Public License for more details.
 21  
  *
 22  
  * You should have received a copy of the GNU General Public License
 23  
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 24  
  *
 25  
  * The Original Code is BuckoFIBS, <http://www.buckosoft.com/BuckoFIBS/>.
 26  
  * The Initial Developer of the Original Code is Dick Balaska and BuckoSoft, Corp.
 27  
  * 
 28  
  */
 29  
 package com.buckosoft.fibs.domain.gameEvent;
 30  
 
 31  
 import org.slf4j.Logger;
 32  
 import org.slf4j.LoggerFactory;
 33  
 
 34  
 import com.buckosoft.fibs.domain.Board;
 35  
 
 36  
 
 37  
 /** Someone makes the first move.
 38  
  * @author Dick Balaska
 39  
  * @since 2011/06/26
 40  
  * @version $Revision$ <br> $Date$
 41  
  * @see com.buckosoft.fibs.BuckoFIBS.GameManager
 42  
  * @see <a href="http://cvs.buckosoft.com/Projects/BuckoFIBS/BuckoFIBS/src/main/java/com/buckosoft/fibs/domain/gameEvent/GameEventFirstMove.java">cvs GameEventFirstMove.java</a>
 43  
  */
 44  
 public class GameEventFirstMove extends GameEvent {
 45  0
     private Logger logger = LoggerFactory.getLogger(getClass());
 46  0
         private        int[] dice = new int[2];
 47  
 
 48  
         @Override
 49  
         public Type getType() {
 50  0
                 return(Type.FirstMove);
 51  
         }
 52  
 
 53  
         @Override
 54  
         public Life getLife() {
 55  0
                 return(Life.Transient);
 56  
         }
 57  
 
 58  
         /** Default constructor */
 59  0
         public GameEventFirstMove() {}
 60  
 
 61  
         /** Return the two dice rolled in this event
 62  
          * @return The array of the dice
 63  
          */
 64  
         public int[]        getDice() {
 65  0
                 return(dice);
 66  
         }
 67  
         
 68  
         /** Set the dice to be used for this turn
 69  
          * @param dice The dice (from the previous roll)
 70  
          */
 71  
         public void setDice(int[] dice) {
 72  0
                 this.dice = dice;
 73  0
         }
 74  
 
 75  
         /** Parse either "<code>It's your turn to move.</code>" or "<code>dickbalaska makes the first move.</code>"
 76  
          * along with the first dice.
 77  
          * @param s The FIBS string to parse.
 78  
          * @param firstRoll The previous FirstRoll which contains his and her dice.
 79  
          * @param board A board to match player names against.
 80  
          */
 81  
         public void parse(String s, GameEventFirstRoll firstRoll, Board board) {
 82  0
                 this.dice = firstRoll.getDice();
 83  0
                 String[] ss = s.split(" ", 2);
 84  0
                 if (ss[0].equals("It's"))
 85  0
                         this.who = Board.O;
 86  0
                 else if (ss[0].equals(firstRoll.getPlayerNames()[0]))
 87  0
                         this.who = Board.O;
 88  0
                 else if (ss[0].equals(firstRoll.getPlayerNames()[1]))
 89  0
                         this.who = Board.X;
 90  0
                 else if (ss[0].equals(board.getPlayerName()[Board.O]))
 91  0
                         this.who = Board.O;
 92  0
                 else if (ss[0].equals(board.getPlayerName()[Board.X]))
 93  0
                         this.who = Board.X;
 94  
                 else {
 95  0
                         logger.error("Can't Determine first move player");
 96  0
                         logger.error("s = " + s);
 97  0
                         logger.error("firstRoll = " + firstRoll.toString());
 98  
                 }
 99  
                         
 100  0
         }
 101  
 
 102  
         /** A debug string of this object.
 103  
          * @return "<code>Please move {checkersToMove} pieces. Dice= {dice0}-{dice1}</code>"
 104  
          */
 105  
         public String toString() {
 106  0
                 return("First move. who=" + who + " Dice= " + dice[0] + "-" + dice[1]);
 107  
         }
 108  
 }