public void generateGameGraph(Game g){
		if (isGameOver(g)){
			return;
		}
		for (Node n : g.getNodes()){
			for (Node m : g.getNodes()){
				List<Face> common = getCommonFaces(n, m, g);
				if (!(common.isEmpty())){
					for (Face f : common){
						for (List<Boundary> b : getBoundaryPowerSet(f.getBoundaries())){
							if (b.contains(n.getBoundaries()) || b.contains(m.getBoundaries())) continue;
							Game child = makeMove(n,m,b,g);
							if(child == null) continue;
							g.addChild(child);
							generateGameGraph(child);
						}
					}
				}
			}
		}
	}