package control; import view.User; import view.GameObserver; import model.Model; //import model.Fink; import model.AngryFink; import model.PeacefullFink; import model.AbstractFink; import java.util.Random; public class Controller { /** * Start the system, this is the main routine */ public void start() { user = new User( System.in, System.out ); user.send( welcome ); boolean isActive = true; while( isActive ) { int answer = user.getInt( gameMenu ); if( answer == gameMenuChoise.PLAY.ordinal() ) { playGame(); } else if( answer == gameMenuChoise.EXIT.ordinal() ) { isActive = false; } else user.send( tryAgain ); } } /** * Execute a game of eveolution. */ public void playGame() { int maxAge = 0; while( maxAge <= 0 ) { maxAge = user.getInt( ageMenu ); } // The style of fink 1 is choosen int style1 = 0; while(( style1 != 1) && (style1 != 2)){style1 = user.getInt( playStyle1 );} // The style of fink 2 is choosen int style2 = 0; while(( style2 != 1) && (style2 != 2)){style2 = user.getInt( playStyle2 );} Random random = new Random(); // Default finks AngryFink fink1 = new AngryFink (user.get (playMenu1), maxAge, random ); PeacefullFink fink2 = new PeacefullFink (user.get (playMenu2), maxAge, random ); //If choises are different than defaults- they are changed //if (style1 == 2){fink1 = new PeacefullFink (fink1.name(), maxAge, random );} //if (style2 == 1){fink2 = new AngryFink (fink2.name(), maxAge, random );} Model game = new Model( fink1, fink2 ); GameObserver reporter = new GameObserver (user); game.play( reporter ); reporter.reportWinner(game); } private enum gameMenuChoise { PLAY, EXIT }; private final static String welcome = "Welcome to the game of Evolution."; private final static String tryAgain = "Input unknown, try again\n"; private static final String gameMenu = "Choices for actions to perform: \n" + "Run game..............." + gameMenuChoise.PLAY.ordinal() + "\n" + "Exit..................." + gameMenuChoise.EXIT.ordinal() + "\n" + "Enter choice: "; private static final String playMenu1 = "Enter name of Fink 1\n"; private static final String playMenu2 = "Enter name of Fink 2\n"; private static final String ageMenu = "Enter max age for finks\n"; // Options that allows the user to choose playing style of both finks private static final String playStyle1 = "Choose playing style of Fink 1\n(1)Angry\n(2)Peacefull\n"; private static final String playStyle2 = "Choose playing style of Fink 2\n(1)Angry\n(2)Peacefull\n"; private User user; }