@Override
	public void initGame() {
		start_s[0] 	= 20;
		start_s[1]	= 20;
		goal_s[0] 	= 1;
		goal_s[1] 	= 1;
		
		// method to find automatically what will be the start & goal & walls for the maze that user asked for
		
		// setPositions();	
		
		// set maze start = 1, goal = 2, walls = -1, allowed moves = 0 / 2 -> goal;
		// we also set the boundaries to be -1 instead of been out of the array limits
		for(int i=0; i<maze.length; i++){
			for(int j=0; j<maze[0].length; j++){
				maze[i][j] = 0;
			}
		}
		
		for(int[] w : walls){
			maze[w[0]][w[1]] = -1;
		}
		
		maze[start_s[0]][start_s[1]] = 1;
		maze[goal_s[0]][goal_s[1]] = 2;
		
		// current mouse state
		mouse[0] = start_s[0];
		mouse[1] = start_s[1];
		
		// boundaries - set it to '-1' to get a black frame
		for(int j=0; j<maze[0].length; j++){
			maze[0][j] 			= -1;
			maze[j][0] 			= -1;
			maze[rows-1][j]	 	= -1;
			maze[j][columns-1] 	= -1;
		}
		
		succeed = false;
		score = 0;
		old_mouse.clear();
		old_score.clear();
		old_states.clear();
		
	}