From 28a6342f6a716f90714c9536def978498ac56f77 Mon Sep 17 00:00:00 2001 From: ericp Date: Mon, 10 Feb 2025 22:10:42 +0100 Subject: [PATCH] Bipod added --- .../res/lud/board/space/connection/Bipod.lud | 95 +++++++++++++++ .../space/connection/Bipod/RandomTrial_0.txt | 96 ++++++++++++++++ .../space/connection/Bipod/RandomTrial_1.txt | 108 ++++++++++++++++++ 3 files changed, 299 insertions(+) create mode 100644 Common/res/lud/board/space/connection/Bipod.lud create mode 100644 Player/res/random_trials/board/space/connection/Bipod/RandomTrial_0.txt create mode 100644 Player/res/random_trials/board/space/connection/Bipod/RandomTrial_1.txt diff --git a/Common/res/lud/board/space/connection/Bipod.lud b/Common/res/lud/board/space/connection/Bipod.lud new file mode 100644 index 0000000000..d47ed5b3ea --- /dev/null +++ b/Common/res/lud/board/space/connection/Bipod.lud @@ -0,0 +1,95 @@ +(define "Connected" + (>= + (count Sites + in:(intersection + (sites {0 16 31 45 58 70 15 30 44 57 69 80 71 72 73 74 75 76 77 78 79}) + (sites Group Cell at:#1 if:(= (what at:(to)) (id #2 P1))) + ) + ) + 1 + ) +) + +(define "Connectable" + (>= + (count Sites + in:(intersection + (sites {0 16 31 45 58 70 15 30 44 57 69 80 71 72 73 74 75 76 77 78 79}) + (sites Group Cell at:#1 if:(or (= (what at:(to)) (id #2 P1)) (is Empty (to)))) + ) + ) + 1 + ) +) + +//------------------------------------------------------------------------- + +(game "Bipod" + (players 2) + (equipment { + (board + (intersect + (hex Triangle 16) + (hex Rectangle 6 16) + ) + ) + (piece "Disc" P2) + (piece "MarkerGray" P1) + (piece "MarkerWhite" P1) + }) + (rules + (start { + (place "MarkerGray1" 10) + (place "MarkerWhite1" 5) + }) + (play + (if (<= (count Moves) 3) + (move Add + (piece (id "Disc" P2)) + (to (sites Empty)) + ) + (if (= (mover) P2) + (move Add + (piece (id "Disc" P2)) + (to (sites Empty)) + ) + (or + (move Add + (piece (id "MarkerGray" P1)) + (to (sites Empty)) + ) + (move Add + (piece (id "MarkerWhite" P1)) + (to (sites Empty)) + ) + ) + ) + ) + ) + (end { + (if (and ("Connected" 5 "MarkerWhite") ("Connected" 10 "MarkerGray")) + (result P1 Win) + ) + (if + (or + (not ("Connectable" 5 "MarkerWhite")) + (not ("Connectable" 10 "MarkerGray")) + ) + (result P2 Win) + ) + }) + ) +) + +//------------------------------------------------------------------------- + +(metadata + (info { + + }) + + (graphics { + (piece Foreground "MarkerGray" image:"Disc" fillColour:(colour Grey) edgeColour:(colour Hidden)) + (piece Foreground "MarkerWhite" image:"Disc" fillColour:(colour White) edgeColour:(colour Hidden)) + }) +) \ No newline at end of file diff --git a/Player/res/random_trials/board/space/connection/Bipod/RandomTrial_0.txt b/Player/res/random_trials/board/space/connection/Bipod/RandomTrial_0.txt new file mode 100644 index 0000000000..31f3f8dc14 --- /dev/null +++ b/Player/res/random_trials/board/space/connection/Bipod/RandomTrial_0.txt @@ -0,0 +1,96 @@ +game=../Common/res/lud/board/space/connection/Bipod.lud +START GAME OPTIONS +END GAME OPTIONS +RNG internal state=-3,-9,-115,72,96,109,61,25 +Move=[Move:mover=0,from=10,to=10,actions=[Add:type=Cell,to=10,what=2]] +Move=[Move:mover=0,from=5,to=5,actions=[Add:type=Cell,to=5,what=3]] +Move=[Move:mover=1,from=8,to=8,actions=[Add:type=Cell,to=8,what=1,decision=true]] +Move=[Move:mover=2,from=25,to=25,actions=[Add:type=Cell,to=25,what=1,decision=true]] +Move=[Move:mover=1,from=45,to=45,actions=[Add:type=Cell,to=45,what=1,decision=true]] +Move=[Move:mover=2,from=64,to=64,actions=[Add:type=Cell,to=64,what=1,decision=true]] +Move=[Move:mover=1,from=30,to=30,actions=[Add:type=Cell,to=30,what=3,decision=true]] +Move=[Move:mover=2,from=11,to=11,actions=[Add:type=Cell,to=11,what=1,decision=true]] +Move=[Move:mover=1,from=9,to=9,actions=[Add:type=Cell,to=9,what=3,decision=true]] +Move=[Move:mover=2,from=21,to=21,actions=[Add:type=Cell,to=21,what=1,decision=true]] +Move=[Move:mover=1,from=0,to=0,actions=[Add:type=Cell,to=0,what=3,decision=true]] +Move=[Move:mover=2,from=73,to=73,actions=[Add:type=Cell,to=73,what=1,decision=true]] +Move=[Move:mover=1,from=41,to=41,actions=[Add:type=Cell,to=41,what=3,decision=true]] +Move=[Move:mover=2,from=22,to=22,actions=[Add:type=Cell,to=22,what=1,decision=true]] +Move=[Move:mover=1,from=57,to=57,actions=[Add:type=Cell,to=57,what=2,decision=true]] +Move=[Move:mover=2,from=78,to=78,actions=[Add:type=Cell,to=78,what=1,decision=true]] +Move=[Move:mover=1,from=35,to=35,actions=[Add:type=Cell,to=35,what=2,decision=true]] +Move=[Move:mover=2,from=50,to=50,actions=[Add:type=Cell,to=50,what=1,decision=true]] +Move=[Move:mover=1,from=43,to=43,actions=[Add:type=Cell,to=43,what=2,decision=true]] +Move=[Move:mover=2,from=3,to=3,actions=[Add:type=Cell,to=3,what=1,decision=true]] +Move=[Move:mover=1,from=42,to=42,actions=[Add:type=Cell,to=42,what=3,decision=true]] +Move=[Move:mover=2,from=60,to=60,actions=[Add:type=Cell,to=60,what=1,decision=true]] +Move=[Move:mover=1,from=2,to=2,actions=[Add:type=Cell,to=2,what=3,decision=true]] +Move=[Move:mover=2,from=48,to=48,actions=[Add:type=Cell,to=48,what=1,decision=true]] +Move=[Move:mover=1,from=67,to=67,actions=[Add:type=Cell,to=67,what=2,decision=true]] +Move=[Move:mover=2,from=33,to=33,actions=[Add:type=Cell,to=33,what=1,decision=true]] +Move=[Move:mover=1,from=4,to=4,actions=[Add:type=Cell,to=4,what=3,decision=true]] +Move=[Move:mover=2,from=70,to=70,actions=[Add:type=Cell,to=70,what=1,decision=true]] +Move=[Move:mover=1,from=7,to=7,actions=[Add:type=Cell,to=7,what=3,decision=true]] +Move=[Move:mover=2,from=39,to=39,actions=[Add:type=Cell,to=39,what=1,decision=true]] +Move=[Move:mover=1,from=12,to=12,actions=[Add:type=Cell,to=12,what=3,decision=true]] +Move=[Move:mover=2,from=52,to=52,actions=[Add:type=Cell,to=52,what=1,decision=true]] +Move=[Move:mover=1,from=74,to=74,actions=[Add:type=Cell,to=74,what=2,decision=true]] +Move=[Move:mover=2,from=44,to=44,actions=[Add:type=Cell,to=44,what=1,decision=true]] +Move=[Move:mover=1,from=79,to=79,actions=[Add:type=Cell,to=79,what=2,decision=true]] +Move=[Move:mover=2,from=53,to=53,actions=[Add:type=Cell,to=53,what=1,decision=true]] +Move=[Move:mover=1,from=47,to=47,actions=[Add:type=Cell,to=47,what=2,decision=true]] +Move=[Move:mover=2,from=15,to=15,actions=[Add:type=Cell,to=15,what=1,decision=true]] +Move=[Move:mover=1,from=23,to=23,actions=[Add:type=Cell,to=23,what=2,decision=true]] +Move=[Move:mover=2,from=16,to=16,actions=[Add:type=Cell,to=16,what=1,decision=true]] +Move=[Move:mover=1,from=66,to=66,actions=[Add:type=Cell,to=66,what=2,decision=true]] +Move=[Move:mover=2,from=34,to=34,actions=[Add:type=Cell,to=34,what=1,decision=true]] +Move=[Move:mover=1,from=27,to=27,actions=[Add:type=Cell,to=27,what=2,decision=true]] +Move=[Move:mover=2,from=19,to=19,actions=[Add:type=Cell,to=19,what=1,decision=true]] +LEGAL MOVES LIST SIZE = 79 +LEGAL MOVES LIST SIZE = 78 +LEGAL MOVES LIST SIZE = 77 +LEGAL MOVES LIST SIZE = 76 +LEGAL MOVES LIST SIZE = 150 +LEGAL MOVES LIST SIZE = 74 +LEGAL MOVES LIST SIZE = 146 +LEGAL MOVES LIST SIZE = 72 +LEGAL MOVES LIST SIZE = 142 +LEGAL MOVES LIST SIZE = 70 +LEGAL MOVES LIST SIZE = 138 +LEGAL MOVES LIST SIZE = 68 +LEGAL MOVES LIST SIZE = 134 +LEGAL MOVES LIST SIZE = 66 +LEGAL MOVES LIST SIZE = 130 +LEGAL MOVES LIST SIZE = 64 +LEGAL MOVES LIST SIZE = 126 +LEGAL MOVES LIST SIZE = 62 +LEGAL MOVES LIST SIZE = 122 +LEGAL MOVES LIST SIZE = 60 +LEGAL MOVES LIST SIZE = 118 +LEGAL MOVES LIST SIZE = 58 +LEGAL MOVES LIST SIZE = 114 +LEGAL MOVES LIST SIZE = 56 +LEGAL MOVES LIST SIZE = 110 +LEGAL MOVES LIST SIZE = 54 +LEGAL MOVES LIST SIZE = 106 +LEGAL MOVES LIST SIZE = 52 +LEGAL MOVES LIST SIZE = 102 +LEGAL MOVES LIST SIZE = 50 +LEGAL MOVES LIST SIZE = 98 +LEGAL MOVES LIST SIZE = 48 +LEGAL MOVES LIST SIZE = 94 +LEGAL MOVES LIST SIZE = 46 +LEGAL MOVES LIST SIZE = 90 +LEGAL MOVES LIST SIZE = 44 +LEGAL MOVES LIST SIZE = 86 +LEGAL MOVES LIST SIZE = 42 +LEGAL MOVES LIST SIZE = 82 +LEGAL MOVES LIST SIZE = 40 +LEGAL MOVES LIST SIZE = 78 +LEGAL MOVES LIST SIZE = 38 +numInitialPlacementMoves=2 +winner=2 +endtype=NaturalEnd +rankings=0.0,2.0,1.0 +SANDBOX=false +LUDII_VERSION=1.3.13 diff --git a/Player/res/random_trials/board/space/connection/Bipod/RandomTrial_1.txt b/Player/res/random_trials/board/space/connection/Bipod/RandomTrial_1.txt new file mode 100644 index 0000000000..d616deb888 --- /dev/null +++ b/Player/res/random_trials/board/space/connection/Bipod/RandomTrial_1.txt @@ -0,0 +1,108 @@ +game=../Common/res/lud/board/space/connection/Bipod.lud +START GAME OPTIONS +END GAME OPTIONS +RNG internal state=107,-121,22,-54,127,-14,54,32 +Move=[Move:mover=0,from=10,to=10,actions=[Add:type=Cell,to=10,what=2]] +Move=[Move:mover=0,from=5,to=5,actions=[Add:type=Cell,to=5,what=3]] +Move=[Move:mover=1,from=16,to=16,actions=[Add:type=Cell,to=16,what=1,decision=true]] +Move=[Move:mover=2,from=26,to=26,actions=[Add:type=Cell,to=26,what=1,decision=true]] +Move=[Move:mover=1,from=74,to=74,actions=[Add:type=Cell,to=74,what=1,decision=true]] +Move=[Move:mover=2,from=60,to=60,actions=[Add:type=Cell,to=60,what=1,decision=true]] +Move=[Move:mover=1,from=57,to=57,actions=[Add:type=Cell,to=57,what=2,decision=true]] +Move=[Move:mover=2,from=3,to=3,actions=[Add:type=Cell,to=3,what=1,decision=true]] +Move=[Move:mover=1,from=52,to=52,actions=[Add:type=Cell,to=52,what=3,decision=true]] +Move=[Move:mover=2,from=42,to=42,actions=[Add:type=Cell,to=42,what=1,decision=true]] +Move=[Move:mover=1,from=37,to=37,actions=[Add:type=Cell,to=37,what=3,decision=true]] +Move=[Move:mover=2,from=39,to=39,actions=[Add:type=Cell,to=39,what=1,decision=true]] +Move=[Move:mover=1,from=46,to=46,actions=[Add:type=Cell,to=46,what=2,decision=true]] +Move=[Move:mover=2,from=41,to=41,actions=[Add:type=Cell,to=41,what=1,decision=true]] +Move=[Move:mover=1,from=15,to=15,actions=[Add:type=Cell,to=15,what=2,decision=true]] +Move=[Move:mover=2,from=23,to=23,actions=[Add:type=Cell,to=23,what=1,decision=true]] +Move=[Move:mover=1,from=4,to=4,actions=[Add:type=Cell,to=4,what=2,decision=true]] +Move=[Move:mover=2,from=71,to=71,actions=[Add:type=Cell,to=71,what=1,decision=true]] +Move=[Move:mover=1,from=63,to=63,actions=[Add:type=Cell,to=63,what=2,decision=true]] +Move=[Move:mover=2,from=73,to=73,actions=[Add:type=Cell,to=73,what=1,decision=true]] +Move=[Move:mover=1,from=61,to=61,actions=[Add:type=Cell,to=61,what=3,decision=true]] +Move=[Move:mover=2,from=38,to=38,actions=[Add:type=Cell,to=38,what=1,decision=true]] +Move=[Move:mover=1,from=80,to=80,actions=[Add:type=Cell,to=80,what=3,decision=true]] +Move=[Move:mover=2,from=34,to=34,actions=[Add:type=Cell,to=34,what=1,decision=true]] +Move=[Move:mover=1,from=75,to=75,actions=[Add:type=Cell,to=75,what=3,decision=true]] +Move=[Move:mover=2,from=78,to=78,actions=[Add:type=Cell,to=78,what=1,decision=true]] +Move=[Move:mover=1,from=45,to=45,actions=[Add:type=Cell,to=45,what=3,decision=true]] +Move=[Move:mover=2,from=21,to=21,actions=[Add:type=Cell,to=21,what=1,decision=true]] +Move=[Move:mover=1,from=67,to=67,actions=[Add:type=Cell,to=67,what=2,decision=true]] +Move=[Move:mover=2,from=12,to=12,actions=[Add:type=Cell,to=12,what=1,decision=true]] +Move=[Move:mover=1,from=22,to=22,actions=[Add:type=Cell,to=22,what=3,decision=true]] +Move=[Move:mover=2,from=76,to=76,actions=[Add:type=Cell,to=76,what=1,decision=true]] +Move=[Move:mover=1,from=47,to=47,actions=[Add:type=Cell,to=47,what=3,decision=true]] +Move=[Move:mover=2,from=50,to=50,actions=[Add:type=Cell,to=50,what=1,decision=true]] +Move=[Move:mover=1,from=58,to=58,actions=[Add:type=Cell,to=58,what=2,decision=true]] +Move=[Move:mover=2,from=2,to=2,actions=[Add:type=Cell,to=2,what=1,decision=true]] +Move=[Move:mover=1,from=40,to=40,actions=[Add:type=Cell,to=40,what=2,decision=true]] +Move=[Move:mover=2,from=36,to=36,actions=[Add:type=Cell,to=36,what=1,decision=true]] +Move=[Move:mover=1,from=54,to=54,actions=[Add:type=Cell,to=54,what=2,decision=true]] +Move=[Move:mover=2,from=19,to=19,actions=[Add:type=Cell,to=19,what=1,decision=true]] +Move=[Move:mover=1,from=30,to=30,actions=[Add:type=Cell,to=30,what=3,decision=true]] +Move=[Move:mover=2,from=8,to=8,actions=[Add:type=Cell,to=8,what=1,decision=true]] +Move=[Move:mover=1,from=49,to=49,actions=[Add:type=Cell,to=49,what=2,decision=true]] +Move=[Move:mover=2,from=25,to=25,actions=[Add:type=Cell,to=25,what=1,decision=true]] +Move=[Move:mover=1,from=31,to=31,actions=[Add:type=Cell,to=31,what=2,decision=true]] +Move=[Move:mover=2,from=55,to=55,actions=[Add:type=Cell,to=55,what=1,decision=true]] +Move=[Move:mover=1,from=20,to=20,actions=[Add:type=Cell,to=20,what=3,decision=true]] +Move=[Move:mover=2,from=9,to=9,actions=[Add:type=Cell,to=9,what=1,decision=true]] +Move=[Move:mover=1,from=56,to=56,actions=[Add:type=Cell,to=56,what=2,decision=true]] +Move=[Move:mover=2,from=27,to=27,actions=[Add:type=Cell,to=27,what=1,decision=true]] +LEGAL MOVES LIST SIZE = 79 +LEGAL MOVES LIST SIZE = 78 +LEGAL MOVES LIST SIZE = 77 +LEGAL MOVES LIST SIZE = 76 +LEGAL MOVES LIST SIZE = 150 +LEGAL MOVES LIST SIZE = 74 +LEGAL MOVES LIST SIZE = 146 +LEGAL MOVES LIST SIZE = 72 +LEGAL MOVES LIST SIZE = 142 +LEGAL MOVES LIST SIZE = 70 +LEGAL MOVES LIST SIZE = 138 +LEGAL MOVES LIST SIZE = 68 +LEGAL MOVES LIST SIZE = 134 +LEGAL MOVES LIST SIZE = 66 +LEGAL MOVES LIST SIZE = 130 +LEGAL MOVES LIST SIZE = 64 +LEGAL MOVES LIST SIZE = 126 +LEGAL MOVES LIST SIZE = 62 +LEGAL MOVES LIST SIZE = 122 +LEGAL MOVES LIST SIZE = 60 +LEGAL MOVES LIST SIZE = 118 +LEGAL MOVES LIST SIZE = 58 +LEGAL MOVES LIST SIZE = 114 +LEGAL MOVES LIST SIZE = 56 +LEGAL MOVES LIST SIZE = 110 +LEGAL MOVES LIST SIZE = 54 +LEGAL MOVES LIST SIZE = 106 +LEGAL MOVES LIST SIZE = 52 +LEGAL MOVES LIST SIZE = 102 +LEGAL MOVES LIST SIZE = 50 +LEGAL MOVES LIST SIZE = 98 +LEGAL MOVES LIST SIZE = 48 +LEGAL MOVES LIST SIZE = 94 +LEGAL MOVES LIST SIZE = 46 +LEGAL MOVES LIST SIZE = 90 +LEGAL MOVES LIST SIZE = 44 +LEGAL MOVES LIST SIZE = 86 +LEGAL MOVES LIST SIZE = 42 +LEGAL MOVES LIST SIZE = 82 +LEGAL MOVES LIST SIZE = 40 +LEGAL MOVES LIST SIZE = 78 +LEGAL MOVES LIST SIZE = 38 +LEGAL MOVES LIST SIZE = 74 +LEGAL MOVES LIST SIZE = 36 +LEGAL MOVES LIST SIZE = 70 +LEGAL MOVES LIST SIZE = 34 +LEGAL MOVES LIST SIZE = 66 +LEGAL MOVES LIST SIZE = 32 +numInitialPlacementMoves=2 +winner=2 +endtype=NaturalEnd +rankings=0.0,2.0,1.0 +SANDBOX=false +LUDII_VERSION=1.3.13