You are not logged in. login register
Game platformjumpers
name platformjumpers
creator stephan
number of roles 2
stylesheet generic/generic.xsl
GDL v1
enabled
matches show matches
statistics show game statistics
description This game involves two phases of play. During the first phase, players effectively construct two separate boards by coloring in squares on the board an entire row or column at a time. A tile that is already colored no longer changes color. During the second phase, pieces can only move to a tile with the same color that they start on. The second phase begins once the board has been completely colored. In the second phase players can make pawn moves and forward-only knight moves with their pieces. The game ends once a player gets a piece to the other side or once a player can not make a move on his turn. by: Peter Pham

Game Description


( role red )
( role blue )

( init ( jumper red 1 1 ) )
( init ( jumper red 1 3 ) )
( init ( jumper red 1 5 ) )
( init ( jumper red 1 7 ) )
( init ( jumper red 1 9 ) )
( init ( jumper blue 10 2 ) )
( init ( jumper blue 10 4 ) )
( init ( jumper blue 10 6 ) )
( init ( jumper blue 10 8 ) )
( init ( jumper blue 10 10 ) )
( init ( control red ) )
( init ( coled 5 ) )
( init ( coled 6 ) )
( init ( cell blue 1 5 ) )
( init ( cell blue 2 5 ) )
( init ( cell blue 3 5 ) )
( init ( cell blue 4 5 ) )
( init ( cell blue 5 5 ) )
( init ( cell blue 6 5 ) )
( init ( cell blue 7 5 ) )
( init ( cell blue 8 5 ) )
( init ( cell blue 9 5 ) )
( init ( cell blue 10 5 ) )
( init ( cell red 1 6 ) )
( init ( cell red 2 6 ) )
( init ( cell red 3 6 ) )
( init ( cell red 4 6 ) )
( init ( cell red 5 6 ) )
( init ( cell red 6 6 ) )
( init ( cell red 7 6 ) )
( init ( cell red 8 6 ) )
( init ( cell red 9 6 ) )
( init ( cell red 10 6 ) )


( goal_row red 10 ) 
( goal_row blue 1 )

( index 1 )
( index 2 )
( index 3 )
( index 4 )
( index 5 )
( index 6 )
( index 7 )
( index 8 )
( index 9 )
( index 10 )
;( index 11 )
;( index 12 )
;( index 13 )
;( index 14 )
;( index 15 )
;( index 16 )

( board_succ 1 2 )
( board_succ 2 3 )
( board_succ 3 4 )
( board_succ 4 5 )
( board_succ 5 6 )
( board_succ 6 7 )
( board_succ 7 8 )
( board_succ 8 9 )
( board_succ 9 10 )
;( board_succ 10 11 )
;( board_succ 11 12 )
;( board_succ 12 13 )
;( board_succ 13 14 )
;( board_succ 14 15 )
;( board_succ 15 16 )

( board_succ_two 1 3 )
( board_succ_two 2 4 )
( board_succ_two 3 5 )
( board_succ_two 4 6 )
( board_succ_two 5 7 )
( board_succ_two 6 8 )
( board_succ_two 7 9 )
( board_succ_two 8 10 )
;( board_succ_two 9 11 )
;( board_succ_two 10 12 )
;( board_succ_two 11 13 )
;( board_succ_two 12 14 )
;( board_succ_two 13 15 )
;( board_succ_two 14 16 )

( <= ( knights_move_up ?i ?j ?m ?n ) ( board_succ_two ?i ?m ) ( board_succ ?j ?n ) )
( <= ( knights_move_up ?i ?j ?m ?n ) ( board_succ ?i ?m ) ( board_succ_two ?j ?n ) )
( <= ( knights_move_up ?i ?j ?m ?n ) ( board_succ_two ?i ?m ) ( board_succ ?n ?j ) )
( <= ( knights_move_up ?i ?j ?m ?n ) ( board_succ ?i ?m ) ( board_succ_two ?n ?j ) )
( <= ( slow_move_up ?i ?j ?m ?j ) ( board_succ ?i ?m ) ( index ?j ) )
( <= ( slow_move_up ?i ?j ?m ?n ) ( board_succ ?i ?m ) ( board_succ ?j ?n ) )
( <= ( slow_move_up ?i ?j ?m ?n ) ( board_succ ?i ?m ) ( board_succ ?n ?j ) )
( <= ( knights_move_down ?i ?j ?m ?n ) ( board_succ_two ?m ?i ) ( board_succ ?n ?j ) )
( <= ( knights_move_down ?i ?j ?m ?n ) ( board_succ ?m ?i ) ( board_succ_two ?n ?j ) )
( <= ( knights_move_down ?i ?j ?m ?n ) ( board_succ_two ?m ?i ) ( board_succ ?j ?n ) )
( <= ( knights_move_down ?i ?j ?m ?n ) ( board_succ ?m ?i ) ( board_succ_two ?j ?n ) )
( <= ( slow_move_down ?i ?j ?m ?j ) ( board_succ ?m ?i ) ( index ?j ) )
( <= ( slow_move_down ?i ?j ?m ?n ) ( board_succ ?m ?i ) ( board_succ ?j ?n ) )
( <= ( slow_move_down ?i ?j ?m ?n ) ( board_succ ?m ?i ) ( board_succ ?n ?j ) )

