protected void generateMines(int numMines) {
		for(Actor actor : actors) {
			if(actor instanceof Mine) { actors.remove(actor); }
		}
		counts.clear();
		mines.clear();

		Random rnd = new Random();
		for(int m = 0; m < numMines; m++) {
			int pos = rnd.nextInt(hidden.size() - m);

			Iterator<Location> iter = hidden.iterator();
			for(int l = 0; l < pos - 1; l++) {
				iter.next();
			}

			Location toPlace = iter.next();
			while(Groups.containsType(Mine.class, actorsAt(toPlace))) {
				toPlace = iter.next();
			}

			locations.put(new Mine(), toPlace);
			mines.add(toPlace);
		}
		
		for(int y = 0; y < height; y++) {
			for(int x = 0; x < width; x++) {
				Location location = new Location(model, x, y);
			
				if(Groups.containsType(Mine.class, actorsAt(location))) { 
					counts.put(location, -1);
					continue;
				}
				
				counts.put(location, Groups.ofType(Mine.class, actorsAt(neighbors(location, ADJACENT))).size());
			}
		}
	}