public void newGame() 
	{
		InitializeRandomProblem(40);
		
		lastAction = new int[6];
		lastAction[ID] = -1;
		lastAction[TYPE] = NO_TYPE;											// NO CASE. Voting Finished.
		lastAction[ACTION] = NEW_GAME;
		lastAction[X] = -1;
		lastAction[Y] = -1;
		lastAction[VALUE] = -1;
		
		lastActionsList.add(0, lastAction);
		Print("Server: Initialized a New Game.");
		
		serverMode = ServerMode.graphic;

		instantiator = new int[sudokuSize][sudokuSize];

		for (int i = 0; i < sudokuSize; i++) {
			for (int j = 0; j < sudokuSize; j++) {
				instantiator[i][j] = -1;
			}
		}
		
		for (int i = 0; i<19; i++) {
			memberList.add(new ArrayList<Integer>());
		}
		
		committerByRowsList = new int[memberList.get(agentCommitterByRows).size()];
		for(int i=0; i<memberList.get(agentCommitterByRows).size(); i++) {
			committerByRowsList[i] = 0;
		}
		
		committerByColumnsList = new int[memberList.get(agentCommitterByColumns).size()];
		for(int i=0; i<memberList.get(agentCommitterByColumns).size(); i++) {
			committerByColumnsList[i] = 0;
		}
		
		committerBySquaresList = new int[memberList.get(agentCommitterBySquares).size()];
		for(int i=0; i<memberList.get(agentCommitterBySquares).size(); i++) {
			committerBySquaresList[i] = 0;
		}
		
		userCommitterList = new int[memberList.get(userCommitter).size()];
		for(int i=0; i<memberList.get(userCommitter).size(); i++) {
			userCommitterList[i] = 0;
		}
		
		valuesVoting = 0;
		valuesBugReported = 0;
		valuesContributed = 0;
		valuesCommitted = 0;
		valuesNotCommited = 0;
		valuesRejected = 0;
		valuesAccepted = 0;
	}