( <= ( base ( cell ?r ?i ?j ) ) ( role ?r ) ( index ?i ) ( index ?j ) )
( <= ( base ( jumper ?r ?i ?j ) ) ( role ?r ) ( index ?i ) ( index ?j ) )
( <= ( base ( rowed ?i ) ) ( index ?i ) )
( <= ( base ( coled ?j ) ) ( index ?j ) )
( <= ( base ( control ?r ) ) ( role ?r ) )

( <= ( input ?r ( jump ?i ?j ?m ?n ) ) ( role ?r ) ( index ?i ) ( index ?j ) ( index ?m ) ( index ?n ) )
( <= ( input ?r ( row ?i ) ) ( role ?r ) ( index ?i ) )
( <= ( input ?r ( col ?j ) ) ( role ?r ) ( index ?j ) )
( <= ( input ?r noop ) ( role ?r ) )

( <= ( has_piece ?i ?j ) ( true ( jumper ?r ?i ?j ) ) )

( <= ( same_color ?i ?j ?m ?n ) ( true ( cell ?c ?i ?j ) ) ( true ( cell ?c ?m ?n ) ) )

( <= ( legal_row ?r ?i ) ( true ( control ?r ) ) ( index ?i ) ( not ( true ( rowed ?i ) ) ) )
( <= ( legal_col ?r ?j ) ( true ( control ?r ) ) ( index ?j ) ( not ( true ( coled ?j ) ) ) )
( <= ( valid_move red ?i ?j ?m ?n ) ( knights_move_down ?i ?j ?m ?n ) )
( <= ( valid_move red ?i ?j ?m ?n ) ( slow_move_down ?i ?j ?m ?n ) )
( <= ( valid_move blue ?i ?j ?m ?n ) ( knights_move_up ?i ?j ?m ?n ) )
( <= ( valid_move blue ?i ?j ?m ?n ) ( slow_move_up ?i ?j ?m ?n ) )
( <= ( jump_legal ?p ?i ?j ?m ?n ) ( valid_move ?p ?i ?j ?m ?n ) ( can_jump ?p ) ( same_color ?i ?j ?m ?n ) ( true ( jumper ?p ?m ?n ) ) ( not ( has_piece ?i ?j ) ) )

( <= ( can_jump ?r ) ( true ( control ?r ) ) ( not ( more_marks ?r ) ) )

( <= ( more_marks ?r ) ( legal_row ?r ?i ) )
( <= ( more_marks ?r ) ( legal_col ?r ?j ) )

( <= ( has_action ?r ) ( more_marks ?r ) )
( <= ( has_action ?r ) ( jump_legal ?r ?i ?j ?m ?n ) )

( <= ( legal ?r ( row ?i ) ) ( legal_row ?r ?i ) )
( <= ( legal ?r ( col ?j ) ) ( legal_col ?r ?j ) )

( <= ( moved ?m ?n ) ( does ?p ( jump ?i ?j ?m ?n ) ) )

( <= ( legal ?r ( jump ?i ?j ?m ?n ) ) ( jump_legal ?r ?i ?j ?m ?n ) )
( <= ( legal ?r noop ) ( role ?r ) ( not ( has_action ?r ) ) )

( <= ( filled ?i ?j ) ( true ( cell ?r ?i ?j ) ) )
( <= ( next ( cell ?r ?i ?j ) ) ( true ( cell ?r ?i ?j ) ) )
( <= ( next ( cell ?r ?i ?j ) ) ( does ?r ( row ?i ) ) ( index ?j ) ( not ( filled ?i ?j ) ) )
( <= ( next ( cell ?r ?i ?j ) ) ( does ?r ( col ?j ) ) ( index ?i ) ( not ( filled ?i ?j ) ) )

( <= ( next ( rowed ?i ) ) ( does ?r ( row ?i ) ) )
( <= ( next ( coled ?j ) ) ( does ?r ( col ?j ) ) )
( <= ( next ( rowed ?i ) ) ( true ( rowed ?i ) ) )
( <= ( next ( coled ?j ) ) ( true ( coled ?j ) ) )

( <= ( next ( control red ) ) ( true ( control blue ) ) )
( <= ( next ( control blue ) ) ( true ( control red ) ) )

( <= ( next ( jumper ?p ?i ?j ) ) ( true ( jumper ?p ?i ?j ) ) ( not ( moved ?i ?j ) ) )
( <= ( next ( jumper ?p ?i ?j ) ) ( does ?p ( jump ?i ?j ?m ?n ) ) )

( <= ( pos_achieved ?r ) ( role ?r ) ( true ( jumper ?r ?i ?j ) ) ( goal_row ?r ?i ) )

( <= terminal ( pos_achieved ?r ) ) 
( <= terminal ( not ( has_action red ) ) ( not ( has_action blue ) ) )

( <= ( some_pos_achieved ) ( pos_achieved ?r ) )
( <= ( goal ?r 100 ) ( pos_achieved ?r ) )
( <= ( goal ?r 50 ) ( role ?r ) ( not ( some_pos_achieved ) ) )
( <= ( goal ?r 0 ) ( role ?r ) ( some_pos_achieved ) ( not ( pos_achieved ?r ) ) )

sees_XML(...) rules

(<= (sees_xml random ?t) (true ?t))
(<= (sees_xml ?p ?t) (role ?p) (distinct ?p random) (true ?t))