def evolve(node): if node.depth==2: return evolve node using GoL rules else: node1 = Create Auxiliary Node 1 node2 = Create Auxiliary Node 2 node3 = Create Auxiliary Node 3 node4 = Create Auxiliary Node 4 node5 = Create Auxiliary Node 5 node6 = Create Auxiliary Node 6 node7 = Create Auxiliary Node 7 node8 = Create Auxiliary Node 8 node9 = Create Auxiliary Node 9 node1Res = evolve(node1) node2Res = evolve(node2) node3Res = evolve(node3) node4Res = evolve(node4) node5Res = evolve(node5) node6Res = evolve(node6) node7Res = evolve(node7) node8Res = evolve(node8) node9Res = evolve(node9) intermediateNode1 = assembleNode(node1Res, node2Res, node4Res, node5Res) intermediateNode1 = assembleNode(node2Res, node3Res, node5Res, node6Res) intermediateNode1 = assembleNode(node4Res, node5Res, node7Res, node8Res) intermediateNode1 = assembleNode(node5Res, node6Res, node8Res, node9Res) result = assembleNode( evolve(intermediateNode1), evolve(intermediateNode2), evolve(intermediateNode3), evolve(intermediateNode4) ) return result