diff options
Diffstat (limited to 'src/test_cases/q4')
27 files changed, 1438 insertions, 0 deletions
diff --git a/src/test_cases/q4/0-expectimax1.solution b/src/test_cases/q4/0-expectimax1.solution new file mode 100644 index 0000000..ff7dfe6 --- /dev/null +++ b/src/test_cases/q4/0-expectimax1.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/0-expectimax1.test. +action: "Left" +generated: "A B C D E F G H I exp1 exp2 exp3 max" diff --git a/src/test_cases/q4/0-expectimax1.test b/src/test_cases/q4/0-expectimax1.test new file mode 100644 index 0000000..deee59a --- /dev/null +++ b/src/test_cases/q4/0-expectimax1.test @@ -0,0 +1,48 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "2" + +# Tree adapted from lecture 6 slides +diagram: """ + max + /-/ | \--\ + / | \ + / | \ + exp1 exp2 exp3 + /|\ /|\ /|\ + / | \ / | \ / | \ +A B C D E F G H I +3 12 8 2 4 6 14 5 2 +""" +num_agents: "2" + +start_state: "max" +win_states: "A B C D E F G H I" +lose_states: "" + +successors: """ +max Left exp1 +max Center exp2 +max Right exp3 +exp1 Left A +exp1 Center B +exp1 Right C +exp2 Left D +exp2 Center E +exp2 Right F +exp3 Left G +exp3 Center H +exp3 Right I +""" + +evaluation: """ +A 3.0 +B 12.0 +C 8.0 +D 2.0 +E 4.0 +F 6.0 +G 14.0 +H 5.0 +I 2.0 +""" diff --git a/src/test_cases/q4/1-expectimax2.solution b/src/test_cases/q4/1-expectimax2.solution new file mode 100644 index 0000000..30c8768 --- /dev/null +++ b/src/test_cases/q4/1-expectimax2.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/1-expectimax2.test. +action: "Left" +generated: "A B C D E F G H I exp1 exp2 exp3 max" diff --git a/src/test_cases/q4/1-expectimax2.test b/src/test_cases/q4/1-expectimax2.test new file mode 100644 index 0000000..d220fe6 --- /dev/null +++ b/src/test_cases/q4/1-expectimax2.test @@ -0,0 +1,48 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "2" + +# Tree from lecture 7 slides +diagram: """ + max + /-/ | \--\ + / | \ + / | \ + exp1 exp2 exp3 + /|\ /|\ /|\ + / | \ / | \ / | \ +A B C D E F G H I +3 12 9 2 4 6 15 6 0 +""" +num_agents: "2" + +start_state: "max" +win_states: "A B C D E F G H I" +lose_states: "" + +successors: """ +max Left exp1 +max Center exp2 +max Right exp3 +exp1 Left A +exp1 Center B +exp1 Right C +exp2 Left D +exp2 Center E +exp2 Right F +exp3 Left G +exp3 Center H +exp3 Right I +""" + +evaluation: """ +A 3.0 +B 12.0 +C 9.0 +D 2.0 +E 4.0 +F 6.0 +G 15.0 +H 6.0 +I 0.0 +""" diff --git a/src/test_cases/q4/2-one-ghost-3level.solution b/src/test_cases/q4/2-one-ghost-3level.solution new file mode 100644 index 0000000..bde5c83 --- /dev/null +++ b/src/test_cases/q4/2-one-ghost-3level.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/2-one-ghost-3level.test. +action: "Left" +generated: "a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8" diff --git a/src/test_cases/q4/2-one-ghost-3level.test b/src/test_cases/q4/2-one-ghost-3level.test new file mode 100644 index 0000000..5778a1d --- /dev/null +++ b/src/test_cases/q4/2-one-ghost-3level.test @@ -0,0 +1,52 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "3" + +diagram: """ + /-----a------\ + / \ + / \ + b1 b2 + / \ / \ + c1 c2 c3 c4 + / \ / \ / \ / \ + d1 d2 d3 d4 d5 d6 d7 d8 + 3 9 10 6 4 7 0 5 + +a - max +b - exp +c - max +""" +num_agents: "2" + +start_state: "a" +win_states: "d1 d2 d3 d4 d5 d6 d7 d8" +lose_states: "" + +successors: """ +a Left b1 +a Right b2 +b1 Left c1 +b1 Right c2 +b2 Left c3 +b2 Right c4 +c1 Left d1 +c1 Right d2 +c2 Left d3 +c2 Right d4 +c3 Left d5 +c3 Right d6 +c4 Left d7 +c4 Right d8 +""" + +evaluation: """ +d1 3.0 +d2 9.0 +d3 10.0 +d4 6.0 +d5 4.0 +d6 7.0 +d7 0.0 +d8 5.0 +""" diff --git a/src/test_cases/q4/3-one-ghost-4level.solution b/src/test_cases/q4/3-one-ghost-4level.solution new file mode 100644 index 0000000..4ba2b47 --- /dev/null +++ b/src/test_cases/q4/3-one-ghost-4level.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/3-one-ghost-4level.test. +action: "Right" +generated: "A B C D E F G H I J K L M N O P a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8" diff --git a/src/test_cases/q4/3-one-ghost-4level.test b/src/test_cases/q4/3-one-ghost-4level.test new file mode 100644 index 0000000..6490a48 --- /dev/null +++ b/src/test_cases/q4/3-one-ghost-4level.test @@ -0,0 +1,79 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "4" + +diagram: """ + /-----a------\ + / \ + / \ + b1 b2 + / \ / \ + c1 c2 c3 c4 + / \ / \ / \ / \ + d1 d2 d3 d4 d5 d6 d7 d8 +/ \ / \ / \ / \ / \ / \ / \ / \ +A B C D E F G H I J K L M N O P +3 13 5 9 10 11 6 8 1 0 4 7 12 15 2 14 + +a - max +b - exp +c - max +d - exp +""" +num_agents: "2" + +start_state: "a" +win_states: "A B C D E F G H I J K L M N O P" +lose_states: "" + +successors: """ +a Left b1 +a Right b2 +b1 Left c1 +b1 Right c2 +b2 Left c3 +b2 Right c4 +c1 Left d1 +c1 Right d2 +c2 Left d3 +c2 Right d4 +c3 Left d5 +c3 Right d6 +c4 Left d7 +c4 Right d8 +d1 Left A +d1 Right B +d2 Left C +d2 Right D +d3 Left E +d3 Right F +d4 Left G +d4 Right H +d5 Left I +d5 Right J +d6 Left K +d6 Right L +d7 Left M +d7 Right N +d8 Left O +d8 Right P +""" + +evaluation: """ +A 3.0 +B 13.0 +C 5.0 +D 9.0 +E 10.0 +F 11.0 +G 6.0 +H 8.0 +I 1.0 +J 0.0 +K 4.0 +L 7.0 +M 12.0 +N 15.0 +O 2.0 +P 14.0 +""" diff --git a/src/test_cases/q4/4-two-ghosts-3level.solution b/src/test_cases/q4/4-two-ghosts-3level.solution new file mode 100644 index 0000000..6dbd664 --- /dev/null +++ b/src/test_cases/q4/4-two-ghosts-3level.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/4-two-ghosts-3level.test. +action: "Left" +generated: "a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8" diff --git a/src/test_cases/q4/4-two-ghosts-3level.test b/src/test_cases/q4/4-two-ghosts-3level.test new file mode 100644 index 0000000..d39bf1c --- /dev/null +++ b/src/test_cases/q4/4-two-ghosts-3level.test @@ -0,0 +1,52 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "3" + +diagram: """ + /-----a------\ + / \ + / \ + b1 b2 + / \ / \ + c1 c2 c3 c4 + / \ / \ / \ / \ + d1 d2 d3 d4 d5 d6 d7 d8 + 3 9 10 6 4 7 0 5 + +a - max +b - exp +c - exp +""" +num_agents: "3" + +start_state: "a" +win_states: "d1 d2 d3 d4 d5 d6 d7 d8" +lose_states: "" + +successors: """ +a Left b1 +a Right b2 +b1 Left c1 +b1 Right c2 +b2 Left c3 +b2 Right c4 +c1 Left d1 +c1 Right d2 +c2 Left d3 +c2 Right d4 +c3 Left d5 +c3 Right d6 +c4 Left d7 +c4 Right d8 +""" + +evaluation: """ +d1 3.0 +d2 9.0 +d3 10.0 +d4 6.0 +d5 4.0 +d6 7.0 +d7 0.0 +d8 5.0 +""" diff --git a/src/test_cases/q4/5-two-ghosts-4level.solution b/src/test_cases/q4/5-two-ghosts-4level.solution new file mode 100644 index 0000000..caccbea --- /dev/null +++ b/src/test_cases/q4/5-two-ghosts-4level.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/5-two-ghosts-4level.test. +action: "Left" +generated: "A B C D E F G H I J K L M N O P a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8" diff --git a/src/test_cases/q4/5-two-ghosts-4level.test b/src/test_cases/q4/5-two-ghosts-4level.test new file mode 100644 index 0000000..b2d2733 --- /dev/null +++ b/src/test_cases/q4/5-two-ghosts-4level.test @@ -0,0 +1,79 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "4" + +diagram: """ + /-----a------\ + / \ + / \ + b1 b2 + / \ / \ + c1 c2 c3 c4 + / \ / \ / \ / \ + d1 d2 d3 d4 d5 d6 d7 d8 +/ \ / \ / \ / \ / \ / \ / \ / \ +A B C D E F G H I J K L M N O P +3 13 5 9 10 11 6 8 1 0 4 7 12 15 2 14 + +a - max +b - exp +c - exp +d - max +""" +num_agents: "3" + +start_state: "a" +win_states: "A B C D E F G H I J K L M N O P" +lose_states: "" + +successors: """ +a Left b1 +a Right b2 +b1 Left c1 +b1 Right c2 +b2 Left c3 +b2 Right c4 +c1 Left d1 +c1 Right d2 +c2 Left d3 +c2 Right d4 +c3 Left d5 +c3 Right d6 +c4 Left d7 +c4 Right d8 +d1 Left A +d1 Right B +d2 Left C +d2 Right D +d3 Left E +d3 Right F +d4 Left G +d4 Right H +d5 Left I +d5 Right J +d6 Left K +d6 Right L +d7 Left M +d7 Right N +d8 Left O +d8 Right P +""" + +evaluation: """ +A 3.0 +B 13.0 +C 5.0 +D 9.0 +E 10.0 +F 11.0 +G 6.0 +H 8.0 +I 1.0 +J 0.0 +K 4.0 +L 7.0 +M 12.0 +N 15.0 +O 2.0 +P 14.0 +""" diff --git a/src/test_cases/q4/6-1a-check-depth-one-ghost.solution b/src/test_cases/q4/6-1a-check-depth-one-ghost.solution new file mode 100644 index 0000000..22aebdc --- /dev/null +++ b/src/test_cases/q4/6-1a-check-depth-one-ghost.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/6-1a-check-depth-one-ghost.test. +action: "Left" +generated: "a b1 b2 b3 c1 c2 c3" diff --git a/src/test_cases/q4/6-1a-check-depth-one-ghost.test b/src/test_cases/q4/6-1a-check-depth-one-ghost.test new file mode 100644 index 0000000..4d36ea5 --- /dev/null +++ b/src/test_cases/q4/6-1a-check-depth-one-ghost.test @@ -0,0 +1,83 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "1" + +diagram: """ + a + /-/ | \--\ + / | \ + 0 b1 0 b2 b3 8 + | | | + 10 c1 0 c2 c3 8 + | | | + 0 d1 0 d2 d3 8 + | | | + 0 e1 10 e2 e3 8 + | | | + 0 f1 0 f2 f3 8 + | | | + g1 g2 g3 + 0 0 8 + +a - max +b - min +c - max +d - min +e - max +f - min + +At depth 1, the evaluation function is called at level c, +so Left should be returned. If your algorithm is returning a +different action, check how you implemented your depth. +""" + +num_agents: "2" + +start_state: "a" +win_states: "g1 g2 g3" +lose_states: "" + +successors: """ +a Left b1 +a Center b2 +a Right b3 +b1 Center c1 +b2 Center c2 +b3 Center c3 +c1 Center d1 +c2 Center d2 +c3 Center d3 +d1 Center e1 +d2 Center e2 +d3 Center e3 +e1 Center f1 +e2 Center f2 +e3 Center f3 +f1 Center g1 +f2 Center g2 +f3 Center g3 +""" + + +evaluation: """ +b1 0.0 +b2 0.0 +b3 8.0 +c1 10.0 +c2 0.0 +c3 8.0 +d1 0.0 +d2 0.0 +d3 8.0 +e1 0.0 +e2 10.0 +e3 8.0 +f1 0.0 +f2 0.0 +f3 8.0 +g1 0.0 +g2 0.0 +g3 8.0 +""" + + diff --git a/src/test_cases/q4/6-1b-check-depth-one-ghost.solution b/src/test_cases/q4/6-1b-check-depth-one-ghost.solution new file mode 100644 index 0000000..e34e3d3 --- /dev/null +++ b/src/test_cases/q4/6-1b-check-depth-one-ghost.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/6-1b-check-depth-one-ghost.test. +action: "Center" +generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3" diff --git a/src/test_cases/q4/6-1b-check-depth-one-ghost.test b/src/test_cases/q4/6-1b-check-depth-one-ghost.test new file mode 100644 index 0000000..a63d167 --- /dev/null +++ b/src/test_cases/q4/6-1b-check-depth-one-ghost.test @@ -0,0 +1,83 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "2" + +diagram: """ + a + /-/ | \--\ + / | \ + 0 b1 0 b2 b3 8 + | | | + 10 c1 0 c2 c3 8 + | | | + 0 d1 0 d2 d3 8 + | | | + 0 e1 10 e2 e3 8 + | | | + 0 f1 0 f2 f3 8 + | | | + g1 g2 g3 + 0 0 8 + +a - max +b - min +c - max +d - min +e - max +f - min + +At depth 2, the evaluation function is called at level e, +so Center should be returned. If your algorithm is returning a +different action, check how you implemented your depth. +""" + +num_agents: "2" + +start_state: "a" +win_states: "g1 g2 g3" +lose_states: "" + +successors: """ +a Left b1 +a Center b2 +a Right b3 +b1 Center c1 +b2 Center c2 +b3 Center c3 +c1 Center d1 +c2 Center d2 +c3 Center d3 +d1 Center e1 +d2 Center e2 +d3 Center e3 +e1 Center f1 +e2 Center f2 +e3 Center f3 +f1 Center g1 +f2 Center g2 +f3 Center g3 +""" + + +evaluation: """ +b1 0.0 +b2 0.0 +b3 8.0 +c1 10.0 +c2 0.0 +c3 8.0 +d1 0.0 +d2 0.0 +d3 8.0 +e1 0.0 +e2 10.0 +e3 8.0 +f1 0.0 +f2 0.0 +f3 8.0 +g1 0.0 +g2 0.0 +g3 8.0 +""" + + diff --git a/src/test_cases/q4/6-1c-check-depth-one-ghost.solution b/src/test_cases/q4/6-1c-check-depth-one-ghost.solution new file mode 100644 index 0000000..cd33b5a --- /dev/null +++ b/src/test_cases/q4/6-1c-check-depth-one-ghost.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/6-1c-check-depth-one-ghost.test. +action: "Right" +generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3" diff --git a/src/test_cases/q4/6-1c-check-depth-one-ghost.test b/src/test_cases/q4/6-1c-check-depth-one-ghost.test new file mode 100644 index 0000000..84e78f0 --- /dev/null +++ b/src/test_cases/q4/6-1c-check-depth-one-ghost.test @@ -0,0 +1,83 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "3" + +diagram: """ + a + /-/ | \--\ + / | \ + 0 b1 0 b2 b3 8 + | | | + 10 c1 0 c2 c3 8 + | | | + 0 d1 0 d2 d3 8 + | | | + 0 e1 10 e2 e3 8 + | | | + 0 f1 0 f2 f3 8 + | | | + g1 g2 g3 + 0 0 8 + +a - max +b - min +c - max +d - min +e - max +f - min + +At depth 3, the evaluation function is called at level g, +so Right should be returned. If your algorithm is returning a +different action, check how you implemented your depth. +""" + +num_agents: "2" + +start_state: "a" +win_states: "g1 g2 g3" +lose_states: "" + +successors: """ +a Left b1 +a Center b2 +a Right b3 +b1 Center c1 +b2 Center c2 +b3 Center c3 +c1 Center d1 +c2 Center d2 +c3 Center d3 +d1 Center e1 +d2 Center e2 +d3 Center e3 +e1 Center f1 +e2 Center f2 +e3 Center f3 +f1 Center g1 +f2 Center g2 +f3 Center g3 +""" + + +evaluation: """ +b1 0.0 +b2 0.0 +b3 8.0 +c1 10.0 +c2 0.0 +c3 8.0 +d1 0.0 +d2 0.0 +d3 8.0 +e1 0.0 +e2 10.0 +e3 8.0 +f1 0.0 +f2 0.0 +f3 8.0 +g1 0.0 +g2 0.0 +g3 8.0 +""" + + diff --git a/src/test_cases/q4/6-2a-check-depth-two-ghosts.solution b/src/test_cases/q4/6-2a-check-depth-two-ghosts.solution new file mode 100644 index 0000000..0e9c9e9 --- /dev/null +++ b/src/test_cases/q4/6-2a-check-depth-two-ghosts.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/6-2a-check-depth-two-ghosts.test. +action: "Left" +generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3" diff --git a/src/test_cases/q4/6-2a-check-depth-two-ghosts.test b/src/test_cases/q4/6-2a-check-depth-two-ghosts.test new file mode 100644 index 0000000..36ecd4e --- /dev/null +++ b/src/test_cases/q4/6-2a-check-depth-two-ghosts.test @@ -0,0 +1,110 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "1" + +diagram: """ + a + /-/ | \--\ + / | \ + 0 b1 0 b2 b3 8 + | | | + 0 c1 0 c2 c3 8 + | | | + 10 d1 0 d2 d3 8 + | | | + 0 e1 0 e2 e3 8 + | | | + 0 f1 0 f2 f3 8 + | | | + 0 g1 10 g2 g3 8 + | | | + 0 h1 0 h2 h3 8 + | | | + 0 i1 0 i2 i3 8 + | | | + j1 j2 j3 + 0 0 8 + +a - max +b - min +c - min +d - max +e - min +f - min +g - max +h - min +i - min + +At depth 1, the evaluation function is called at level d, +so Left should be returned. If your algorithm is returning a +different action, check how you implemented your depth. +""" + +num_agents: "3" + +start_state: "a" +win_states: "j1 j2 j3" +lose_states: "" + +successors: """ +a Left b1 +a Center b2 +a Right b3 +b1 Center c1 +b2 Center c2 +b3 Center c3 +c1 Center d1 +c2 Center d2 +c3 Center d3 +d1 Center e1 +d2 Center e2 +d3 Center e3 +e1 Center f1 +e2 Center f2 +e3 Center f3 +f1 Center g1 +f2 Center g2 +f3 Center g3 +g1 Center h1 +g2 Center h2 +g3 Center h3 +h1 Center i1 +h2 Center i2 +h3 Center i3 +i1 Center j1 +i2 Center j2 +i3 Center j3 +""" + + +evaluation: """ +b1 0.0 +b2 0.0 +b3 8.0 +c1 0.0 +c2 0.0 +c3 8.0 +d1 10.0 +d2 0.0 +d3 8.0 +e1 0.0 +e2 0.0 +e3 8.0 +f1 0.0 +f2 0.0 +f3 8.0 +g1 0.0 +g2 10.0 +g3 8.0 +h1 0.0 +h2 0.0 +h3 8.0 +i1 0.0 +i2 0.0 +i3 8.0 +j1 0.0 +j2 0.0 +j3 8.0 +""" + + diff --git a/src/test_cases/q4/6-2b-check-depth-two-ghosts.solution b/src/test_cases/q4/6-2b-check-depth-two-ghosts.solution new file mode 100644 index 0000000..3fcde21 --- /dev/null +++ b/src/test_cases/q4/6-2b-check-depth-two-ghosts.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/6-2b-check-depth-two-ghosts.test. +action: "Center" +generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3" diff --git a/src/test_cases/q4/6-2b-check-depth-two-ghosts.test b/src/test_cases/q4/6-2b-check-depth-two-ghosts.test new file mode 100644 index 0000000..d1b85b7 --- /dev/null +++ b/src/test_cases/q4/6-2b-check-depth-two-ghosts.test @@ -0,0 +1,110 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "2" + +diagram: """ + a + /-/ | \--\ + / | \ + 0 b1 0 b2 b3 8 + | | | + 0 c1 0 c2 c3 8 + | | | + 10 d1 0 d2 d3 8 + | | | + 0 e1 0 e2 e3 8 + | | | + 0 f1 0 f2 f3 8 + | | | + 0 g1 10 g2 g3 8 + | | | + 0 h1 0 h2 h3 8 + | | | + 0 i1 0 i2 i3 8 + | | | + j1 j2 j3 + 0 0 8 + +a - max +b - min +c - min +d - max +e - min +f - min +g - max +h - min +i - min + +At depth 2, the evaluation function is called at level g, +so Center should be returned. If your algorithm is returning +a different action, check how you implemented your depth. +""" + +num_agents: "3" + +start_state: "a" +win_states: "j1 j2 j3" +lose_states: "" + +successors: """ +a Left b1 +a Center b2 +a Right b3 +b1 Center c1 +b2 Center c2 +b3 Center c3 +c1 Center d1 +c2 Center d2 +c3 Center d3 +d1 Center e1 +d2 Center e2 +d3 Center e3 +e1 Center f1 +e2 Center f2 +e3 Center f3 +f1 Center g1 +f2 Center g2 +f3 Center g3 +g1 Center h1 +g2 Center h2 +g3 Center h3 +h1 Center i1 +h2 Center i2 +h3 Center i3 +i1 Center j1 +i2 Center j2 +i3 Center j3 +""" + + +evaluation: """ +b1 0.0 +b2 0.0 +b3 8.0 +c1 0.0 +c2 0.0 +c3 8.0 +d1 10.0 +d2 0.0 +d3 8.0 +e1 0.0 +e2 0.0 +e3 8.0 +f1 0.0 +f2 0.0 +f3 8.0 +g1 0.0 +g2 10.0 +g3 8.0 +h1 0.0 +h2 0.0 +h3 8.0 +i1 0.0 +i2 0.0 +i3 8.0 +j1 0.0 +j2 0.0 +j3 8.0 +""" + + diff --git a/src/test_cases/q4/6-2c-check-depth-two-ghosts.solution b/src/test_cases/q4/6-2c-check-depth-two-ghosts.solution new file mode 100644 index 0000000..bad1cf9 --- /dev/null +++ b/src/test_cases/q4/6-2c-check-depth-two-ghosts.solution @@ -0,0 +1,3 @@ +# This is the solution file for test_cases/q4/6-2c-check-depth-two-ghosts.test. +action: "Right" +generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3 h1 h2 h3 i1 i2 i3 j1 j2 j3" diff --git a/src/test_cases/q4/6-2c-check-depth-two-ghosts.test b/src/test_cases/q4/6-2c-check-depth-two-ghosts.test new file mode 100644 index 0000000..6c4c9ea --- /dev/null +++ b/src/test_cases/q4/6-2c-check-depth-two-ghosts.test @@ -0,0 +1,110 @@ +class: "GraphGameTreeTest" +alg: "ExpectimaxAgent" +depth: "3" + +diagram: """ + a + /-/ | \--\ + / | \ + 0 b1 0 b2 b3 8 + | | | + 0 c1 0 c2 c3 8 + | | | + 10 d1 0 d2 d3 8 + | | | + 0 e1 0 e2 e3 8 + | | | + 0 f1 0 f2 f3 8 + | | | + 0 g1 10 g2 g3 8 + | | | + 0 h1 0 h2 h3 8 + | | | + 0 i1 0 i2 i3 8 + | | | + j1 j2 j3 + 0 0 8 + +a - max +b - min +c - min +d - max +e - min +f - min +g - max +h - min +i - min + +At depth 3, the evaluation function is called at level j, +so Right should be returned. If your algorithm is returning +a different action, check how you implemented your depth. +""" + +num_agents: "3" + +start_state: "a" +win_states: "j1 j2 j3" +lose_states: "" + +successors: """ +a Left b1 +a Center b2 +a Right b3 +b1 Center c1 +b2 Center c2 +b3 Center c3 +c1 Center d1 +c2 Center d2 +c3 Center d3 +d1 Center e1 +d2 Center e2 +d3 Center e3 +e1 Center f1 +e2 Center f2 +e3 Center f3 +f1 Center g1 +f2 Center g2 +f3 Center g3 +g1 Center h1 +g2 Center h2 +g3 Center h3 +h1 Center i1 +h2 Center i2 +h3 Center i3 +i1 Center j1 +i2 Center j2 +i3 Center j3 +""" + + +evaluation: """ +b1 0.0 +b2 0.0 +b3 8.0 +c1 0.0 +c2 0.0 +c3 8.0 +d1 10.0 +d2 0.0 +d3 8.0 +e1 0.0 +e2 0.0 +e3 8.0 +f1 0.0 +f2 0.0 +f3 8.0 +g1 0.0 +g2 10.0 +g3 8.0 +h1 0.0 +h2 0.0 +h3 8.0 +i1 0.0 +i2 0.0 +i3 8.0 +j1 0.0 +j2 0.0 +j3 8.0 +""" + + diff --git a/src/test_cases/q4/7-pacman-game.solution b/src/test_cases/q4/7-pacman-game.solution new file mode 100644 index 0000000..ecc544b --- /dev/null +++ b/src/test_cases/q4/7-pacman-game.solution @@ -0,0 +1,444 @@ +optimalActions: """ +[[["West", "East"], 59], [["West", "East"], 35]] +[[["West"], 190], [["West"], 127]] +[[["West"], 190], [["West"], 135]] +[[["West", "North"], 120], [["West", "North"], 82]] +[[["West"], 77], [["West"], 57]] +[[["West", "North"], 143], [["West", "North"], 97]] +[[["West"], 155], [["West"], 110]] +[[["West"], 40], [["West"], 27]] +[[["North"], 64], [["North"], 43]] +[[["North"], 85], [["North"], 57]] +[[["North"], 106], [["North"], 71]] +[[["North"], 97], [["North"], 65]] +[[["East"], 154], [["East"], 103]] +[[["Stop"], 130], [["West"], 85]] +[[["West"], 30], [["West"], 17]] +[[["South"], 15], [["South"], 9]] +[[["South"], 15], [["South"], 9]] +[[["South"], 15], [["South"], 9]] +[[["South"], 15], [["South"], 9]] +[[["East"], 15], [["East"], 9]] +[[["East"], 15], [["East"], 9]] +[[["East"], 18], [["East"], 12]] +[[["North"], 29], [["North"], 18]] +[[["North"], 50], [["North"], 31]] +[[["West"], 55], [["West"], 36]] +[[["East"], 29], [["East"], 16]] +[[["North"], 89], [["North"], 61]] +[[["East", "North"], 161], [["East", "North"], 121]] +[[["East", "North"], 221], [["East", "North"], 166]] +[[["North", "South"], 105], [["North", "South"], 77]] +[[["West"], 69], [["West"], 51]] +[[["West"], 94], [["West"], 69]] +[[["West", "Stop"], 57], [["West"], 42]] +[[["West", "Stop", "East"], 69], [["West", "East"], 49]] +[[["West", "Stop", "East"], 61], [["West", "East"], 41]] +[[["Stop", "East", "South"], 55], [["East", "South"], 37]] +[[["Stop", "East", "South"], 28], [["East", "South"], 19]] +[[["Stop", "East", "South"], 34], [["East", "South"], 23]] +[[["Stop", "East", "South"], 55], [["East", "South"], 37]] +[[["Stop", "East", "South"], 55], [["East", "South"], 37]] +[[["Stop", "East", "South"], 61], [["East", "South"], 41]] +[[["Stop", "East", "South"], 85], [["East", "South"], 57]] +[[["Stop", "East", "South"], 64], [["East", "South"], 43]] +[[["Stop", "East", "South"], 61], [["East", "South"], 41]] +[[["Stop", "East", "South"], 61], [["East", "South"], 41]] +[[["Stop", "East", "South"], 85], [["East", "South"], 57]] +[[["Stop", "East", "South"], 102], [["East", "South"], 67]] +[[["Stop", "South"], 23], [["South"], 13]] +[[["South"], 15], [["South"], 9]] +[[["South"], 15], [["South"], 9]] +[[["South"], 15], [["South"], 9]] +[[["South"], 15], [["South"], 9]] +[[["East"], 15], [["East"], 9]] +[[["East"], 15], [["East"], 9]] +[[["East"], 18], [["East"], 12]] +[[["East", "North"], 29], [["East", "North"], 18]] +[[["East"], 38], [["East"], 22]] +[[["North"], 29], [["North"], 18]] +[[["North"], 38], [["North"], 22]] +[[["East"], 33], [["East"], 22]] +[[["East"], 37], [["East"], 18]] +[[["East"], 18], [["East"], 12]] +[[["East"], 37], [["East"], 26]] +[[["East"], 69], [["East"], 41]] +[[["East"], 56], [["East"], 26]] +[[["East"], 44], [["East"], 29]] +[[["North", "South"], 83], [["North", "South"], 52]] +[[["East", "North"], 121], [["East", "North"], 74]] +[[["East", "North"], 97], [["East", "North"], 73]] +[[["North", "South"], 173], [["North", "South"], 130]] +[[["West", "East"], 90], [["West", "East"], 66]] +[[["West", "Stop", "East"], 161], [["West", "East"], 118]] +[[["Stop", "East", "South"], 58], [["East", "South"], 43]] +[[["Stop", "East"], 120], [["East"], 85]] +[[["East"], 78], [["East"], 45]] +[[["West"], 77], [["West"], 42]] +[[["South"], 83], [["South"], 48]] +[[["South"], 49], [["South"], 37]] +[[["South"], 185], [["South"], 104]] +[[["South"], 68], [["South"], 41]] +[[["West"], 30], [["West"], 18]] +[[["West"], 56], [["West"], 29]] +[[["West"], 14], [["West"], 10]] +[[["West"], 20], [["West"], 14]] +[[["West"], 13], [["West"], 9]] +[[["West"], 13], [["West"], 9]] +[[["West"], 16], [["West"], 12]] +[[["West", "North"], 30], [["West", "North"], 20]] +[[["West"], 38], [["West"], 23]] +[[["West", "Stop", "East", "North"], 70], [["West", "East", "North"], 46]] +[[["West", "Stop", "East"], 128], [["West", "East"], 89]] +[[["West", "Stop", "East"], 31], [["West", "East"], 20]] +[[["Stop", "East", "North"], 69], [["East", "North"], 45]] +[[["Stop", "North"], 58], [["North"], 31]] +[[["North"], 34], [["North"], 19]] +[[["North"], 30], [["North"], 17]] +[[["North"], 19], [["North"], 11]] +[[["North"], 34], [["North"], 19]] +[[["East"], 30], [["East"], 17]] +[[["East"], 19], [["East"], 11]] +[[["East"], 44], [["East"], 29]] +[[["East", "South"], 87], [["East", "South"], 60]] +[[["East", "South"], 108], [["East", "South"], 62]] +[[["South"], 120], [["South"], 61]] +[[["North", "South"], 209], [["North", "South"], 132]] +[[["West"], 108], [["West"], 60]] +[[["West", "Stop", "East", "South"], 83], [["West", "East", "South"], 61]] +[[["West", "Stop", "East", "South"], 90], [["West", "East", "South"], 66]] +[[["West", "Stop", "East"], 134], [["West", "East"], 95]] +[[["West", "Stop", "East"], 82], [["West", "East"], 55]] +[[["Stop", "East", "South"], 142], [["East", "South"], 95]] +[[["Stop", "East", "South"], 98], [["East", "South"], 65]] +[[["Stop", "East", "South"], 128], [["East", "South"], 86]] +[[["Stop", "East", "South"], 82], [["East", "South"], 55]] +[[["Stop", "East", "South"], 85], [["East", "South"], 57]] +[[["Stop", "East", "South"], 190], [["East", "South"], 127]] +[[["Stop", "East", "South"], 158], [["East", "South"], 103]] +[[["Stop", "South"], 50], [["South"], 27]] +[[["South"], 30], [["South"], 17]] +[[["South"], 15], [["South"], 9]] +[[["South"], 15], [["South"], 9]] +[[["South"], 15], [["South"], 9]] +[[["East"], 15], [["East"], 9]] +[[["East"], 15], [["East"], 9]] +[[["East"], 18], [["East"], 12]] +[[["East", "North"], 29], [["East", "North"], 18]] +[[["East"], 37], [["East"], 22]] +[[["East", "North"], 41], [["East", "North"], 24]] +[[["East"], 59], [["East"], 29]] +[[["East"], 19], [["East"], 11]] +[[["East"], 26], [["East"], 15]] +[[["East"], 15], [["East"], 9]] +[[["East"], 15], [["East"], 9]] +[[["East"], 18], [["East"], 12]] +[[["East"], 29], [["East"], 18]] +[[["East"], 37], [["East"], 22]] +[[["East", "North"], 41], [["East", "North"], 24]] +[[["East"], 59], [["East"], 29]] +[[["East"], 19], [["East"], 11]] +[[["North"], 26], [["North"], 15]] +[[["North"], 19], [["North"], 11]] +[[["North"], 30], [["North"], 17]] +[[["North"], 34], [["North"], 19]] +[[["West"], 34], [["West"], 19]] +[[["West"], 25], [["West"], 13]] +[[["West", "Stop", "East"], 7], [["West", "East"], 3]] +""" +altDepthActions: """ +[["West", "East"], ["West", "East"], ["West", "East"], ["West", "East"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["West", "North"], ["West", "North"], ["West", "North"], ["West", "North"]] +[["West"], ["West"], ["West"], ["West"]] +[["West", "North"], ["West", "North"], ["West", "North"], ["West", "North"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["East"], ["East"], ["East"], ["East"]] +[["West", "Stop"], ["West"], ["Stop"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["West"], ["West"]] +[["East"], ["East"], ["East"], ["East"]] +[["North"], ["North"], ["North"], ["North"]] +[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]] +[["East", "North"], ["East", "North"], ["East"], ["East"]] +[["North", "South"], ["North", "South"], ["North"], ["North"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West", "Stop"], ["West"]] +[["West"], ["West"], ["West", "Stop", "East", "South"], ["West", "East", "South"]] +[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]] +[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "South"], ["South"], ["Stop", "South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East", "North"], ["East", "North"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["North", "South"], ["North", "South"], ["South"], ["South"]] +[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]] +[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]] +[["North", "South"], ["North", "South"], ["North"], ["North"]] +[["West", "East"], ["West", "East"], ["East"], ["East"]] +[["West"], ["West"], ["East"], ["East"]] +[["Stop", "East", "South"], ["East", "South"], ["East"], ["East"]] +[["Stop", "East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["West"], ["West"], ["West"], ["West"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["West", "East"], ["West", "East"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["West", "North"], ["West", "North"], ["West", "North"], ["West", "North"]] +[["West"], ["West"], ["West"], ["West"]] +[["West", "Stop", "East", "North"], ["West", "East", "North"], ["West", "Stop", "East", "North"], ["West", "East", "North"]] +[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]] +[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]] +[["Stop", "East", "North"], ["East", "North"], ["Stop", "East", "North"], ["East", "North"]] +[["Stop", "North"], ["North"], ["Stop", "North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East", "South"], ["East", "South"], ["East", "South"], ["East", "South"]] +[["East", "South"], ["East", "South"], ["East", "South"], ["East", "South"]] +[["South"], ["South"], ["South"], ["South"]] +[["North", "South"], ["North", "South"], ["North", "South"], ["North", "South"]] +[["West"], ["West"], ["West"], ["West"]] +[["West", "Stop", "East", "South"], ["West", "East", "South"], ["West", "Stop", "East", "South"], ["West", "East", "South"]] +[["West", "Stop", "East", "South"], ["West", "East", "South"], ["West", "Stop", "East", "South"], ["West", "East", "South"]] +[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]] +[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]] +[["Stop", "South"], ["South"], ["Stop", "South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["South"], ["South"], ["South"], ["South"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]] +[["East"], ["East"], ["East"], ["East"]] +[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East", "North"], ["East", "North"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["East"], ["East"], ["East"], ["East"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["North"], ["North"], ["North"], ["North"]] +[["West"], ["West"], ["West"], ["West"]] +[["West"], ["West"], ["West"], ["West"]] +[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]] +""" +partialPlyBugActions: """ +[["West", "East"], ["West", "East"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West", "North"], ["West", "North"]] +[["West"], ["West"]] +[["West", "North"], ["West", "North"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["East"], ["East"]] +[["Stop"], ["West"]] +[["West"], ["West"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["West"], ["West"]] +[["East"], ["East"]] +[["North"], ["North"]] +[["East", "North"], ["East", "North"]] +[["East", "North"], ["East", "North"]] +[["North", "South"], ["North", "South"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West", "Stop"], ["West"]] +[["West", "Stop", "East"], ["West", "East"]] +[["West", "Stop", "East"], ["West", "East"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East", "North"], ["East", "North"]] +[["East"], ["East"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["North", "South"], ["North", "South"]] +[["East", "North"], ["East", "North"]] +[["East", "North"], ["East", "North"]] +[["North", "South"], ["North", "South"]] +[["West", "East"], ["West", "East"]] +[["West", "Stop", "East"], ["West", "East"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East"], ["East"]] +[["East"], ["East"]] +[["West"], ["West"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West", "North"], ["West", "North"]] +[["West"], ["West"]] +[["West", "Stop", "East", "North"], ["West", "East", "North"]] +[["West", "Stop", "East"], ["West", "East"]] +[["West", "Stop", "East"], ["West", "East"]] +[["Stop", "East", "North"], ["East", "North"]] +[["Stop", "North"], ["North"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East", "South"], ["East", "South"]] +[["East", "South"], ["East", "South"]] +[["South"], ["South"]] +[["North", "South"], ["North", "South"]] +[["West"], ["West"]] +[["West", "Stop", "East", "South"], ["West", "East", "South"]] +[["West", "Stop", "East", "South"], ["West", "East", "South"]] +[["West", "Stop", "East"], ["West", "East"]] +[["West", "Stop", "East"], ["West", "East"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "East", "South"], ["East", "South"]] +[["Stop", "South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["South"], ["South"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East", "North"], ["East", "North"]] +[["East"], ["East"]] +[["East", "North"], ["East", "North"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["East", "North"], ["East", "North"]] +[["East"], ["East"]] +[["East"], ["East"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["North"], ["North"]] +[["West"], ["West"]] +[["West"], ["West"]] +[["West", "Stop", "East"], ["West", "East"]] +""" diff --git a/src/test_cases/q4/7-pacman-game.test b/src/test_cases/q4/7-pacman-game.test new file mode 100644 index 0000000..435cf2f --- /dev/null +++ b/src/test_cases/q4/7-pacman-game.test @@ -0,0 +1,19 @@ +class: "PacmanGameTreeTest" +alg: "ExpectimaxAgent" +seed: "0" +depth: "2" +max_points: "4" + +# The following specifies the layout to be used +layoutName: "smallClassic" +layout: """ +%%%%%%%%%%%%%%%%%%%% +%......%G G%......% +%.%%...%% %%...%%.% +%.%o.%........%.o%.% +%.%%.%.%%%%%%.%.%%.% +%........P.........% +%%%%%%%%%%%%%%%%%%%% +""" + + diff --git a/src/test_cases/q4/CONFIG b/src/test_cases/q4/CONFIG new file mode 100644 index 0000000..a5adc3f --- /dev/null +++ b/src/test_cases/q4/CONFIG @@ -0,0 +1,2 @@ +max_points: "5" +class: "PassAllTestsQuestion" |