/** Starts and continues the game until Game is drawn Game is won by one of the participants */ public void playTheGame() { connect4View.displayPattern(aConnect4Model); boolean gameIsOver = false; do { for (int index = 0; index < 2 && !gameIsOver; index++) { if (aConnect4Model.isItaDraw()) { connect4View.gameDrawMessage(); gameIsOver = true; } else aConnect4Model.dropPieces(thePlayers[index].nextMove(), thePlayers[index].getGamePiece()); connect4View.displayPattern(aConnect4Model); if (aConnect4Model.didLastMoveWin()) { gameIsOver = true; connect4View.gameOverMessage(thePlayers[index].getName()); connect4View.displayPattern(aConnect4Model); } } } while (!gameIsOver); }
/** * Initializes players as per play mode * * @param aPlayer Player 1 * @param bPlayer Player 2 */ public void init(PlayerModel aPlayer, PlayerModel bPlayer) { int playMode; aPlayer.aConnect4Field = aConnect4Model; bPlayer.aConnect4Field = aConnect4Model; connect4View.menu(); playMode = askPlayMode(); if (playMode == 1) { aPlayer.setPlayMode(playMode); bPlayer.setPlayMode(playMode); } else { aPlayer.setPlayMode(1); bPlayer.setPlayMode(2); } thePlayers[0] = aPlayer; thePlayers[1] = bPlayer; }