From b0053277e385bee23336d1fe6b69a12f49f9172f Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Tue, 1 Apr 2025 09:33:26 +0200 Subject: simplified allowedmoves logic --- test/080_allowedmoves/00_empty.in | 1 + test/080_allowedmoves/00_empty.out | 1 + test/080_allowedmoves/01_onemove.in | 2 ++ test/080_allowedmoves/01_onemove.out | 1 + test/080_allowedmoves/02_F_F2.in | 3 +++ test/080_allowedmoves/02_F_F2.out | 1 + test/080_allowedmoves/03_U_F.in | 3 +++ test/080_allowedmoves/03_U_F.out | 1 + test/080_allowedmoves/04_R_L_R.in | 4 ++++ test/080_allowedmoves/04_R_L_R.out | 1 + test/080_allowedmoves/05_longer_true.in | 12 ++++++++++ test/080_allowedmoves/05_longer_true.out | 1 + test/080_allowedmoves/06_longer_false.in | 12 ++++++++++ test/080_allowedmoves/06_longer_false.out | 1 + test/080_allowedmoves/07_D_U_false_order.in | 3 +++ test/080_allowedmoves/07_D_U_false_order.out | 1 + test/080_allowedmoves/allowedmoves_tests.c | 31 ++++++++++++++++++++++++ test/080_allowednext/00_empty_U.in | 2 -- test/080_allowednext/00_empty_U.out | 1 - test/080_allowednext/01_F_F2.in | 3 --- test/080_allowednext/01_F_F2.out | 1 - test/080_allowednext/02_U_F.in | 3 --- test/080_allowednext/02_U_F.out | 1 - test/080_allowednext/03_R_L_R.in | 4 ---- test/080_allowednext/03_R_L_R.out | 1 - test/080_allowednext/04_longer_true.in | 12 ---------- test/080_allowednext/04_longer_true.out | 1 - test/080_allowednext/05_longer_false.in | 9 ------- test/080_allowednext/05_longer_false.out | 1 - test/080_allowednext/06_D_U_false_order.in | 3 --- test/080_allowednext/06_D_U_false_order.out | 1 - test/080_allowednext/allowednext_tests.c | 35 ---------------------------- 32 files changed, 79 insertions(+), 78 deletions(-) create mode 100644 test/080_allowedmoves/00_empty.in create mode 100644 test/080_allowedmoves/00_empty.out create mode 100644 test/080_allowedmoves/01_onemove.in create mode 100644 test/080_allowedmoves/01_onemove.out create mode 100644 test/080_allowedmoves/02_F_F2.in create mode 100644 test/080_allowedmoves/02_F_F2.out create mode 100644 test/080_allowedmoves/03_U_F.in create mode 100644 test/080_allowedmoves/03_U_F.out create mode 100644 test/080_allowedmoves/04_R_L_R.in create mode 100644 test/080_allowedmoves/04_R_L_R.out create mode 100644 test/080_allowedmoves/05_longer_true.in create mode 100644 test/080_allowedmoves/05_longer_true.out create mode 100644 test/080_allowedmoves/06_longer_false.in create mode 100644 test/080_allowedmoves/06_longer_false.out create mode 100644 test/080_allowedmoves/07_D_U_false_order.in create mode 100644 test/080_allowedmoves/07_D_U_false_order.out create mode 100644 test/080_allowedmoves/allowedmoves_tests.c delete mode 100644 test/080_allowednext/00_empty_U.in delete mode 100644 test/080_allowednext/00_empty_U.out delete mode 100644 test/080_allowednext/01_F_F2.in delete mode 100644 test/080_allowednext/01_F_F2.out delete mode 100644 test/080_allowednext/02_U_F.in delete mode 100644 test/080_allowednext/02_U_F.out delete mode 100644 test/080_allowednext/03_R_L_R.in delete mode 100644 test/080_allowednext/03_R_L_R.out delete mode 100644 test/080_allowednext/04_longer_true.in delete mode 100644 test/080_allowednext/04_longer_true.out delete mode 100644 test/080_allowednext/05_longer_false.in delete mode 100644 test/080_allowednext/05_longer_false.out delete mode 100644 test/080_allowednext/06_D_U_false_order.in delete mode 100644 test/080_allowednext/06_D_U_false_order.out delete mode 100644 test/080_allowednext/allowednext_tests.c (limited to 'test') diff --git a/test/080_allowedmoves/00_empty.in b/test/080_allowedmoves/00_empty.in new file mode 100644 index 0000000..573541a --- /dev/null +++ b/test/080_allowedmoves/00_empty.in @@ -0,0 +1 @@ +0 diff --git a/test/080_allowedmoves/00_empty.out b/test/080_allowedmoves/00_empty.out new file mode 100644 index 0000000..27ba77d --- /dev/null +++ b/test/080_allowedmoves/00_empty.out @@ -0,0 +1 @@ +true diff --git a/test/080_allowedmoves/01_onemove.in b/test/080_allowedmoves/01_onemove.in new file mode 100644 index 0000000..aac8dac --- /dev/null +++ b/test/080_allowedmoves/01_onemove.in @@ -0,0 +1,2 @@ +1 +B' diff --git a/test/080_allowedmoves/01_onemove.out b/test/080_allowedmoves/01_onemove.out new file mode 100644 index 0000000..27ba77d --- /dev/null +++ b/test/080_allowedmoves/01_onemove.out @@ -0,0 +1 @@ +true diff --git a/test/080_allowedmoves/02_F_F2.in b/test/080_allowedmoves/02_F_F2.in new file mode 100644 index 0000000..93f0a9c --- /dev/null +++ b/test/080_allowedmoves/02_F_F2.in @@ -0,0 +1,3 @@ +2 +F +F2 diff --git a/test/080_allowedmoves/02_F_F2.out b/test/080_allowedmoves/02_F_F2.out new file mode 100644 index 0000000..c508d53 --- /dev/null +++ b/test/080_allowedmoves/02_F_F2.out @@ -0,0 +1 @@ +false diff --git a/test/080_allowedmoves/03_U_F.in b/test/080_allowedmoves/03_U_F.in new file mode 100644 index 0000000..ad3607e --- /dev/null +++ b/test/080_allowedmoves/03_U_F.in @@ -0,0 +1,3 @@ +2 +U +F diff --git a/test/080_allowedmoves/03_U_F.out b/test/080_allowedmoves/03_U_F.out new file mode 100644 index 0000000..27ba77d --- /dev/null +++ b/test/080_allowedmoves/03_U_F.out @@ -0,0 +1 @@ +true diff --git a/test/080_allowedmoves/04_R_L_R.in b/test/080_allowedmoves/04_R_L_R.in new file mode 100644 index 0000000..ffd9542 --- /dev/null +++ b/test/080_allowedmoves/04_R_L_R.in @@ -0,0 +1,4 @@ +3 +R +L' +R2 diff --git a/test/080_allowedmoves/04_R_L_R.out b/test/080_allowedmoves/04_R_L_R.out new file mode 100644 index 0000000..c508d53 --- /dev/null +++ b/test/080_allowedmoves/04_R_L_R.out @@ -0,0 +1 @@ +false diff --git a/test/080_allowedmoves/05_longer_true.in b/test/080_allowedmoves/05_longer_true.in new file mode 100644 index 0000000..1d9999c --- /dev/null +++ b/test/080_allowedmoves/05_longer_true.in @@ -0,0 +1,12 @@ +11 +F2 +B +U +D' +R +L2 +F +U' +D +F +L diff --git a/test/080_allowedmoves/05_longer_true.out b/test/080_allowedmoves/05_longer_true.out new file mode 100644 index 0000000..27ba77d --- /dev/null +++ b/test/080_allowedmoves/05_longer_true.out @@ -0,0 +1 @@ +true diff --git a/test/080_allowedmoves/06_longer_false.in b/test/080_allowedmoves/06_longer_false.in new file mode 100644 index 0000000..00fe94f --- /dev/null +++ b/test/080_allowedmoves/06_longer_false.in @@ -0,0 +1,12 @@ +8 +D +F' +B2 +L' +F' +R' +L2 +R +B +U2 +D diff --git a/test/080_allowedmoves/06_longer_false.out b/test/080_allowedmoves/06_longer_false.out new file mode 100644 index 0000000..c508d53 --- /dev/null +++ b/test/080_allowedmoves/06_longer_false.out @@ -0,0 +1 @@ +false diff --git a/test/080_allowedmoves/07_D_U_false_order.in b/test/080_allowedmoves/07_D_U_false_order.in new file mode 100644 index 0000000..680d1a1 --- /dev/null +++ b/test/080_allowedmoves/07_D_U_false_order.in @@ -0,0 +1,3 @@ +2 +D +U diff --git a/test/080_allowedmoves/07_D_U_false_order.out b/test/080_allowedmoves/07_D_U_false_order.out new file mode 100644 index 0000000..c508d53 --- /dev/null +++ b/test/080_allowedmoves/07_D_U_false_order.out @@ -0,0 +1 @@ +false diff --git a/test/080_allowedmoves/allowedmoves_tests.c b/test/080_allowedmoves/allowedmoves_tests.c new file mode 100644 index 0000000..aa6bda7 --- /dev/null +++ b/test/080_allowedmoves/allowedmoves_tests.c @@ -0,0 +1,31 @@ +#include "../test.h" + +bool allowedmoves(size_t n, const uint8_t [n]); + +static char *moves[] = { + "U", "U2", "U'", + "D", "D2", "D'", + "R", "R2", "R'", + "L", "L2", "L'", + "F", "F2", "F'", + "B", "B2", "B'", +}; + +void run(void) { + char movestr[STRLENMAX]; + uint8_t m[100]; + int n, i, j; + + fgets(movestr, STRLENMAX, stdin); + n = atoi(movestr); + + for (i = 0; i < n; i++) { + fgets(movestr, STRLENMAX, stdin); + movestr[strcspn(movestr, "\n")] = 0; + for (j = 0; j < 18; j++) + if (!strcmp(movestr, moves[j])) + m[i] = j; + } + + printf("%s\n", allowedmoves(n, m) ? "true" : "false"); +} diff --git a/test/080_allowednext/00_empty_U.in b/test/080_allowednext/00_empty_U.in deleted file mode 100644 index feb4bc3..0000000 --- a/test/080_allowednext/00_empty_U.in +++ /dev/null @@ -1,2 +0,0 @@ -0 -U diff --git a/test/080_allowednext/00_empty_U.out b/test/080_allowednext/00_empty_U.out deleted file mode 100644 index 27ba77d..0000000 --- a/test/080_allowednext/00_empty_U.out +++ /dev/null @@ -1 +0,0 @@ -true diff --git a/test/080_allowednext/01_F_F2.in b/test/080_allowednext/01_F_F2.in deleted file mode 100644 index 93f0a9c..0000000 --- a/test/080_allowednext/01_F_F2.in +++ /dev/null @@ -1,3 +0,0 @@ -2 -F -F2 diff --git a/test/080_allowednext/01_F_F2.out b/test/080_allowednext/01_F_F2.out deleted file mode 100644 index c508d53..0000000 --- a/test/080_allowednext/01_F_F2.out +++ /dev/null @@ -1 +0,0 @@ -false diff --git a/test/080_allowednext/02_U_F.in b/test/080_allowednext/02_U_F.in deleted file mode 100644 index ad3607e..0000000 --- a/test/080_allowednext/02_U_F.in +++ /dev/null @@ -1,3 +0,0 @@ -2 -U -F diff --git a/test/080_allowednext/02_U_F.out b/test/080_allowednext/02_U_F.out deleted file mode 100644 index 27ba77d..0000000 --- a/test/080_allowednext/02_U_F.out +++ /dev/null @@ -1 +0,0 @@ -true diff --git a/test/080_allowednext/03_R_L_R.in b/test/080_allowednext/03_R_L_R.in deleted file mode 100644 index ffd9542..0000000 --- a/test/080_allowednext/03_R_L_R.in +++ /dev/null @@ -1,4 +0,0 @@ -3 -R -L' -R2 diff --git a/test/080_allowednext/03_R_L_R.out b/test/080_allowednext/03_R_L_R.out deleted file mode 100644 index c508d53..0000000 --- a/test/080_allowednext/03_R_L_R.out +++ /dev/null @@ -1 +0,0 @@ -false diff --git a/test/080_allowednext/04_longer_true.in b/test/080_allowednext/04_longer_true.in deleted file mode 100644 index 0360619..0000000 --- a/test/080_allowednext/04_longer_true.in +++ /dev/null @@ -1,12 +0,0 @@ -11 -F2 -B -D2 -D' -L -R2 -U -U' -D -F -L diff --git a/test/080_allowednext/04_longer_true.out b/test/080_allowednext/04_longer_true.out deleted file mode 100644 index 27ba77d..0000000 --- a/test/080_allowednext/04_longer_true.out +++ /dev/null @@ -1 +0,0 @@ -true diff --git a/test/080_allowednext/05_longer_false.in b/test/080_allowednext/05_longer_false.in deleted file mode 100644 index 6cf8ecd..0000000 --- a/test/080_allowednext/05_longer_false.in +++ /dev/null @@ -1,9 +0,0 @@ -8 -D -B2 -F' -L' -F' -L' -R2 -L diff --git a/test/080_allowednext/05_longer_false.out b/test/080_allowednext/05_longer_false.out deleted file mode 100644 index c508d53..0000000 --- a/test/080_allowednext/05_longer_false.out +++ /dev/null @@ -1 +0,0 @@ -false diff --git a/test/080_allowednext/06_D_U_false_order.in b/test/080_allowednext/06_D_U_false_order.in deleted file mode 100644 index 680d1a1..0000000 --- a/test/080_allowednext/06_D_U_false_order.in +++ /dev/null @@ -1,3 +0,0 @@ -2 -D -U diff --git a/test/080_allowednext/06_D_U_false_order.out b/test/080_allowednext/06_D_U_false_order.out deleted file mode 100644 index c508d53..0000000 --- a/test/080_allowednext/06_D_U_false_order.out +++ /dev/null @@ -1 +0,0 @@ -false diff --git a/test/080_allowednext/allowednext_tests.c b/test/080_allowednext/allowednext_tests.c deleted file mode 100644 index 08fe491..0000000 --- a/test/080_allowednext/allowednext_tests.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "../test.h" - -bool allowednextmove(size_t n, const uint8_t [n]); - -static char *moves[] = { - "U", "U2", "U'", - "D", "D2", "D'", - "R", "R2", "R'", - "L", "L2", "L'", - "F", "F2", "F'", - "B", "B2", "B'", -}; - -void run(void) { - char movestr[STRLENMAX]; - uint8_t m[100]; - int n, i, j; - - fgets(movestr, STRLENMAX, stdin); - n = atoi(movestr); - - for (i = 0; i < n; i++) { - fgets(movestr, STRLENMAX, stdin); - movestr[strcspn(movestr, "\n")] = 0; - for (j = 0; j < 18; j++) - if (!strcmp(movestr, moves[j])) - m[i] = j; - } - - fprintf(stderr, "Last two: %s, %s\nNext: %s\n", - n > 2 ? moves[m[n-3]] : "-", - n > 1 ? moves[m[n-2]] : "-", - n > 0 ? moves[m[n-1]] : "-"); - printf("%s\n", allowednextmove(n, m) ? "true" : "false"); -} -- cgit v1.3