All pastes #809736 Raw Edit

Stuff

public text v1 · immutable
·published 2007-12-09 05:18 UTC
rendered paste body
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;
}