/** 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;
 }