⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connectfourgame.java

📁 ParallelConnectFour是一个java小游戏
💻 JAVA
字号:
package edu.rit.cs.mlr5773.connectfour;import java.util.*;/** * Simulates a game of Connect Four.  Keeps track of who moves when, * and who won.  Calls move() on the player objects at the appropriate * times. * * @author Mark Roth */public class ConnectFourGame extends Observable {  /** The current game board */  private Board currentBoard;  /** The current strategy for player 2 */  private Player player2;  /** The current strategy for player 1 */  private Player player1;  /** Whose turn is it? */  private int currentPlayer;  /* Who is the current winner of the game?    *   -1 = Nobody Wins   *    0 = Tie Game   *    1 = Red Wins   *    2 = Black Wins   */  private int winner;  /** The name of the players */  public static final String[] name = { "Tie", "Red", "Black" };  /** The current message to be displayed (e.g. Black's Turn) */  private String currentMessage;  /** The supplemental message (e.g. Black Score = 500) */  private String supplementalMessage;	  /**    * Initialize a new game of Connect Four   */  public ConnectFourGame(){    currentBoard = new Board();    currentMessage = "";    supplementalMessage = "";  }    /**    * Returns the current game board   */  public Board getCurrentBoard(){    return currentBoard;  }    /**   * Returns player 1   */  public Player getPlayer1(){    return player1;  }    /**   * Returns player 2    */  public Player getPlayer2(){    return player2;  }    /**   * Returns the current winner of the game   *   * @see winner   */  public int getWinner() {    return winner;  }  /**   * Returns true if the given move is valid, or false otherwise.   */  public boolean isValidMove( int place ) {    return getCurrentBoard().isValidMove( place );  }  /**   * Process a request by a player to move in the given location.  The move   * is assumed to be valid.   */  public void move( int place ) {    Board board = getCurrentBoard();    int winner;        board.move( place, currentPlayer );    winner = board.getWinner();    if( winner == -1 ) {      if( currentPlayer == 1 ) {        currentPlayer = 2;        currentMessage = name[ currentPlayer ] + "'s Turn...";        writeMessage( supplementalMessage );        getPlayer2().move();      }      else {        currentPlayer = 1;        currentMessage = name[ currentPlayer ] + "'s Turn...";        writeMessage( supplementalMessage );        getPlayer1().move();      }    }    else {      this.winner = winner;      currentMessage = "Winner: " + name[ winner ];      writeMessage( supplementalMessage );    }  }  /**   * Sets the current board for this game to operate on.   * Useful for loading games or swapping boards.   */  public void setCurrentBoard( Board board ) {    currentBoard = board;  }    /**   * Sets the strategy for player 1   */  public void setPlayer1(Player player1){    this.player1 = player1;  }    /**   * Sets the strategy for player 2   */  public void setPlayer2(Player player2){    this.player2 = player2;  }    /**   * Starts the game by asking player1 for his move.   */  public void start() {    currentPlayer = 1;    currentMessage = name[ currentPlayer ] + "'s Turn...";    writeMessage( supplementalMessage );    getPlayer1().move();  }  /**   * Process a request by a player to write the given supplemental message.   */  public void writeMessage( String message ) {    setChanged();    supplementalMessage = message;    notifyObservers( currentMessage + "  " + supplementalMessage );  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -