public Game copy()
	{
		Game copy=new Game();
			
		copy.seed=seed;
		copy.rnd=new Random(seed);
		copy.currentMaze=currentMaze;		
		copy.pills=(BitSet)pills.clone();
		copy.powerPills=(BitSet)powerPills.clone();		
		copy.mazeIndex=mazeIndex;
		copy.levelCount=levelCount;
		copy.currentLevelTime=currentLevelTime;		
		copy.totalTime=totalTime;
		copy.score=score;
		copy.ghostEatMultiplier=ghostEatMultiplier;
		copy.gameOver=gameOver;
		copy.timeOfLastGlobalReversal=timeOfLastGlobalReversal;		
		copy.pacmanWasEaten=pacmanWasEaten;
		copy.pillWasEaten=pillWasEaten;
		copy.powerPillWasEaten=powerPillWasEaten;		
		copy.pacman=pacman.copy();
		
		copy.ghostsEaten=new EnumMap<GHOST,Boolean>(GHOST.class);
		copy.ghosts=new EnumMap<GHOST,Ghost>(GHOST.class);
		
		for(GHOST ghostType : GHOST.values())
		{
			copy.ghosts.put(ghostType,ghosts.get(ghostType).copy());
			copy.ghostsEaten.put(ghostType,ghostsEaten.get(ghostType));
		}
			
		return copy;	
	}