Skip to content

Instantly share code, notes, and snippets.

@increpare
Created June 28, 2024 21:37
Show Gist options
  • Save increpare/d1e113b274008a3bb0e7835150df8fbc to your computer and use it in GitHub Desktop.
Save increpare/d1e113b274008a3bb0e7835150df8fbc to your computer and use it in GitHub Desktop.
Simple Block Pushing Game (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Simple Block Pushing Game
author David Skinner
homepage www.puzzlescript.net
run_rules_on_level_start
again_interval 0
noaction
( debug )
verbose_logging
========
OBJECTS
========
Background
#431408
Wall
#190000 #012135
00000
00100
00001
01000
00000
Player
#d07d68 #d07d68 #d07d68 #d07d68
.000.
.111.
22222
.333.
.3.3.
player_dead
black black black black black
.000.
.111.
22222
.333.
.3.3.
Crate
#981111
00000
0...0
0...0
0...0
00000
fluid_1
#692ba9
fluid_2
#157d41
fluid_3
#c5484e
fluid_4
#f1892d
fluid_5
#e9d963
fluid_6
#cde4fc
fluid_7
#000000
flow_up
#858585
.....
..0..
.0.0.
.....
.....
flow_down
#858585
.....
.....
.0.0.
..0..
.....
flow_left
#858585
.....
..0..
.0...
..0..
.....
flow_right
#858585
.....
..0..
...0.
..0..
.....
flow_node
orange
.....
..0..
.000.
..0..
.....
node_input_n
#858585
..0..
.....
.....
.....
.....
node_input_s
#858585
.....
.....
.....
.....
..0..
node_input_e
#858585
.....
.....
....0
.....
.....
node_input_w
#858585
.....
.....
0....
.....
.....
fluid_source_u
#484848
0...0
0...0
0...0
00.00
00000
fluid_source_d
#484848
00000
00.00
0...0
0...0
0...0
fluid_source_l
#484848
00000
...00
....0
...00
00000
fluid_source_r
#484848
00000
00...
0....
00...
00000
justremoved
red
.....
.....
.....
.....
0....
incremented
yellow
....0
.....
.....
.....
.....
propagated
pink
0....
.....
.....
.....
.....
t_u
lightblue
...0.
.....
.....
.....
.....
t_d
lightblue
.....
.....
.....
.....
.0...
t_l
lightblue
.....
0....
.....
.....
.....
t_r
lightblue
.....
.....
.....
....0
.....
head
yellow
0...0
.....
.....
.....
0...0
=======
LEGEND
=======
. = Background
# = Wall
P = Player
* = crate
fluid = fluid_1 or fluid_2 or fluid_3 or fluid_4 or fluid_5 or fluid_6 or fluid_7
flow = flow_up or flow_down or flow_left or flow_right or flow_node
fluid_source = fluid_source_u or fluid_source_d or fluid_source_l or fluid_source_r
node_input = node_input_n or node_input_s or node_input_e or node_input_w
pushable = fluid_source or crate
u = fluid_source_u and flow_up
d = fluid_source_d and flow_down
l = fluid_source_l and flow_left
r = fluid_source_r and flow_right
obstacle = crate or fluid_source or wall
t = t_u or t_d or t_l or t_r
fluid_gt1 = fluid_2 or fluid_3 or fluid_4 or fluid_5 or fluid_6 or fluid_7
fluid_gt2 = fluid_3 or fluid_4 or fluid_5 or fluid_6 or fluid_7
fluid_gt3 = fluid_4 or fluid_5 or fluid_6 or fluid_7
fluid_gt4 = fluid_5 or fluid_6 or fluid_7
fluid_gt5 = fluid_6 or fluid_7
fluid_gt6 = fluid_7
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
Background
fluid
flow_up
flow_down
flow_left
flow_right
flow_node
Player, Wall, pushable, player_dead
justremoved
node_input_n
node_input_s
node_input_e
node_input_w
incremented
propagated
t_u
t_d
t_l
t_r
head
======
RULES
======
[ ] -> again
[ flow_node ] -> [ ]
[ fluid ] -> [ ]
(PUSHING LOGIC)
(0: player pushes objects)
[ > Player | fluid_source flow | no obstacle ] -> [ | player | no fluid_source no flow fluid_source flow ]
[ > player | crate | no obstacle ] -> [ | player | Crate no flow ]
( REDUCTION )
( 4: if a node doesn't have enough sources, replace it with a flow )
( 5: recede flows coming from nowhere )
up [ no flow_up no propagated | flow_up no fluid_source_u ] -> [ | no flow_up propagated ]
[ propagated ] -> [ no propagated ]
down [ no flow_down no propagated | flow_down no fluid_source_d ] -> [ | no flow_down propagated ]
[ propagated ] -> [ no propagated ]
left [ no flow_left no propagated | flow_left no fluid_source_l ] -> [ | no flow_left propagated ]
[ propagated ] -> [ no propagated ]
right [ no flow_right no propagated | flow_right no fluid_source_r ] -> [ | no flow_right propagated ]
[ propagated ] -> [ no propagated ]
( PROPAGATION )
( 1: propagate flows foward normally )
(force propgation from starters)
right [ flow_right | no flow_right no flow_left no obstacle | flow_left ] -> [ flow_right | flow_right flow_left flow_node | flow_left ]
down [ flow_down | no flow_down no flow_up no obstacle | flow_up ] -> [ flow_down | flow_down flow_up | flow_up ]
(propagate from waves)
up [ flow_up no propagated | no flow_up no flow_down no obstacle ] -> [ flow_up | flow_up propagated ]
down [ flow_down no propagated | no flow_down no flow_up no obstacle ] -> [ flow_down | flow_down propagated ]
left [ flow_left no propagated | no flow_left no flow_right no obstacle ] -> [ flow_left | flow_left propagated ]
right [ flow_right no propagated | no flow_right no flow_left no obstacle ] -> [ flow_right | flow_right propagated ]
(propagate from nodes)
up [ flow_node no propagated | no flow_up no flow_down no obstacle ] -> [ flow_node | flow_up propagated ]
down [ flow_node no propagated | no flow_down no flow_up no obstacle ] -> [ flow_node | flow_down propagated ]
left [ flow_node no propagated | no flow_left no flow_right no obstacle ] -> [ flow_node | flow_left propagated ]
right [ flow_node no propagated | no flow_right no flow_left no obstacle ] -> [ flow_node | flow_right propagated ]
(create nodes)
[ flow_up flow_down ] -> [ flow_up flow_down flow_node ]
[ flow_up flow_left ] -> [ flow_up flow_left flow_node ]
[ flow_up flow_right ] -> [ flow_up flow_right flow_node ]
[ flow_down flow_left ] -> [ flow_down flow_left flow_node ]
[ flow_down flow_right ] -> [ flow_down flow_right flow_node ]
[ flow_left flow_right ] -> [ flow_left flow_right flow_node ]
up [ fluid_source_u flow_up no propagated | no flow_up no obstacle ] -> [ flow_up fluid_source_u | flow_up propagated ]
down [ fluid_source_d flow_down no propagated | no flow_down no obstacle ] -> [ flow_down fluid_source_d | flow_down propagated ]
left [ fluid_source_l flow_left no propagated | no flow_left no obstacle ] -> [ flow_left fluid_source_l | flow_left propagated ]
right [ fluid_source_r flow_right no propagated | no flow_right no obstacle ] -> [ flow_right fluid_source_r | flow_right propagated ]
[ propagated ] -> [ no propagated ]
(assign movements to flows)
[ flow_up ] -> [ up flow_up ]
[ flow_down ] -> [ down flow_down ]
[ flow_left] -> [ left flow_left ]
[ flow_right ] -> [ right flow_right ]
startloop
(pick a source, spawn water and a wavefront)
random [ fluid_source no propagated ] -> [ fluid_source fluid_1 propagated head ]
[ > flow fluid head | flow no fluid no flow_node no obstacle head ] -> [ > flow fluid | flow fluid head ]
( 3: give nodes colour based on source inputs )
(feed nodes )
up [ flow_node no flow_up no t_u no fluid | fluid head ] -> [ flow_node fluid t_u head | fluid ]
+ up [ flow_node no flow_up no t_u fluid_1 | fluid_1 head ] -> [ flow_node fluid_2 t_u head | fluid_1 ]
+ up [ flow_node no flow_up no t_u fluid_1 | fluid_2 head ] -> [ flow_node fluid_3 t_u head | fluid_2 ]
+ up [ flow_node no flow_up no t_u fluid_1 | fluid_3 head ] -> [ flow_node fluid_4 t_u head | fluid_3 ]
+ up [ flow_node no flow_up no t_u fluid_1 | fluid_4 head ] -> [ flow_node fluid_5 t_u head | fluid_4 ]
+ up [ flow_node no flow_up no t_u fluid_1 | fluid_5 head ] -> [ flow_node fluid_6 t_u head | fluid_5 ]
+ up [ flow_node no flow_up no t_u fluid_1 | fluid_6 head ] -> [ flow_node fluid_7 t_u head | fluid_6 ]
+ up [ flow_node no flow_up no t_u fluid_1 | fluid_7 head ] -> [ flow_node fluid_7 t_u head | fluid_7 ]
+ up [ flow_node no flow_up no t_u fluid_2 | fluid_1 head ] -> [ flow_node fluid_3 t_u head | fluid_1 ]
+ up [ flow_node no flow_up no t_u fluid_2 | fluid_2 head ] -> [ flow_node fluid_4 t_u head | fluid_2 ]
+ up [ flow_node no flow_up no t_u fluid_2 | fluid_3 head ] -> [ flow_node fluid_5 t_u head | fluid_3 ]
+ up [ flow_node no flow_up no t_u fluid_2 | fluid_4 head ] -> [ flow_node fluid_6 t_u head | fluid_4 ]
+ up [ flow_node no flow_up no t_u fluid_2 | fluid_5 head ] -> [ flow_node fluid_7 t_u head | fluid_5 ]
+ up [ flow_node no flow_up no t_u fluid_2 | fluid_6 head ] -> [ flow_node fluid_7 t_u head | fluid_6 ]
+ up [ flow_node no flow_up no t_u fluid_2 | fluid_7 head ] -> [ flow_node fluid_7 t_u head | fluid_7 ]
+ up [ flow_node no flow_up no t_u fluid_3 | fluid_1 head ] -> [ flow_node fluid_4 t_u head | fluid_1 ]
+ up [ flow_node no flow_up no t_u fluid_3 | fluid_2 head ] -> [ flow_node fluid_5 t_u head | fluid_2 ]
+ up [ flow_node no flow_up no t_u fluid_3 | fluid_3 head ] -> [ flow_node fluid_6 t_u head | fluid_3 ]
+ up [ flow_node no flow_up no t_u fluid_3 | fluid_4 head ] -> [ flow_node fluid_7 t_u head | fluid_4 ]
+ up [ flow_node no flow_up no t_u fluid_3 | fluid_5 head ] -> [ flow_node fluid_7 t_u head | fluid_5 ]
+ up [ flow_node no flow_up no t_u fluid_3 | fluid_6 head ] -> [ flow_node fluid_7 t_u head | fluid_6 ]
+ up [ flow_node no flow_up no t_u fluid_3 | fluid_7 head ] -> [ flow_node fluid_7 t_u head | fluid_7 ]
+ up [ flow_node no flow_up no t_u fluid_4 | fluid_1 head ] -> [ flow_node fluid_5 t_u head | fluid_1 ]
+ up [ flow_node no flow_up no t_u fluid_4 | fluid_2 head ] -> [ flow_node fluid_6 t_u head | fluid_2 ]
+ up [ flow_node no flow_up no t_u fluid_4 | fluid_3 head ] -> [ flow_node fluid_7 t_u head | fluid_3 ]
+ up [ flow_node no flow_up no t_u fluid_4 | fluid_4 head ] -> [ flow_node fluid_7 t_u head | fluid_4 ]
+ up [ flow_node no flow_up no t_u fluid_4 | fluid_5 head ] -> [ flow_node fluid_7 t_u head | fluid_5 ]
+ up [ flow_node no flow_up no t_u fluid_4 | fluid_6 head ] -> [ flow_node fluid_7 t_u head | fluid_6 ]
+ up [ flow_node no flow_up no t_u fluid_4 | fluid_7 head ] -> [ flow_node fluid_7 t_u head | fluid_7 ]
+ up [ flow_node no flow_up no t_u fluid_5 | fluid_1 head ] -> [ flow_node fluid_6 t_u head | fluid_1 ]
+ up [ flow_node no flow_up no t_u fluid_5 | fluid_2 head ] -> [ flow_node fluid_7 t_u head | fluid_2 ]
+ up [ flow_node no flow_up no t_u fluid_5 | fluid_3 head ] -> [ flow_node fluid_7 t_u head | fluid_3 ]
+ up [ flow_node no flow_up no t_u fluid_5 | fluid_4 head ] -> [ flow_node fluid_7 t_u head | fluid_4 ]
+ up [ flow_node no flow_up no t_u fluid_5 | fluid_5 head ] -> [ flow_node fluid_7 t_u head | fluid_5 ]
+ up [ flow_node no flow_up no t_u fluid_5 | fluid_6 head ] -> [ flow_node fluid_7 t_u head | fluid_6 ]
+ up [ flow_node no flow_up no t_u fluid_5 | fluid_7 head ] -> [ flow_node fluid_7 t_u head | fluid_7 ]
+ up [ flow_node no flow_up no t_u fluid_6 | fluid_1 head ] -> [ flow_node fluid_7 t_u head | fluid_1 ]
+ up [ flow_node no flow_up no t_u fluid_6 | fluid_2 head ] -> [ flow_node fluid_7 t_u head | fluid_2 ]
+ up [ flow_node no flow_up no t_u fluid_6 | fluid_3 head ] -> [ flow_node fluid_7 t_u head | fluid_3 ]
+ up [ flow_node no flow_up no t_u fluid_6 | fluid_4 head ] -> [ flow_node fluid_7 t_u head | fluid_4 ]
+ up [ flow_node no flow_up no t_u fluid_6 | fluid_5 head ] -> [ flow_node fluid_7 t_u head | fluid_5 ]
+ up [ flow_node no flow_up no t_u fluid_6 | fluid_6 head ] -> [ flow_node fluid_7 t_u head | fluid_6 ]
+ up [ flow_node no flow_up no t_u fluid_6 | fluid_7 head ] -> [ flow_node fluid_7 t_u head | fluid_7 ]
+ up [ flow_node no flow_up no t_u fluid_7 | fluid_1 head ] -> [ flow_node fluid_7 t_u head | fluid_1 ]
+ up [ flow_node no flow_up no t_u fluid_7 | fluid_2 head ] -> [ flow_node fluid_7 t_u head | fluid_2 ]
+ up [ flow_node no flow_up no t_u fluid_7 | fluid_3 head ] -> [ flow_node fluid_7 t_u head | fluid_3 ]
+ up [ flow_node no flow_up no t_u fluid_7 | fluid_4 head ] -> [ flow_node fluid_7 t_u head | fluid_4 ]
+ up [ flow_node no flow_up no t_u fluid_7 | fluid_5 head ] -> [ flow_node fluid_7 t_u head | fluid_5 ]
+ up [ flow_node no flow_up no t_u fluid_7 | fluid_6 head ] -> [ flow_node fluid_7 t_u head | fluid_6 ]
+ up [ flow_node no flow_up no t_u fluid_7 | fluid_7 head ] -> [ flow_node fluid_7 t_u head | fluid_7 ]
+ down [ flow_node no flow_down no t_d no fluid | fluid head ] -> [ flow_node fluid t_d head | fluid ]
+ down [ flow_node no flow_down no t_d fluid_1 | fluid_1 head ] -> [ flow_node fluid_2 t_d head | fluid_1 ]
+ down [ flow_node no flow_down no t_d fluid_1 | fluid_2 head ] -> [ flow_node fluid_3 t_d head | fluid_2 ]
+ down [ flow_node no flow_down no t_d fluid_1 | fluid_3 head ] -> [ flow_node fluid_4 t_d head | fluid_3 ]
+ down [ flow_node no flow_down no t_d fluid_1 | fluid_4 head ] -> [ flow_node fluid_5 t_d head | fluid_4 ]
+ down [ flow_node no flow_down no t_d fluid_1 | fluid_5 head ] -> [ flow_node fluid_6 t_d head | fluid_5 ]
+ down [ flow_node no flow_down no t_d fluid_1 | fluid_6 head ] -> [ flow_node fluid_7 t_d head | fluid_6 ]
+ down [ flow_node no flow_down no t_d fluid_1 | fluid_7 head ] -> [ flow_node fluid_7 t_d head | fluid_7 ]
+ down [ flow_node no flow_down no t_d fluid_2 | fluid_1 head ] -> [ flow_node fluid_3 t_d head | fluid_1 ]
+ down [ flow_node no flow_down no t_d fluid_2 | fluid_2 head ] -> [ flow_node fluid_4 t_d head | fluid_2 ]
+ down [ flow_node no flow_down no t_d fluid_2 | fluid_3 head ] -> [ flow_node fluid_5 t_d head | fluid_3 ]
+ down [ flow_node no flow_down no t_d fluid_2 | fluid_4 head ] -> [ flow_node fluid_6 t_d head | fluid_4 ]
+ down [ flow_node no flow_down no t_d fluid_2 | fluid_5 head ] -> [ flow_node fluid_7 t_d head | fluid_5 ]
+ down [ flow_node no flow_down no t_d fluid_2 | fluid_6 head ] -> [ flow_node fluid_7 t_d head | fluid_6 ]
+ down [ flow_node no flow_down no t_d fluid_2 | fluid_7 head ] -> [ flow_node fluid_7 t_d head | fluid_7 ]
+ down [ flow_node no flow_down no t_d fluid_3 | fluid_1 head ] -> [ flow_node fluid_4 t_d head | fluid_1 ]
+ down [ flow_node no flow_down no t_d fluid_3 | fluid_2 head ] -> [ flow_node fluid_5 t_d head | fluid_2 ]
+ down [ flow_node no flow_down no t_d fluid_3 | fluid_3 head ] -> [ flow_node fluid_6 t_d head | fluid_3 ]
+ down [ flow_node no flow_down no t_d fluid_3 | fluid_4 head ] -> [ flow_node fluid_7 t_d head | fluid_4 ]
+ down [ flow_node no flow_down no t_d fluid_3 | fluid_5 head ] -> [ flow_node fluid_7 t_d head | fluid_5 ]
+ down [ flow_node no flow_down no t_d fluid_3 | fluid_6 head ] -> [ flow_node fluid_7 t_d head | fluid_6 ]
+ down [ flow_node no flow_down no t_d fluid_3 | fluid_7 head ] -> [ flow_node fluid_7 t_d head | fluid_7 ]
+ down [ flow_node no flow_down no t_d fluid_4 | fluid_1 head ] -> [ flow_node fluid_5 t_d head | fluid_1 ]
+ down [ flow_node no flow_down no t_d fluid_4 | fluid_2 head ] -> [ flow_node fluid_6 t_d head | fluid_2 ]
+ down [ flow_node no flow_down no t_d fluid_4 | fluid_3 head ] -> [ flow_node fluid_7 t_d head | fluid_3 ]
+ down [ flow_node no flow_down no t_d fluid_4 | fluid_4 head ] -> [ flow_node fluid_7 t_d head | fluid_4 ]
+ down [ flow_node no flow_down no t_d fluid_4 | fluid_5 head ] -> [ flow_node fluid_7 t_d head | fluid_5 ]
+ down [ flow_node no flow_down no t_d fluid_4 | fluid_6 head ] -> [ flow_node fluid_7 t_d head | fluid_6 ]
+ down [ flow_node no flow_down no t_d fluid_4 | fluid_7 head ] -> [ flow_node fluid_7 t_d head | fluid_7 ]
+ down [ flow_node no flow_down no t_d fluid_5 | fluid_1 head ] -> [ flow_node fluid_6 t_d head | fluid_1 ]
+ down [ flow_node no flow_down no t_d fluid_5 | fluid_2 head ] -> [ flow_node fluid_7 t_d head | fluid_2 ]
+ down [ flow_node no flow_down no t_d fluid_5 | fluid_3 head ] -> [ flow_node fluid_7 t_d head | fluid_3 ]
+ down [ flow_node no flow_down no t_d fluid_5 | fluid_4 head ] -> [ flow_node fluid_7 t_d head | fluid_4 ]
+ down [ flow_node no flow_down no t_d fluid_5 | fluid_5 head ] -> [ flow_node fluid_7 t_d head | fluid_5 ]
+ down [ flow_node no flow_down no t_d fluid_5 | fluid_6 head ] -> [ flow_node fluid_7 t_d head | fluid_6 ]
+ down [ flow_node no flow_down no t_d fluid_5 | fluid_7 head ] -> [ flow_node fluid_7 t_d head | fluid_7 ]
+ down [ flow_node no flow_down no t_d fluid_6 | fluid_1 head ] -> [ flow_node fluid_7 t_d head | fluid_1 ]
+ down [ flow_node no flow_down no t_d fluid_6 | fluid_2 head ] -> [ flow_node fluid_7 t_d head | fluid_2 ]
+ down [ flow_node no flow_down no t_d fluid_6 | fluid_3 head ] -> [ flow_node fluid_7 t_d head | fluid_3 ]
+ down [ flow_node no flow_down no t_d fluid_6 | fluid_4 head ] -> [ flow_node fluid_7 t_d head | fluid_4 ]
+ down [ flow_node no flow_down no t_d fluid_6 | fluid_5 head ] -> [ flow_node fluid_7 t_d head | fluid_5 ]
+ down [ flow_node no flow_down no t_d fluid_6 | fluid_6 head ] -> [ flow_node fluid_7 t_d head | fluid_6 ]
+ down [ flow_node no flow_down no t_d fluid_6 | fluid_7 head ] -> [ flow_node fluid_7 t_d head | fluid_7 ]
+ down [ flow_node no flow_down no t_d fluid_7 | fluid_1 head ] -> [ flow_node fluid_7 t_d head | fluid_1 ]
+ down [ flow_node no flow_down no t_d fluid_7 | fluid_2 head ] -> [ flow_node fluid_7 t_d head | fluid_2 ]
+ down [ flow_node no flow_down no t_d fluid_7 | fluid_3 head ] -> [ flow_node fluid_7 t_d head | fluid_3 ]
+ down [ flow_node no flow_down no t_d fluid_7 | fluid_4 head ] -> [ flow_node fluid_7 t_d head | fluid_4 ]
+ down [ flow_node no flow_down no t_d fluid_7 | fluid_5 head ] -> [ flow_node fluid_7 t_d head | fluid_5 ]
+ down [ flow_node no flow_down no t_d fluid_7 | fluid_6 head ] -> [ flow_node fluid_7 t_d head | fluid_6 ]
+ down [ flow_node no flow_down no t_d fluid_7 | fluid_7 head ] -> [ flow_node fluid_7 t_d head | fluid_7 ]
+ left [ flow_node no flow_left no t_l no fluid | fluid head ] -> [ flow_node fluid t_l head | fluid ]
+ left [ flow_node no flow_left no t_l fluid_1 | fluid_1 head ] -> [ flow_node fluid_2 t_l head | fluid_1 ]
+ left [ flow_node no flow_left no t_l fluid_1 | fluid_2 head ] -> [ flow_node fluid_3 t_l head | fluid_2 ]
+ left [ flow_node no flow_left no t_l fluid_1 | fluid_3 head ] -> [ flow_node fluid_4 t_l head | fluid_3 ]
+ left [ flow_node no flow_left no t_l fluid_1 | fluid_4 head ] -> [ flow_node fluid_5 t_l head | fluid_4 ]
+ left [ flow_node no flow_left no t_l fluid_1 | fluid_5 head ] -> [ flow_node fluid_6 t_l head | fluid_5 ]
+ left [ flow_node no flow_left no t_l fluid_1 | fluid_6 head ] -> [ flow_node fluid_7 t_l head | fluid_6 ]
+ left [ flow_node no flow_left no t_l fluid_1 | fluid_7 head ] -> [ flow_node fluid_7 t_l head | fluid_7 ]
+ left [ flow_node no flow_left no t_l fluid_2 | fluid_1 head ] -> [ flow_node fluid_3 t_l head | fluid_1 ]
+ left [ flow_node no flow_left no t_l fluid_2 | fluid_2 head ] -> [ flow_node fluid_4 t_l head | fluid_2 ]
+ left [ flow_node no flow_left no t_l fluid_2 | fluid_3 head ] -> [ flow_node fluid_5 t_l head | fluid_3 ]
+ left [ flow_node no flow_left no t_l fluid_2 | fluid_4 head ] -> [ flow_node fluid_6 t_l head | fluid_4 ]
+ left [ flow_node no flow_left no t_l fluid_2 | fluid_5 head ] -> [ flow_node fluid_7 t_l head | fluid_5 ]
+ left [ flow_node no flow_left no t_l fluid_2 | fluid_6 head ] -> [ flow_node fluid_7 t_l head | fluid_6 ]
+ left [ flow_node no flow_left no t_l fluid_2 | fluid_7 head ] -> [ flow_node fluid_7 t_l head | fluid_7 ]
+ left [ flow_node no flow_left no t_l fluid_3 | fluid_1 head ] -> [ flow_node fluid_4 t_l head | fluid_1 ]
+ left [ flow_node no flow_left no t_l fluid_3 | fluid_2 head ] -> [ flow_node fluid_5 t_l head | fluid_2 ]
+ left [ flow_node no flow_left no t_l fluid_3 | fluid_3 head ] -> [ flow_node fluid_6 t_l head | fluid_3 ]
+ left [ flow_node no flow_left no t_l fluid_3 | fluid_4 head ] -> [ flow_node fluid_7 t_l head | fluid_4 ]
+ left [ flow_node no flow_left no t_l fluid_3 | fluid_5 head ] -> [ flow_node fluid_7 t_l head | fluid_5 ]
+ left [ flow_node no flow_left no t_l fluid_3 | fluid_6 head ] -> [ flow_node fluid_7 t_l head | fluid_6 ]
+ left [ flow_node no flow_left no t_l fluid_3 | fluid_7 head ] -> [ flow_node fluid_7 t_l head | fluid_7 ]
+ left [ flow_node no flow_left no t_l fluid_4 | fluid_1 head ] -> [ flow_node fluid_5 t_l head | fluid_1 ]
+ left [ flow_node no flow_left no t_l fluid_4 | fluid_2 head ] -> [ flow_node fluid_6 t_l head | fluid_2 ]
+ left [ flow_node no flow_left no t_l fluid_4 | fluid_3 head ] -> [ flow_node fluid_7 t_l head | fluid_3 ]
+ left [ flow_node no flow_left no t_l fluid_4 | fluid_4 head ] -> [ flow_node fluid_7 t_l head | fluid_4 ]
+ left [ flow_node no flow_left no t_l fluid_4 | fluid_5 head ] -> [ flow_node fluid_7 t_l head | fluid_5 ]
+ left [ flow_node no flow_left no t_l fluid_4 | fluid_6 head ] -> [ flow_node fluid_7 t_l head | fluid_6 ]
+ left [ flow_node no flow_left no t_l fluid_4 | fluid_7 head ] -> [ flow_node fluid_7 t_l head | fluid_7 ]
+ left [ flow_node no flow_left no t_l fluid_5 | fluid_1 head ] -> [ flow_node fluid_6 t_l head | fluid_1 ]
+ left [ flow_node no flow_left no t_l fluid_5 | fluid_2 head ] -> [ flow_node fluid_7 t_l head | fluid_2 ]
+ left [ flow_node no flow_left no t_l fluid_5 | fluid_3 head ] -> [ flow_node fluid_7 t_l head | fluid_3 ]
+ left [ flow_node no flow_left no t_l fluid_5 | fluid_4 head ] -> [ flow_node fluid_7 t_l head | fluid_4 ]
+ left [ flow_node no flow_left no t_l fluid_5 | fluid_5 head ] -> [ flow_node fluid_7 t_l head | fluid_5 ]
+ left [ flow_node no flow_left no t_l fluid_5 | fluid_6 head ] -> [ flow_node fluid_7 t_l head | fluid_6 ]
+ left [ flow_node no flow_left no t_l fluid_5 | fluid_7 head ] -> [ flow_node fluid_7 t_l head | fluid_7 ]
+ left [ flow_node no flow_left no t_l fluid_6 | fluid_1 head ] -> [ flow_node fluid_7 t_l head | fluid_1 ]
+ left [ flow_node no flow_left no t_l fluid_6 | fluid_2 head ] -> [ flow_node fluid_7 t_l head | fluid_2 ]
+ left [ flow_node no flow_left no t_l fluid_6 | fluid_3 head ] -> [ flow_node fluid_7 t_l head | fluid_3 ]
+ left [ flow_node no flow_left no t_l fluid_6 | fluid_4 head ] -> [ flow_node fluid_7 t_l head | fluid_4 ]
+ left [ flow_node no flow_left no t_l fluid_6 | fluid_5 head ] -> [ flow_node fluid_7 t_l head | fluid_5 ]
+ left [ flow_node no flow_left no t_l fluid_6 | fluid_6 head ] -> [ flow_node fluid_7 t_l head | fluid_6 ]
+ left [ flow_node no flow_left no t_l fluid_6 | fluid_7 head ] -> [ flow_node fluid_7 t_l head | fluid_7 ]
+ left [ flow_node no flow_left no t_l fluid_7 | fluid_1 head ] -> [ flow_node fluid_7 t_l head | fluid_1 ]
+ left [ flow_node no flow_left no t_l fluid_7 | fluid_2 head ] -> [ flow_node fluid_7 t_l head | fluid_2 ]
+ left [ flow_node no flow_left no t_l fluid_7 | fluid_3 head ] -> [ flow_node fluid_7 t_l head | fluid_3 ]
+ left [ flow_node no flow_left no t_l fluid_7 | fluid_4 head ] -> [ flow_node fluid_7 t_l head | fluid_4 ]
+ left [ flow_node no flow_left no t_l fluid_7 | fluid_5 head ] -> [ flow_node fluid_7 t_l head | fluid_5 ]
+ left [ flow_node no flow_left no t_l fluid_7 | fluid_6 head ] -> [ flow_node fluid_7 t_l head | fluid_6 ]
+ left [ flow_node no flow_left no t_l fluid_7 | fluid_7 head ] -> [ flow_node fluid_7 t_l head | fluid_7 ]
+ right [ flow_node no flow_right no t_r no fluid | fluid head ] -> [ flow_node fluid t_r head | fluid ]
+ right [ flow_node no flow_right no t_r fluid_1 | fluid_1 head ] -> [ flow_node fluid_2 t_r head | fluid_1 ]
+ right [ flow_node no flow_right no t_r fluid_1 | fluid_2 head ] -> [ flow_node fluid_3 t_r head | fluid_2 ]
+ right [ flow_node no flow_right no t_r fluid_1 | fluid_3 head ] -> [ flow_node fluid_4 t_r head | fluid_3 ]
+ right [ flow_node no flow_right no t_r fluid_1 | fluid_4 head ] -> [ flow_node fluid_5 t_r head | fluid_4 ]
+ right [ flow_node no flow_right no t_r fluid_1 | fluid_5 head ] -> [ flow_node fluid_6 t_r head | fluid_5 ]
+ right [ flow_node no flow_right no t_r fluid_1 | fluid_6 head ] -> [ flow_node fluid_7 t_r head | fluid_6 ]
+ right [ flow_node no flow_right no t_r fluid_1 | fluid_7 head ] -> [ flow_node fluid_7 t_r head | fluid_7 ]
+ right [ flow_node no flow_right no t_r fluid_2 | fluid_1 head ] -> [ flow_node fluid_3 t_r head | fluid_1 ]
+ right [ flow_node no flow_right no t_r fluid_2 | fluid_2 head ] -> [ flow_node fluid_4 t_r head | fluid_2 ]
+ right [ flow_node no flow_right no t_r fluid_2 | fluid_3 head ] -> [ flow_node fluid_5 t_r head | fluid_3 ]
+ right [ flow_node no flow_right no t_r fluid_2 | fluid_4 head ] -> [ flow_node fluid_6 t_r head | fluid_4 ]
+ right [ flow_node no flow_right no t_r fluid_2 | fluid_5 head ] -> [ flow_node fluid_7 t_r head | fluid_5 ]
+ right [ flow_node no flow_right no t_r fluid_2 | fluid_6 head ] -> [ flow_node fluid_7 t_r head | fluid_6 ]
+ right [ flow_node no flow_right no t_r fluid_2 | fluid_7 head ] -> [ flow_node fluid_7 t_r head | fluid_7 ]
+ right [ flow_node no flow_right no t_r fluid_3 | fluid_1 head ] -> [ flow_node fluid_4 t_r head | fluid_1 ]
+ right [ flow_node no flow_right no t_r fluid_3 | fluid_2 head ] -> [ flow_node fluid_5 t_r head | fluid_2 ]
+ right [ flow_node no flow_right no t_r fluid_3 | fluid_3 head ] -> [ flow_node fluid_6 t_r head | fluid_3 ]
+ right [ flow_node no flow_right no t_r fluid_3 | fluid_4 head ] -> [ flow_node fluid_7 t_r head | fluid_4 ]
+ right [ flow_node no flow_right no t_r fluid_3 | fluid_5 head ] -> [ flow_node fluid_7 t_r head | fluid_5 ]
+ right [ flow_node no flow_right no t_r fluid_3 | fluid_6 head ] -> [ flow_node fluid_7 t_r head | fluid_6 ]
+ right [ flow_node no flow_right no t_r fluid_3 | fluid_7 head ] -> [ flow_node fluid_7 t_r head | fluid_7 ]
+ right [ flow_node no flow_right no t_r fluid_4 | fluid_1 head ] -> [ flow_node fluid_5 t_r head | fluid_1 ]
+ right [ flow_node no flow_right no t_r fluid_4 | fluid_2 head ] -> [ flow_node fluid_6 t_r head | fluid_2 ]
+ right [ flow_node no flow_right no t_r fluid_4 | fluid_3 head ] -> [ flow_node fluid_7 t_r head | fluid_3 ]
+ right [ flow_node no flow_right no t_r fluid_4 | fluid_4 head ] -> [ flow_node fluid_7 t_r head | fluid_4 ]
+ right [ flow_node no flow_right no t_r fluid_4 | fluid_5 head ] -> [ flow_node fluid_7 t_r head | fluid_5 ]
+ right [ flow_node no flow_right no t_r fluid_4 | fluid_6 head ] -> [ flow_node fluid_7 t_r head | fluid_6 ]
+ right [ flow_node no flow_right no t_r fluid_4 | fluid_7 head ] -> [ flow_node fluid_7 t_r head | fluid_7 ]
+ right [ flow_node no flow_right no t_r fluid_5 | fluid_1 head ] -> [ flow_node fluid_6 t_r head | fluid_1 ]
+ right [ flow_node no flow_right no t_r fluid_5 | fluid_2 head ] -> [ flow_node fluid_7 t_r head | fluid_2 ]
+ right [ flow_node no flow_right no t_r fluid_5 | fluid_3 head ] -> [ flow_node fluid_7 t_r head | fluid_3 ]
+ right [ flow_node no flow_right no t_r fluid_5 | fluid_4 head ] -> [ flow_node fluid_7 t_r head | fluid_4 ]
+ right [ flow_node no flow_right no t_r fluid_5 | fluid_5 head ] -> [ flow_node fluid_7 t_r head | fluid_5 ]
+ right [ flow_node no flow_right no t_r fluid_5 | fluid_6 head ] -> [ flow_node fluid_7 t_r head | fluid_6 ]
+ right [ flow_node no flow_right no t_r fluid_5 | fluid_7 head ] -> [ flow_node fluid_7 t_r head | fluid_7 ]
+ right [ flow_node no flow_right no t_r fluid_6 | fluid_1 head ] -> [ flow_node fluid_7 t_r head | fluid_1 ]
+ right [ flow_node no flow_right no t_r fluid_6 | fluid_2 head ] -> [ flow_node fluid_7 t_r head | fluid_2 ]
+ right [ flow_node no flow_right no t_r fluid_6 | fluid_3 head ] -> [ flow_node fluid_7 t_r head | fluid_3 ]
+ right [ flow_node no flow_right no t_r fluid_6 | fluid_4 head ] -> [ flow_node fluid_7 t_r head | fluid_4 ]
+ right [ flow_node no flow_right no t_r fluid_6 | fluid_5 head ] -> [ flow_node fluid_7 t_r head | fluid_5 ]
+ right [ flow_node no flow_right no t_r fluid_6 | fluid_6 head ] -> [ flow_node fluid_7 t_r head | fluid_6 ]
+ right [ flow_node no flow_right no t_r fluid_6 | fluid_7 head ] -> [ flow_node fluid_7 t_r head | fluid_7 ]
+ right [ flow_node no flow_right no t_r fluid_7 | fluid_1 head ] -> [ flow_node fluid_7 t_r head | fluid_1 ]
+ right [ flow_node no flow_right no t_r fluid_7 | fluid_2 head ] -> [ flow_node fluid_7 t_r head | fluid_2 ]
+ right [ flow_node no flow_right no t_r fluid_7 | fluid_3 head ] -> [ flow_node fluid_7 t_r head | fluid_3 ]
+ right [ flow_node no flow_right no t_r fluid_7 | fluid_4 head ] -> [ flow_node fluid_7 t_r head | fluid_4 ]
+ right [ flow_node no flow_right no t_r fluid_7 | fluid_5 head ] -> [ flow_node fluid_7 t_r head | fluid_5 ]
+ right [ flow_node no flow_right no t_r fluid_7 | fluid_6 head ] -> [ flow_node fluid_7 t_r head | fluid_6 ]
+ right [ flow_node no flow_right no t_r fluid_7 | fluid_7 head ] -> [ flow_node fluid_7 t_r head | fluid_7 ]
(flow from nodes)
+ [ flow_node > flow fluid_1 head | flow no obstacle no fluid_gt1 ] -> [ flow_node > flow fluid_1 head | flow fluid_1 action head]
+ [ flow_node > flow fluid_2 head | flow no obstacle no fluid_gt2 ] -> [ flow_node > flow fluid_2 head | flow fluid_2 action head]
+ [ flow_node > flow fluid_3 head | flow no obstacle no fluid_gt3 ] -> [ flow_node > flow fluid_3 head | flow fluid_3 action head]
+ [ flow_node > flow fluid_4 head | flow no obstacle no fluid_gt4 ] -> [ flow_node > flow fluid_4 head | flow fluid_4 action head]
+ [ flow_node > flow fluid_5 head | flow no obstacle no fluid_gt5 ] -> [ flow_node > flow fluid_5 head | flow fluid_5 action head]
+ [ flow_node > flow fluid_6 head | flow no obstacle no fluid_gt6 ] -> [ flow_node > flow fluid_6 head| flow fluid_6 action head]
+ [ flow_node > flow fluid_7 head | flow no obstacle ] -> [ flow_node > flow fluid_7 head| flow fluid_7 action head]
+ [ flow_node stationary head ] -> [ flow_node ]
+ [ > flow fluid head | flow no flow_node no fluid no obstacle ] -> [ > flow fluid | flow fluid head ]
+ [ > flow fluid_2 head | flow no flow_node no obstacle fluid_1 ] -> [ > flow fluid_2 | flow fluid_2 head ]
+ [ > flow fluid_3 | flow no flow_node no obstacle no fluid_gt2 ] -> [ > flow fluid_3 | flow fluid_3 ]
+ [ > flow fluid_4 | flow no flow_node no obstacle no fluid_gt3 ] -> [ > flow fluid_4 | flow fluid_4 ]
+ [ > flow fluid_5 | flow no flow_node no obstacle no fluid_gt4 ] -> [ > flow fluid_5 | flow fluid_5 ]
+ [ > flow fluid_6 | flow no flow_node no obstacle no fluid_gt5 ] -> [ > flow fluid_6 | flow fluid_6 ]
+ [ > flow fluid_7 | flow no flow_node no obstacle no fluid_7 ] -> [ > flow fluid_7 | flow fluid_7 ]
[ head ] -> [ ]
[ t ] -> [ ]
endloop
[ propagated ] -> [ ]
(remove movements from flows)
[ moving flow ] -> [ stationary flow ]
==============
WINCONDITIONS
==============
=======
LEVELS
=======
##########
#....d...#
#........#
#..r.....#
#........#
#...p....#
#........#
##########
##########
#....d.d.#
#........#
#..r.....#
#........#
#...p....#
#........#
##########
##########
#......d.#
#........#
#...r....#
#........#
#...pu...#
#........#
##########
#########
#.......#
#....d..#
#.......#
#.......#
#..pr...#
#.......#
#########
##################
#................#
#................#
#................#
#.....pd...d.....#
#................#
#................#
#...r............#
#................#
#................#
#................#
#................#
##################
##################
#................#
#................#
#................#
#.....pd...d.....#
#................#
#................#
#...r............#
#................#
#................#
#................#
#................#
##################
##################
#................#
#..........d.....#
#..p.............#
#......d.........#
#.*...........l..#
#................#
#...r............#
#................#
#........u.......#
#....u...........#
#................#
##################
##################
#.d..............#
#...............l#
#................#
#......d...d.....#
#...r............#
#................#
#...u............#
#................#
#..p..........u..#
#................#
#................#
##################
##########
#........#
#.......l#
#........#
#.r......#
#p.......#
#........#
##########
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment