From bbdac08ea25982065f41f4cd3467ee0e808c52a9 Mon Sep 17 00:00:00 2001 From: Xuan Trinh <xuan.trinh@student.unimelb.edu.au> Date: Sat, 20 Mar 2021 15:48:20 +1100 Subject: [PATCH] Add the test case. function to calculate distance, some basic movement logic + read file into dict --- Test_case/level_1/1.json | 17 +++++ Test_case/level_1/2.json | 17 +++++ Test_case/level_1/3.json | 17 +++++ Test_case/level_1/4.json | 17 +++++ Test_case/level_1/5.json | 17 +++++ Test_case/level_1/6.json | 17 +++++ Test_case/level_2/1.json | 22 ++++++ Test_case/level_2/10.json | 22 ++++++ Test_case/level_2/11.json | 27 +++++++ Test_case/level_2/12.json | 32 +++++++++ Test_case/level_2/13.json | 148 ++++++++++++++++++++++++++++++++++++++ Test_case/level_2/2.json | 27 +++++++ Test_case/level_2/3.json | 57 +++++++++++++++ Test_case/level_2/4.json | 57 +++++++++++++++ Test_case/level_2/5.json | 68 ++++++++++++++++++ Test_case/level_2/6.json | 78 ++++++++++++++++++++ Test_case/level_2/7.json | 63 ++++++++++++++++ Test_case/level_2/8.json | 58 +++++++++++++++ Test_case/level_2/9.json | 63 ++++++++++++++++ Test_case/level_3/1.json | 27 +++++++ Test_case/level_3/10.json | 63 ++++++++++++++++ Test_case/level_3/11.json | 68 ++++++++++++++++++ Test_case/level_3/2.json | 32 +++++++++ Test_case/level_3/3.json | 22 ++++++ Test_case/level_3/4.json | 32 +++++++++ Test_case/level_3/5.json | 32 +++++++++ Test_case/level_3/6.json | 32 +++++++++ Test_case/level_3/7.json | 33 +++++++++ Test_case/level_3/8.json | 48 +++++++++++++ Test_case/level_3/9.json | 58 +++++++++++++++ Test_case/level_4/1.json | 27 +++++++ Test_case/level_4/2.json | 33 +++++++++ Test_case/level_4/3.json | 37 ++++++++++ Test_case/level_4/4.json | 37 ++++++++++ Test_case/level_4/5.json | 68 ++++++++++++++++++ search/method.py | 92 ++++++++++++++++++++++++ 36 files changed, 1565 insertions(+) create mode 100644 Test_case/level_1/1.json create mode 100644 Test_case/level_1/2.json create mode 100644 Test_case/level_1/3.json create mode 100644 Test_case/level_1/4.json create mode 100644 Test_case/level_1/5.json create mode 100644 Test_case/level_1/6.json create mode 100644 Test_case/level_2/1.json create mode 100644 Test_case/level_2/10.json create mode 100644 Test_case/level_2/11.json create mode 100644 Test_case/level_2/12.json create mode 100644 Test_case/level_2/13.json create mode 100644 Test_case/level_2/2.json create mode 100644 Test_case/level_2/3.json create mode 100644 Test_case/level_2/4.json create mode 100644 Test_case/level_2/5.json create mode 100644 Test_case/level_2/6.json create mode 100644 Test_case/level_2/7.json create mode 100644 Test_case/level_2/8.json create mode 100644 Test_case/level_2/9.json create mode 100644 Test_case/level_3/1.json create mode 100644 Test_case/level_3/10.json create mode 100644 Test_case/level_3/11.json create mode 100644 Test_case/level_3/2.json create mode 100644 Test_case/level_3/3.json create mode 100644 Test_case/level_3/4.json create mode 100644 Test_case/level_3/5.json create mode 100644 Test_case/level_3/6.json create mode 100644 Test_case/level_3/7.json create mode 100644 Test_case/level_3/8.json create mode 100644 Test_case/level_3/9.json create mode 100644 Test_case/level_4/1.json create mode 100644 Test_case/level_4/2.json create mode 100644 Test_case/level_4/3.json create mode 100644 Test_case/level_4/4.json create mode 100644 Test_case/level_4/5.json create mode 100644 search/method.py diff --git a/Test_case/level_1/1.json b/Test_case/level_1/1.json new file mode 100644 index 0000000..c5e2781 --- /dev/null +++ b/Test_case/level_1/1.json @@ -0,0 +1,17 @@ +{ + "upper": [ + [ + "r", + 4, + -4 + ] + ], + "lower": [ + [ + "s", + -4, + 4 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_1/2.json b/Test_case/level_1/2.json new file mode 100644 index 0000000..a6cffab --- /dev/null +++ b/Test_case/level_1/2.json @@ -0,0 +1,17 @@ +{ + "upper": [ + [ + "p", + 4, + -3 + ] + ], + "lower": [ + [ + "r", + -4, + 4 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_1/3.json b/Test_case/level_1/3.json new file mode 100644 index 0000000..ee99f90 --- /dev/null +++ b/Test_case/level_1/3.json @@ -0,0 +1,17 @@ +{ + "upper": [ + [ + "s", + 4, + -3 + ] + ], + "lower": [ + [ + "p", + -4, + 4 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_1/4.json b/Test_case/level_1/4.json new file mode 100644 index 0000000..e9110b1 --- /dev/null +++ b/Test_case/level_1/4.json @@ -0,0 +1,17 @@ +{ + "upper": [ + [ + "p", + -4, + 4 + ] + ], + "lower": [ + [ + "r", + 4, + -3 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_1/5.json b/Test_case/level_1/5.json new file mode 100644 index 0000000..33fe4a0 --- /dev/null +++ b/Test_case/level_1/5.json @@ -0,0 +1,17 @@ +{ + "upper": [ + [ + "s", + -4, + 4 + ] + ], + "lower": [ + [ + "p", + 4, + -3 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_1/6.json b/Test_case/level_1/6.json new file mode 100644 index 0000000..5178988 --- /dev/null +++ b/Test_case/level_1/6.json @@ -0,0 +1,17 @@ +{ + "upper": [ + [ + "r", + -4, + 4 + ] + ], + "lower": [ + [ + "s", + 4, + -3 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_2/1.json b/Test_case/level_2/1.json new file mode 100644 index 0000000..a944e46 --- /dev/null +++ b/Test_case/level_2/1.json @@ -0,0 +1,22 @@ +{ + "upper": [ + [ + "r", + 4, + -4 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "s", + -4, + 1 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_2/10.json b/Test_case/level_2/10.json new file mode 100644 index 0000000..f604638 --- /dev/null +++ b/Test_case/level_2/10.json @@ -0,0 +1,22 @@ +{ + "upper": [ + [ + "p", + -1, + 1 + ] + ], + "lower": [ + [ + "s", + -4, + 4 + ], + [ + "r", + 4, + -4 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_2/11.json b/Test_case/level_2/11.json new file mode 100644 index 0000000..f30b6e1 --- /dev/null +++ b/Test_case/level_2/11.json @@ -0,0 +1,27 @@ +{ + "upper": [ + [ + "p", + -1, + 1 + ] + ], + "lower": [ + [ + "p", + -4, + 0 + ], + [ + "s", + -4, + 4 + ], + [ + "r", + 4, + -4 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_2/12.json b/Test_case/level_2/12.json new file mode 100644 index 0000000..e1723e3 --- /dev/null +++ b/Test_case/level_2/12.json @@ -0,0 +1,32 @@ +{ + "upper": [ + [ + "p", + -1, + 1 + ] + ], + "lower": [ + [ + "p", + -4, + 0 + ], + [ + "s", + -4, + 4 + ], + [ + "r", + 4, + -4 + ], + [ + "s", + 4, + -3 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_2/13.json b/Test_case/level_2/13.json new file mode 100644 index 0000000..db2db60 --- /dev/null +++ b/Test_case/level_2/13.json @@ -0,0 +1,148 @@ +{ + "upper": [ + [ + "s", + 0, + 0 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "s", + -4, + 4 + ], + [ + "s", + 0, + -4 + ], + [ + "s", + 0, + 4 + ], + [ + "s", + 4, + -4 + ], + [ + "s", + 4, + 0 + ] + ], + "block": [ + [ + "", + -4, + 1 + ], + [ + "", + -4, + 2 + ], + [ + "", + -4, + 3 + ], + [ + "", + -3, + -1 + ], + [ + "", + -3, + 4 + ], + [ + "", + -2, + -2 + ], + [ + "", + -2, + 4 + ], + [ + "", + -1, + -3 + ], + [ + "", + -1, + -2 + ], + [ + "", + -1, + -1 + ], + [ + "", + -1, + 4 + ], + [ + "", + 0, + -1 + ], + [ + "", + 1, + -4 + ], + [ + "", + 1, + 3 + ], + [ + "", + 2, + -4 + ], + [ + "", + 2, + 2 + ], + [ + "", + 3, + -4 + ], + [ + "", + 3, + 1 + ], + [ + "", + 4, + -3 + ], + [ + "", + 4, + -2 + ], + [ + "", + 4, + -1 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_2/2.json b/Test_case/level_2/2.json new file mode 100644 index 0000000..5e97769 --- /dev/null +++ b/Test_case/level_2/2.json @@ -0,0 +1,27 @@ +{ + "upper": [ + [ + "r", + 4, + -4 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "s", + -4, + 1 + ], + [ + "s", + -4, + 2 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_2/3.json b/Test_case/level_2/3.json new file mode 100644 index 0000000..7426e92 --- /dev/null +++ b/Test_case/level_2/3.json @@ -0,0 +1,57 @@ +{ + "upper": [ + [ + "r", + 4, + -4 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "s", + -4, + 1 + ], + [ + "s", + -4, + 2 + ], + [ + "s", + -4, + 3 + ], + [ + "s", + -4, + 4 + ], + [ + "s", + -1, + 2 + ], + [ + "s", + 0, + -2 + ], + [ + "s", + 1, + -4 + ], + [ + "s", + 2, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_2/4.json b/Test_case/level_2/4.json new file mode 100644 index 0000000..ef4ed18 --- /dev/null +++ b/Test_case/level_2/4.json @@ -0,0 +1,57 @@ +{ + "upper": [ + [ + "p", + 4, + -4 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "s", + -4, + 1 + ], + [ + "s", + -4, + 2 + ], + [ + "s", + -4, + 3 + ], + [ + "s", + -4, + 4 + ], + [ + "s", + -1, + 2 + ], + [ + "s", + 0, + -2 + ], + [ + "s", + 1, + -4 + ], + [ + "s", + 2, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_2/5.json b/Test_case/level_2/5.json new file mode 100644 index 0000000..eeb596f --- /dev/null +++ b/Test_case/level_2/5.json @@ -0,0 +1,68 @@ +{ + "upper": [ + [ + "r", + 4, + -4 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "s", + -4, + 1 + ], + [ + "s", + -4, + 2 + ], + [ + "s", + -4, + 3 + ], + [ + "s", + -4, + 4 + ], + [ + "s", + -1, + 2 + ], + [ + "s", + 1, + -4 + ], + [ + "s", + 2, + 0 + ] + ], + "block": [ + [ + "", + 0, + -2 + ], + [ + "", + 0, + -1 + ], + [ + "", + 0, + 0 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_2/6.json b/Test_case/level_2/6.json new file mode 100644 index 0000000..fb05a7d --- /dev/null +++ b/Test_case/level_2/6.json @@ -0,0 +1,78 @@ +{ + "upper": [ + [ + "r", + 4, + -4 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "s", + -4, + 2 + ], + [ + "s", + -4, + 3 + ], + [ + "s", + -4, + 4 + ], + [ + "s", + -1, + 2 + ], + [ + "s", + 1, + -4 + ], + [ + "s", + 2, + 0 + ] + ], + "block": [ + [ + "", + -4, + 1 + ], + [ + "", + -3, + -1 + ], + [ + "", + -3, + 0 + ], + [ + "", + 0, + -2 + ], + [ + "", + 0, + -1 + ], + [ + "", + 0, + 0 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_2/7.json b/Test_case/level_2/7.json new file mode 100644 index 0000000..14abc47 --- /dev/null +++ b/Test_case/level_2/7.json @@ -0,0 +1,63 @@ +{ + "upper": [ + [ + "r", + 4, + -4 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "s", + -4, + 4 + ], + [ + "s", + -1, + 2 + ], + [ + "s", + 2, + 0 + ] + ], + "block": [ + [ + "", + -4, + 2 + ], + [ + "", + -3, + -1 + ], + [ + "", + -3, + 0 + ], + [ + "", + 0, + -2 + ], + [ + "", + 0, + -1 + ], + [ + "", + 0, + 0 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_2/8.json b/Test_case/level_2/8.json new file mode 100644 index 0000000..32e5aed --- /dev/null +++ b/Test_case/level_2/8.json @@ -0,0 +1,58 @@ +{ + "upper": [ + [ + "p", + 4, + -4 + ] + ], + "lower": [ + [ + "r", + -4, + 4 + ], + [ + "r", + 2, + 0 + ] + ], + "block": [ + [ + "", + -4, + 2 + ], + [ + "", + -3, + -1 + ], + [ + "", + -3, + 0 + ], + [ + "", + -1, + 2 + ], + [ + "", + 0, + -2 + ], + [ + "", + 0, + -1 + ], + [ + "", + 0, + 0 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_2/9.json b/Test_case/level_2/9.json new file mode 100644 index 0000000..4415cea --- /dev/null +++ b/Test_case/level_2/9.json @@ -0,0 +1,63 @@ +{ + "upper": [ + [ + "p", + -1, + 1 + ] + ], + "lower": [ + [ + "r", + -4, + 4 + ], + [ + "r", + 4, + -4 + ] + ], + "block": [ + [ + "", + -4, + 2 + ], + [ + "", + -3, + -1 + ], + [ + "", + -3, + 0 + ], + [ + "", + -1, + 2 + ], + [ + "", + 0, + -2 + ], + [ + "", + 0, + -1 + ], + [ + "", + 0, + 0 + ], + [ + "", + 2, + 0 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_3/1.json b/Test_case/level_3/1.json new file mode 100644 index 0000000..c09dda2 --- /dev/null +++ b/Test_case/level_3/1.json @@ -0,0 +1,27 @@ +{ + "upper": [ + [ + "p", + -3, + 3 + ], + [ + "p", + -1, + 1 + ] + ], + "lower": [ + [ + "r", + -4, + 0 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_3/10.json b/Test_case/level_3/10.json new file mode 100644 index 0000000..273cde4 --- /dev/null +++ b/Test_case/level_3/10.json @@ -0,0 +1,63 @@ +{ + "upper": [ + [ + "p", + 2, + -3 + ], + [ + "s", + 2, + 1 + ] + ], + "lower": [ + [ + "r", + -2, + 4 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [ + [ + "", + -4, + 1 + ], + [ + "", + -3, + 1 + ], + [ + "", + -2, + 1 + ], + [ + "", + -1, + 1 + ], + [ + "", + 0, + 1 + ], + [ + "", + 1, + 1 + ], + [ + "", + 3, + 1 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_3/11.json b/Test_case/level_3/11.json new file mode 100644 index 0000000..4208779 --- /dev/null +++ b/Test_case/level_3/11.json @@ -0,0 +1,68 @@ +{ + "upper": [ + [ + "r", + -1, + 3 + ], + [ + "p", + 2, + -3 + ] + ], + "lower": [ + [ + "r", + -2, + 4 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [ + [ + "", + -4, + 1 + ], + [ + "", + -3, + 1 + ], + [ + "", + -2, + 1 + ], + [ + "", + -1, + 1 + ], + [ + "", + 0, + 1 + ], + [ + "", + 0, + 3 + ], + [ + "", + 1, + 1 + ], + [ + "", + 3, + 1 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_3/2.json b/Test_case/level_3/2.json new file mode 100644 index 0000000..8e24fb4 --- /dev/null +++ b/Test_case/level_3/2.json @@ -0,0 +1,32 @@ +{ + "upper": [ + [ + "p", + -3, + 3 + ], + [ + "p", + -1, + 1 + ] + ], + "lower": [ + [ + "r", + -4, + 0 + ], + [ + "r", + -4, + 4 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_3/3.json b/Test_case/level_3/3.json new file mode 100644 index 0000000..497dcd5 --- /dev/null +++ b/Test_case/level_3/3.json @@ -0,0 +1,22 @@ +{ + "upper": [ + [ + "p", + -3, + 3 + ], + [ + "p", + -1, + 1 + ] + ], + "lower": [ + [ + "r", + 4, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_3/4.json b/Test_case/level_3/4.json new file mode 100644 index 0000000..c8aa28f --- /dev/null +++ b/Test_case/level_3/4.json @@ -0,0 +1,32 @@ +{ + "upper": [ + [ + "p", + -3, + 3 + ], + [ + "p", + -1, + 1 + ] + ], + "lower": [ + [ + "r", + 2, + 2 + ], + [ + "r", + 3, + 1 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_3/5.json b/Test_case/level_3/5.json new file mode 100644 index 0000000..88ad985 --- /dev/null +++ b/Test_case/level_3/5.json @@ -0,0 +1,32 @@ +{ + "upper": [ + [ + "p", + -1, + 1 + ], + [ + "r", + 0, + 1 + ] + ], + "lower": [ + [ + "r", + 2, + 2 + ], + [ + "r", + 3, + 1 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_3/6.json b/Test_case/level_3/6.json new file mode 100644 index 0000000..26a7232 --- /dev/null +++ b/Test_case/level_3/6.json @@ -0,0 +1,32 @@ +{ + "upper": [ + [ + "p", + -1, + 1 + ], + [ + "s", + 2, + 1 + ] + ], + "lower": [ + [ + "r", + 2, + 2 + ], + [ + "r", + 3, + 1 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_3/7.json b/Test_case/level_3/7.json new file mode 100644 index 0000000..b3ff22f --- /dev/null +++ b/Test_case/level_3/7.json @@ -0,0 +1,33 @@ +{ + "upper": [ + [ + "p", + -1, + 1 + ], + [ + "s", + 2, + 1 + ] + ], + "lower": [ + [ + "r", + 2, + 2 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [ + [ + "", + 3, + 1 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_3/8.json b/Test_case/level_3/8.json new file mode 100644 index 0000000..0b5b5e0 --- /dev/null +++ b/Test_case/level_3/8.json @@ -0,0 +1,48 @@ +{ + "upper": [ + [ + "s", + 2, + 1 + ], + [ + "p", + 4, + -4 + ] + ], + "lower": [ + [ + "r", + -2, + 4 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [ + [ + "", + -1, + 1 + ], + [ + "", + 0, + 1 + ], + [ + "", + 1, + 1 + ], + [ + "", + 3, + 1 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_3/9.json b/Test_case/level_3/9.json new file mode 100644 index 0000000..905b587 --- /dev/null +++ b/Test_case/level_3/9.json @@ -0,0 +1,58 @@ +{ + "upper": [ + [ + "p", + 2, + -3 + ], + [ + "s", + 2, + 1 + ] + ], + "lower": [ + [ + "r", + -2, + 4 + ], + [ + "r", + 4, + 0 + ] + ], + "block": [ + [ + "", + -3, + 1 + ], + [ + "", + -2, + 1 + ], + [ + "", + -1, + 1 + ], + [ + "", + 0, + 1 + ], + [ + "", + 1, + 1 + ], + [ + "", + 3, + 1 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_4/1.json b/Test_case/level_4/1.json new file mode 100644 index 0000000..7863e69 --- /dev/null +++ b/Test_case/level_4/1.json @@ -0,0 +1,27 @@ +{ + "upper": [ + [ + "r", + 2, + -4 + ], + [ + "p", + 2, + -3 + ], + [ + "p", + 3, + -4 + ] + ], + "lower": [ + [ + "s", + 4, + 0 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_4/2.json b/Test_case/level_4/2.json new file mode 100644 index 0000000..6899b9b --- /dev/null +++ b/Test_case/level_4/2.json @@ -0,0 +1,33 @@ +{ + "upper": [ + [ + "r", + 2, + -4 + ], + [ + "s", + 2, + -3 + ], + [ + "p", + 3, + -4 + ] + ], + "lower": [ + [ + "s", + 4, + 0 + ] + ], + "block": [ + [ + "", + 3, + -3 + ] + ] +} \ No newline at end of file diff --git a/Test_case/level_4/3.json b/Test_case/level_4/3.json new file mode 100644 index 0000000..838eb34 --- /dev/null +++ b/Test_case/level_4/3.json @@ -0,0 +1,37 @@ +{ + "upper": [ + [ + "s", + 0, + -1 + ], + [ + "r", + 0, + 0 + ], + [ + "p", + 0, + 1 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "p", + -4, + 2 + ], + [ + "r", + -4, + 4 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_4/4.json b/Test_case/level_4/4.json new file mode 100644 index 0000000..862f4f8 --- /dev/null +++ b/Test_case/level_4/4.json @@ -0,0 +1,37 @@ +{ + "upper": [ + [ + "s", + -4, + 2 + ], + [ + "p", + 0, + 0 + ], + [ + "p", + 4, + 0 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "p", + -4, + 1 + ], + [ + "r", + -4, + 4 + ] + ], + "block": [] +} \ No newline at end of file diff --git a/Test_case/level_4/5.json b/Test_case/level_4/5.json new file mode 100644 index 0000000..3fbb437 --- /dev/null +++ b/Test_case/level_4/5.json @@ -0,0 +1,68 @@ +{ + "upper": [ + [ + "s", + -4, + 2 + ], + [ + "s", + 0, + 0 + ], + [ + "p", + 4, + 0 + ] + ], + "lower": [ + [ + "s", + -4, + 0 + ], + [ + "p", + -4, + 1 + ], + [ + "r", + -4, + 4 + ], + [ + "s", + -3, + 4 + ], + [ + "s", + 0, + -4 + ], + [ + "s", + 0, + 4 + ], + [ + "s", + 4, + -4 + ], + [ + "s", + 4, + -1 + ] + ], + "block": [ + [ + "", + 0, + -1 + ] + ] +} \ No newline at end of file diff --git a/search/method.py b/search/method.py new file mode 100644 index 0000000..f17fa2e --- /dev/null +++ b/search/method.py @@ -0,0 +1,92 @@ + +from src.search.util import print_board +import json + +""" +Read from JSON file: + -> load each piece into board's dictionary. + -> ensure format token to distinguish between upper and lower. + -> handling file IO exception +""" +def to_board(file): + TYPE = 0 + X_COORD = 1 + Y_COORD = 2 + + if not isinstance(file, str): + print("Pass invalid argument to to_board()~!!!") + exit(-1) + try: + # open the file handle by json module + FILE = open(file) + game = json.load(FILE) + + board = {} + # iterate through the entity who is not empty in order to add it type and coordinate to dictionary. + for entity in game.keys(): + + if game[entity]: + + for token in game[entity]: + if entity == 'upper': + board[(int(token[X_COORD]), int(token[Y_COORD]))] = token[TYPE].upper() + else: + board[(int(token[X_COORD]), int(token[Y_COORD]))] = token[TYPE] + + FILE.close() + return board + + except IOError: + print("There is an issue when try to open file") + exit(-1) + + +""" +taken from https://www.redblobgames.com/grids/hexagons/ +under section: double coordinates for doublewidth +-> +""" +def distance_between(Upper_token, Lower_token): + dx = abs(Upper_token[0] - Lower_token[0]) + dy = abs(Upper_token[1] - Lower_token[1]) + + return dx + max(0, (dy - dx) / 2) + + +""" +movement logic +""" +row = 1 +collumn = 2 + +def move_left(coordinate): + if coordinate: + coordinate[collumn] -= 1 + +def move_right(coordinate): + if coordinate: + coordinate[collumn] += 1 + +def move_up_left(coordinate): + if coordinate: + coordinate[collumn] -= 1 + coordinate[row] += 1 + +def move_up_right(coordinate): + if coordinate: + coordinate[row] += 1 + + +def move_down_left(coordinate): + if coordinate: + coordinate[row] -= 1 + +def move_down_right(coordinate): + if coordinate: + coordinate[row] -= 1 + coordinate[collumn] += 1 + + +def transfer_move_to_board(, coordinate, new_coordinate): + if not board[new_coordinate] +print(distance_between([-3, 0], [1, 0])) -- GitLab