wsdor/src/main/java/cz/xelfi/quoridor/webidor/GameStatus.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 14 Sep 2010 08:56:13 +0200
changeset 264 d60370059c3c
parent 256 1758a7727278
permissions -rw-r--r--
Changing headers to GPLv3
     1 /*
     2  * Quoridor server and related libraries
     3  * Copyright (C) 2009-2010 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, either version 3 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. Look for COPYING file in the top folder.
    16  * If not, see http://www.gnu.org/licenses/.
    17  */
    18 
    19 package cz.xelfi.quoridor.webidor;
    20 
    21 import cz.xelfi.quoridor.Board;
    22 
    23 /** Possible states of the game.
    24  *
    25  * @author Jaroslav Tulach <jtulach@netbeans.org>
    26  */
    27 public enum GameStatus {
    28     whiteMove,
    29     blackMove,
    30     whiteWon,
    31     blackWon,
    32     history;
    33 
    34     /** Creates appropriate status of the game based on the state
    35      * on the board.
    36      *
    37      * @param board the board
    38      * @return status describing the situation on the board
    39      */
    40     public static GameStatus valueOf(Board board) {
    41         if (board.getWinner() != null) {
    42             return board.getWinner() == board.getPlayers().get(0) ? GameStatus.whiteWon : GameStatus.blackWon;
    43         } else {
    44             return board.getCurrentPlayer() == board.getPlayers().get(0) ? GameStatus.whiteMove : GameStatus.blackMove;
    45         }
    46     }
    47 
    48     /** @return true if the game is in progress
    49      */
    50     public boolean isInProgress() {
    51         return this == whiteMove || this == blackMove;
    52     }
    53 }