You are not logged in. login register
Game towerworld
name towerworld
creator stephan
number of roles 2
stylesheet generic/generic.xsl
GDL v1
enabled
matches show matches
statistics show game statistics
description A 2 player board game, where both players have a knight figure with which they have to jump from tower to tower in order to reach their opponent's start line. At the same time, both players have to try and prevent each other from doing the above. If you are the first player to place a tower on your opponent's start line and occupy it with your knight, you win the game.

The game was invented by Thomas Brunner.
The board game can be ordered here: http://www.intellego-holzspiele.de/
GDL by: Gernot Ruscher gernot(dot)ruscher(at)googlemail(dot)com
Copyright: intellego holzspiele

Game Description

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; TowerWorld 
;;;
;;; A 2 player board game, where both players have a knight figure with which 
;;; they have to jump from tower to tower in order to reach their opponent's 
;;; start line. At the same time, both players have to try and prevent each 
;;; other from doing the above. If you are the first player to place a tower 
;;; on your opponent's start line and occupy it with your knight, you win the 
;;; game. 
;;;
;;; The game was invented by Thomas Brunner.
;;; The board game can be ordered here: http://www.intellego-holzspiele.de/
;;; GDL by: Gernot Ruscher gernot(dot)ruscher(at)googlemail(dot)com
;;; Copyright: intellego holzspiele
;;;  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(role Wplayer)
(role Bplayer)

(init (cell 1 1 B1tower))
(init (cell 1 2 B1tower))
(init (cell 1 3 B2tower))
(init (cell 1 4 B3tower))
(init (cell 1 5 B3tower))
(init (cell 1 6 B2tower))
(init (cell 1 7 B1tower))
(init (cell 1 8 B1tower))

(init (cell 2 1 free))  (init (cell 3 1 free))   (init (cell 4 1 free))
(init (cell 2 2 free))  (init (cell 3 2 free))   (init (cell 4 2 free))
(init (cell 2 3 free))  (init (cell 3 3 free))   (init (cell 4 3 free))
(init (cell 2 4 free))  (init (cell 3 4 free))   (init (cell 4 4 free))
(init (cell 2 5 free))  (init (cell 3 5 free))   (init (cell 4 5 free))
(init (cell 2 6 free))  (init (cell 3 6 free))   (init (cell 4 6 free))
(init (cell 2 7 free))  (init (cell 3 7 free))   (init (cell 4 7 free))
(init (cell 2 8 free))  (init (cell 3 8 free))   (init (cell 4 8 free))

(init (cell 5 1 free))  (init (cell 6 1 free))   (init (cell 7 1 free))
(init (cell 5 2 free))  (init (cell 6 2 free))   (init (cell 7 2 free))
(init (cell 5 3 free))  (init (cell 6 3 free))   (init (cell 7 3 free))
(init (cell 5 4 free))  (init (cell 6 4 free))   (init (cell 7 4 free))
(init (cell 5 5 free))  (init (cell 6 5 free))   (init (cell 7 5 free))
(init (cell 5 6 free))  (init (cell 6 6 free))   (init (cell 7 6 free))
(init (cell 5 7 free))  (init (cell 6 7 free))   (init (cell 7 7 free))
(init (cell 5 8 free))  (init (cell 6 8 free))   (init (cell 7 8 free))

(init (cell 8 1 W1tower))
(init (cell 8 2 W1tower))
(init (cell 8 3 W2tower))
(init (cell 8 4 W3tower))
(init (cell 8 5 W3tower))
(init (cell 8 6 W2tower))
(init (cell 8 7 W1tower))
(init (cell 8 8 W1tower))

(init (placesknight Wplayer))

(init (step 1))

; Wplayer can't move when it's Bplayer's draw
(<= (legal Wplayer noop)
	(true (placesknight Bplayer)))
(<= (legal Bplayer noop)
	(true (placesknight Wplayer)))
(<= (legal Wplayer noop)
	(true (movestower Bplayer)))
(<= (legal Bplayer noop)
	(true (movestower Wplayer))) 
(<= (legal Wplayer noop)
	(true (movesknight Bplayer)))
(<= (legal Bplayer noop)
	(true (movesknight Wplayer)))
	
; rotatively moving knights and towers
(<= (next (placesknight Bplayer))
	(true (placesknight Wplayer)))

(<= (next (movestower Wplayer))
	(true (placesknight Bplayer)))

(<= (next (movesknight ?p)) 
	(true (movestower ?p)))
	
(<= (next (movestower Wplayer))
	(does Bplayer noop)
	(true (movesknight Bplayer)))

(<= (next (movestower Bplayer))
	(does Wplayer noop)
	(true (movesknight Wplayer)))

(<= (next (movesknight Wplayer))
	(does Wplayer (moveknight ?r ?c))
	(true (movesknight Wplayer)))

(<= (next (movesknight Bplayer))
	(does Bplayer (moveknight ?r ?c))
	(true (movesknight Bplayer)))

; when do players place a knight?
(<= (legal Wplayer (placeknight ?r ?c))
	(Wtower ?r ?c)
	(true (placesknight Wplayer)))
(<= (legal Bplayer (placeknight ?r ?c))
	(Btower ?r ?c)
	(true (placesknight Bplayer)))
	
; how do players place a knight?
(<= (next (Wknight ?r ?c))
	(does Wplayer (placeknight ?r ?c)))
(<= (next (Bknight ?r ?c))
	(does Bplayer (placeknight ?r ?c)))
(<= (next (cell ?r1 ?c1 ?tower))
	(true (cell ?r1 ?c1 ?tower))
	(does ?player (placeknight ?r ?c)))
(<= (next (Wknight ?r ?c))
	(true (Wknight ?r ?c))
	(does Bplayer (placeknight ?r1 ?c1)))

; when do players move a tower?
(<= (legal Wplayer (movetower ?r1 ?c1 ?r2 ?c2))
	(Wtower ?r1 ?c1)
	(not (true (Wknight ?r1 ?c1))) 
	(true (cell ?r2 ?c2 free))
	(distinctcell ?r1 ?c1 ?r2 ?c2)
	(true (movestower Wplayer))) 
(<= (legal Bplayer (movetower ?r1 ?c1 ?r2 ?c2))
	(Btower ?r1 ?c1)
	(not (true (Bknight ?r1 ?c1))) 
	(true (cell ?r2 ?c2 free))
	(distinctcell ?r1 ?c1 ?r2 ?c2)
	(true (movestower Bplayer)))

; how do players move a tower?
(<= (next (cell ?r2 ?c2 ?tower))
	(true (cell ?r1 ?c1 ?tower))
	(does ?player (movetower ?r1 ?c1 ?r2 ?c2)))
(<= (next (cell ?r1 ?c1 free))
	(does ?player (movetower ?r1 ?c1 ?r2 ?c2)))
(<= (next (cell ?r ?c ?tower))
	(does ?player (movetower ?r1 ?c1 ?r2 ?c2))
	(true (cell ?r ?c ?tower))
	(distinctcell ?r ?c ?r1 ?c1) 
	(distinctcell ?r ?c ?r2 ?c2))
(<= (next (Wknight ?r ?c))
	(does ?player (movetower ?r1 ?c1 ?r2 ?c2))
	(true (Wknight ?r ?c))) 
(<= (next (Bknight ?r ?c))
	(does ?player (movetower ?r1 ?c1 ?r2 ?c2))
	(true (Bknight ?r ?c))) 

; when do players move a knight?
(<= (legal Wplayer (moveknight ?r ?c))
	(Wtower ?r ?c)
	(not (true (Wknight ?r ?c)))
	(reachableforWknight ?r ?c)
	(true (movesknight Wplayer))
	(not (true (visited ?r ?c)))) 
(<= (legal Bplayer (moveknight ?r ?c))
	(Btower ?r ?c)
	(not (true (Bknight ?r ?c))) 
	(reachableforBknight ?r ?c)
	(true (movesknight Bplayer))
	(not (true (visited ?r ?c))))

; noop is always the end of a moveknight sequence
(<= (legal ?player noop)
	(true (movesknight ?player))) 

; how do players move a knight?
(<= (next (Wknight ?r ?c))
	(does Wplayer (moveknight ?r ?c))) 
(<= (next (Bknight ?r ?c))
	(does Bplayer (moveknight ?r ?c))) 

(<= (next (cell ?r ?c ?tower))
	(does ?player (moveknight ?r2 ?c2))
	(true (cell ?r ?c ?tower))) 
(<= (next (cell ?r ?c ?tower))
	(does ?player noop)
	(true (movesknight ?player))
	(true (cell ?r ?c ?tower)))
(<= (next (Wknight ?r ?c))
	(does ?player noop)
	(true (movesknight ?player))
	(true (Wknight ?r ?c)))
(<= (next (Bknight ?r ?c))
	(does ?player noop)
	(true (movesknight ?player))
	(true (Bknight ?r ?c)))
(<= (next (Wknight ?r ?c))
	(does Bplayer (moveknight ?r2 ?c2))
	(true (Wknight ?r ?c))) 
(<= (next (Bknight ?r ?c))
	(does Wplayer (moveknight ?r2 ?c2))
	(true (Bknight ?r ?c))) 

; which cells have been visited during moveknight sequence?
(<= (next (visited ?r ?c))
	(does Wplayer (moveknight ?r2 ?c2))
	(true (Wknight ?r ?c)))
(<= (next (visited ?r ?c))
	(does Bplayer (moveknight ?r2 ?c2))
	(true (Bknight ?r ?c)))
(<= (next (visited ?r ?c))
	(does Wplayer (moveknight ?r2 ?c2))
	(true (visited ?r ?c))
	(true (Wknight ?r1 ?c1)) 
	(distinctcell ?r ?c ?r1 ?c1))
(<= (next (visited ?r ?c))
	(does Bplayer (moveknight ?r2 ?c2))
	(true (visited ?r ?c))
	(true (Bknight ?r1 ?c1)) 
	(distinctcell ?r ?c ?r1 ?c1))

; which cells are currently reachable: Wknight
(<= (reachableforWknight ?r ?c)
	(oneaway ?r ?c ?r2 ?c2)
	(Wtower ?r ?c)
	(true (Wknight ?r2 ?c2)) 
	(true (cell ?r2 ?c2 W1tower))
	(distinctcell ?r ?c ?r2 ?c2)) 
(<= (reachableforWknight ?r ?c)
	(twoaway ?r ?c ?r2 ?c2)
	(Wtower ?r ?c)
	(true (Wknight ?r2 ?c2))
	(true (cell ?r2 ?c2 W2tower))
	(distinctcell ?r ?c ?r2 ?c2)) 
(<= (reachableforWknight ?r ?c)
	(threeaway ?r ?c ?r2 ?c2)
	(Wtower ?r ?c)
	(true (Wknight ?r2 ?c2))
	(true (cell ?r2 ?c2 W3tower))
	(distinctcell ?r ?c ?r2 ?c2)) 

; which cells are currently reachable: Bknight
(<= (reachableforBknight ?r ?c)
	(oneaway ?r ?c ?r2 ?c2)
	(Btower ?r ?c)
	(true (Bknight ?r2 ?c2))
	(true (cell ?r2 ?c2 B1tower))
	(distinctcell ?r ?c ?r2 ?c2)) 
(<= (reachableforBknight ?r ?c)
	(twoaway ?r ?c ?r2 ?c2)
	(Btower ?r ?c)
	(true (Bknight ?r2 ?c2))
	(true (cell ?r2 ?c2 B2tower))
	(distinctcell ?r ?c ?r2 ?c2)) 
(<= (reachableforBknight ?r ?c)
	(threeaway ?r ?c ?r2 ?c2)
	(Btower ?r ?c)
	(true (Bknight ?r2 ?c2))
	(true (cell ?r2 ?c2 B3tower))
	(distinctcell ?r ?c ?r2 ?c2)) 

(<= (next (step ?y))
	(true (step ?x))
	(stepcount ?x ?y))

; when is a tower a Wtower?
(<= (Wtower ?r ?c)
	(true (cell ?r ?c W1tower)))
(<= (Wtower ?r ?c)
	(true (cell ?r ?c W2tower)))
(<= (Wtower ?r ?c)
	(true (cell ?r ?c W3tower)))

; when is a tower a Btower?
(<= (Btower ?r ?c)
	(true (cell ?r ?c B1tower)))
(<= (Btower ?r ?c)
	(true (cell ?r ?c B2tower)))
(<= (Btower ?r ?c)
	(true (cell ?r ?c B3tower)))

; distinct cells?
(<= (distinctcell ?x1 ?y1 ?x2 ?y2)
	(true (cell ?x1 ?y1 ?tower1)) 
    (true (cell ?x2 ?y2 ?tower2)) 
    (distinct ?x1 ?x2))
(<= (distinctcell ?x1 ?y1 ?x2 ?y2)
    (true (cell ?x1 ?y1 ?tower1)) 
    (true (cell ?x2 ?y2 ?tower2)) 
    (distinct ?y1 ?y2))

; terminal states
(<= terminal 
	(hasknightinbaseline Wplayer))
(<= terminal 
	(hasknightinbaseline Bplayer))
(<= terminal
	(true (step 501)))

; goal values
(<= (goal Wplayer 100) 
	(hasknightinbaseline Wplayer))
(<= (goal Bplayer 100) 
	(hasknightinbaseline Bplayer))
(<= (goal Wplayer 0) 
	(hasknightinbaseline Bplayer)) 
(<= (goal Bplayer 0) 
	(hasknightinbaseline Wplayer)) 
(<= (goal Wplayer 50) 
	(not (hasknightinbaseline Wplayer)) 
	(true (step 501))) 
(<= (goal Bplayer 50) 
	(not (hasknightinbaseline Bplayer)) 
	(true (step 501))) 

; when has a player a knight in opponent's baseline?
(<= (hasknightinbaseline Wplayer)
	(true (Wknight 1 ?c))) 
(<= (hasknightinbaseline Bplayer)
	(true (Bknight 8 ?c))) 

; arithmetics            
(<= (oneaway ?r1 ?c1 ?r2 ?c2)
	(diff1 ?c1 ?c2)
	(same ?r1 ?r2))
(<= (oneaway ?r1 ?c1 ?r2 ?c2)
	(diff1 ?r1 ?r2)
	(same ?c1 ?c2))

(<= (twoaway ?r1 ?c1 ?r2 ?c2)
	(diff2 ?c1 ?c2)
	(same ?r1 ?r2)) 
(<= (twoaway ?r1 ?c1 ?r2 ?c2)
	(diff2 ?r1 ?r2)
	(same ?c1 ?c2))

(<= (threeaway ?r1 ?c1 ?r2 ?c2)
	(diff3 ?c1 ?c2)
	(same ?r1 ?r2))
(<= (threeaway ?r1 ?c1 ?r2 ?c2)
	(diff3 ?r1 ?r2)
	(same ?c1 ?c2))

(<= (diff1 ?x ?y)
	(succ ?x ?y))
(<= (diff1 ?x ?y)
	(succ ?y ?x))

(<= (diff2 ?x ?y)
	(succ ?x ?z)
	(succ ?z ?y))
(<= (diff2 ?x ?y)
	(succ ?y ?z)
	(succ ?z ?x))

(<= (diff3 ?x ?y)
	(succ ?x ?z1)
	(succ ?z1 ?z2)
	(succ ?z2 ?y))
(<= (diff3 ?x ?y)
	(succ ?y ?z1)
	(succ ?z1 ?z2)
	(succ ?z2 ?x))

(succ 1 2)
(succ 2 3)
(succ 3 4)
(succ 4 5)
(succ 5 6)
(succ 6 7)
(succ 7 8)   

(stepcount 1 2)
(stepcount 2 3)
(stepcount 3 4)
(stepcount 4 5)
(stepcount 5 6)
(stepcount 6 7)
(stepcount 7 8)
(stepcount 8 9)
(stepcount 9 10)
(stepcount 10 11)
(stepcount 11 12)
(stepcount 12 13)
(stepcount 13 14)
(stepcount 14 15)
(stepcount 15 16)
(stepcount 16 17)
(stepcount 17 18)
(stepcount 18 19)
(stepcount 19 20)
(stepcount 20 21)
(stepcount 21 22)
(stepcount 22 23)
(stepcount 23 24)
(stepcount 24 25)
(stepcount 25 26)
(stepcount 26 27)
(stepcount 27 28)
(stepcount 28 29)
(stepcount 29 30)
(stepcount 30 31)
(stepcount 31 32)
(stepcount 32 33)
(stepcount 33 34)
(stepcount 34 35)
(stepcount 35 36)
(stepcount 36 37)
(stepcount 37 38)
(stepcount 38 39)
(stepcount 39 40)
(stepcount 40 41)
(stepcount 41 42)
(stepcount 42 43)
(stepcount 43 44)
(stepcount 44 45)
(stepcount 45 46)
(stepcount 46 47)
(stepcount 47 48)
(stepcount 48 49)
(stepcount 49 50)
(stepcount 50 51)
(stepcount 51 52)
(stepcount 52 53)
(stepcount 53 54)
(stepcount 54 55)
(stepcount 55 56)
(stepcount 56 57)
(stepcount 57 58)
(stepcount 58 59)
(stepcount 59 60)
(stepcount 60 61)
(stepcount 61 62)
(stepcount 62 63)
(stepcount 63 64)
(stepcount 64 65)
(stepcount 65 66)
(stepcount 66 67)
(stepcount 67 68)
(stepcount 68 69)
(stepcount 69 70)
(stepcount 70 71)
(stepcount 71 72)
(stepcount 72 73)
(stepcount 73 74)
(stepcount 74 75)
(stepcount 75 76)
(stepcount 76 77)
(stepcount 77 78)
(stepcount 78 79)
(stepcount 79 80)
(stepcount 80 81)
(stepcount 81 82)
(stepcount 82 83)
(stepcount 83 84)
(stepcount 84 85)
(stepcount 85 86)
(stepcount 86 87)
(stepcount 87 88)
(stepcount 88 89)
(stepcount 89 90)
(stepcount 90 91)
(stepcount 91 92)
(stepcount 92 93)
(stepcount 93 94)
(stepcount 94 95)
(stepcount 95 96)
(stepcount 96 97)
(stepcount 97 98)
(stepcount 98 99)
(stepcount 99 100)
(stepcount 100 101)
(stepcount 101 102)
(stepcount 102 103)
(stepcount 103 104)
(stepcount 104 105)
(stepcount 105 106)
(stepcount 106 107)
(stepcount 107 108)
(stepcount 108 109)
(stepcount 109 110)
(stepcount 110 111)
(stepcount 111 112)
(stepcount 112 113)
(stepcount 113 114)
(stepcount 114 115)
(stepcount 115 116)
(stepcount 116 117)
(stepcount 117 118)
(stepcount 118 119)
(stepcount 119 120)
(stepcount 120 121)
(stepcount 121 122)
(stepcount 122 123)
(stepcount 123 124)
(stepcount 124 125)
(stepcount 125 126)
(stepcount 126 127)
(stepcount 127 128)
(stepcount 128 129)
(stepcount 129 130)
(stepcount 130 131)
(stepcount 131 132)
(stepcount 132 133)
(stepcount 133 134)
(stepcount 134 135)
(stepcount 135 136)
(stepcount 136 137)
(stepcount 137 138)
(stepcount 138 139)
(stepcount 139 140)
(stepcount 140 141)
(stepcount 141 142)
(stepcount 142 143)
(stepcount 143 144)
(stepcount 144 145)
(stepcount 145 146)
(stepcount 146 147)
(stepcount 147 148)
(stepcount 148 149)
(stepcount 149 150)
(stepcount 150 151)
(stepcount 151 152)
(stepcount 152 153)
(stepcount 153 154)
(stepcount 154 155)
(stepcount 155 156)
(stepcount 156 157)
(stepcount 157 158)
(stepcount 158 159)
(stepcount 159 160)
(stepcount 160 161)
(stepcount 161 162)
(stepcount 162 163)
(stepcount 163 164)
(stepcount 164 165)
(stepcount 165 166)
(stepcount 166 167)
(stepcount 167 168)
(stepcount 168 169)
(stepcount 169 170)
(stepcount 170 171)
(stepcount 171 172)
(stepcount 172 173)
(stepcount 173 174)
(stepcount 174 175)
(stepcount 175 176)
(stepcount 176 177)
(stepcount 177 178)
(stepcount 178 179)
(stepcount 179 180)
(stepcount 180 181)
(stepcount 181 182)
(stepcount 182 183)
(stepcount 183 184)
(stepcount 184 185)
(stepcount 185 186)
(stepcount 186 187)
(stepcount 187 188)
(stepcount 188 189)
(stepcount 189 190)
(stepcount 190 191)
(stepcount 191 192)
(stepcount 192 193)
(stepcount 193 194)
(stepcount 194 195)
(stepcount 195 196)
(stepcount 196 197)
(stepcount 197 198)
(stepcount 198 199)
(stepcount 199 200)
(stepcount 200 201)
(stepcount 201 202)
(stepcount 202 203)
(stepcount 203 204)
(stepcount 204 205)
(stepcount 205 206)
(stepcount 206 207)
(stepcount 207 208)
(stepcount 208 209)
(stepcount 209 210)
(stepcount 210 211)
(stepcount 211 212)
(stepcount 212 213)
(stepcount 213 214)
(stepcount 214 215)
(stepcount 215 216)
(stepcount 216 217)
(stepcount 217 218)
(stepcount 218 219)
(stepcount 219 220)
(stepcount 220 221)
(stepcount 221 222)
(stepcount 222 223)
(stepcount 223 224)
(stepcount 224 225)
(stepcount 225 226)
(stepcount 226 227)
(stepcount 227 228)
(stepcount 228 229)
(stepcount 229 230)
(stepcount 230 231)
(stepcount 231 232)
(stepcount 232 233)
(stepcount 233 234)
(stepcount 234 235)
(stepcount 235 236)
(stepcount 236 237)
(stepcount 237 238)
(stepcount 238 239)
(stepcount 239 240)
(stepcount 240 241)
(stepcount 241 242)
(stepcount 242 243)
(stepcount 243 244)
(stepcount 244 245)
(stepcount 245 246)
(stepcount 246 247)
(stepcount 247 248)
(stepcount 248 249)
(stepcount 249 250)
(stepcount 250 251)
(stepcount 251 252)
(stepcount 252 253)
(stepcount 253 254)
(stepcount 254 255)
(stepcount 255 256)
(stepcount 256 257)
(stepcount 257 258)
(stepcount 258 259)
(stepcount 259 260)
(stepcount 260 261)
(stepcount 261 262)
(stepcount 262 263)
(stepcount 263 264)
(stepcount 264 265)
(stepcount 265 266)
(stepcount 266 267)
(stepcount 267 268)
(stepcount 268 269)
(stepcount 269 270)
(stepcount 270 271)
(stepcount 271 272)
(stepcount 272 273)
(stepcount 273 274)
(stepcount 274 275)
(stepcount 275 276)
(stepcount 276 277)
(stepcount 277 278)
(stepcount 278 279)
(stepcount 279 280)
(stepcount 280 281)
(stepcount 281 282)
(stepcount 282 283)
(stepcount 283 284)
(stepcount 284 285)
(stepcount 285 286)
(stepcount 286 287)
(stepcount 287 288)
(stepcount 288 289)
(stepcount 289 290)
(stepcount 290 291)
(stepcount 291 292)
(stepcount 292 293)
(stepcount 293 294)
(stepcount 294 295)
(stepcount 295 296)
(stepcount 296 297)
(stepcount 297 298)
(stepcount 298 299)
(stepcount 299 300)
(stepcount 300 301)
(stepcount 301 302)
(stepcount 302 303)
(stepcount 303 304)
(stepcount 304 305)
(stepcount 305 306)
(stepcount 306 307)
(stepcount 307 308)
(stepcount 308 309)
(stepcount 309 310)
(stepcount 310 311)
(stepcount 311 312)
(stepcount 312 313)
(stepcount 313 314)
(stepcount 314 315)
(stepcount 315 316)
(stepcount 316 317)
(stepcount 317 318)
(stepcount 318 319)
(stepcount 319 320)
(stepcount 320 321)
(stepcount 321 322)
(stepcount 322 323)
(stepcount 323 324)
(stepcount 324 325)
(stepcount 325 326)
(stepcount 326 327)
(stepcount 327 328)
(stepcount 328 329)
(stepcount 329 330)
(stepcount 330 331)
(stepcount 331 332)
(stepcount 332 333)
(stepcount 333 334)
(stepcount 334 335)
(stepcount 335 336)
(stepcount 336 337)
(stepcount 337 338)
(stepcount 338 339)
(stepcount 339 340)
(stepcount 340 341)
(stepcount 341 342)
(stepcount 342 343)
(stepcount 343 344)
(stepcount 344 345)
(stepcount 345 346)
(stepcount 346 347)
(stepcount 347 348)
(stepcount 348 349)
(stepcount 349 350)
(stepcount 350 351)
(stepcount 351 352)
(stepcount 352 353)
(stepcount 353 354)
(stepcount 354 355)
(stepcount 355 356)
(stepcount 356 357)
(stepcount 357 358)
(stepcount 358 359)
(stepcount 359 360)
(stepcount 360 361)
(stepcount 361 362)
(stepcount 362 363)
(stepcount 363 364)
(stepcount 364 365)
(stepcount 365 366)
(stepcount 366 367)
(stepcount 367 368)
(stepcount 368 369)
(stepcount 369 370)
(stepcount 370 371)
(stepcount 371 372)
(stepcount 372 373)
(stepcount 373 374)
(stepcount 374 375)
(stepcount 375 376)
(stepcount 376 377)
(stepcount 377 378)
(stepcount 378 379)
(stepcount 379 380)
(stepcount 380 381)
(stepcount 381 382)
(stepcount 382 383)
(stepcount 383 384)
(stepcount 384 385)
(stepcount 385 386)
(stepcount 386 387)
(stepcount 387 388)
(stepcount 388 389)
(stepcount 389 390)
(stepcount 390 391)
(stepcount 391 392)
(stepcount 392 393)
(stepcount 393 394)
(stepcount 394 395)
(stepcount 395 396)
(stepcount 396 397)
(stepcount 397 398)
(stepcount 398 399)
(stepcount 399 400)
(stepcount 400 401)
(stepcount 401 402)
(stepcount 402 403)
(stepcount 403 404)
(stepcount 404 405)
(stepcount 405 406)
(stepcount 406 407)
(stepcount 407 408)
(stepcount 408 409)
(stepcount 409 410)
(stepcount 410 411)
(stepcount 411 412)
(stepcount 412 413)
(stepcount 413 414)
(stepcount 414 415)
(stepcount 415 416)
(stepcount 416 417)
(stepcount 417 418)
(stepcount 418 419)
(stepcount 419 420)
(stepcount 420 421)
(stepcount 421 422)
(stepcount 422 423)
(stepcount 423 424)
(stepcount 424 425)
(stepcount 425 426)
(stepcount 426 427)
(stepcount 427 428)
(stepcount 428 429)
(stepcount 429 430)
(stepcount 430 431)
(stepcount 431 432)
(stepcount 432 433)
(stepcount 433 434)
(stepcount 434 435)
(stepcount 435 436)
(stepcount 436 437)
(stepcount 437 438)
(stepcount 438 439)
(stepcount 439 440)
(stepcount 440 441)
(stepcount 441 442)
(stepcount 442 443)
(stepcount 443 444)
(stepcount 444 445)
(stepcount 445 446)
(stepcount 446 447)
(stepcount 447 448)
(stepcount 448 449)
(stepcount 449 450)
(stepcount 450 451)
(stepcount 451 452)
(stepcount 452 453)
(stepcount 453 454)
(stepcount 454 455)
(stepcount 455 456)
(stepcount 456 457)
(stepcount 457 458)
(stepcount 458 459)
(stepcount 459 460)
(stepcount 460 461)
(stepcount 461 462)
(stepcount 462 463)
(stepcount 463 464)
(stepcount 464 465)
(stepcount 465 466)
(stepcount 466 467)
(stepcount 467 468)
(stepcount 468 469)
(stepcount 469 470)
(stepcount 470 471)
(stepcount 471 472)
(stepcount 472 473)
(stepcount 473 474)
(stepcount 474 475)
(stepcount 475 476)
(stepcount 476 477)
(stepcount 477 478)
(stepcount 478 479)
(stepcount 479 480)
(stepcount 480 481)
(stepcount 481 482)
(stepcount 482 483)
(stepcount 483 484)
(stepcount 484 485)
(stepcount 485 486)
(stepcount 486 487)
(stepcount 487 488)
(stepcount 488 489)
(stepcount 489 490)
(stepcount 490 491)
(stepcount 491 492)
(stepcount 492 493)
(stepcount 493 494)
(stepcount 494 495)
(stepcount 495 496)
(stepcount 496 497)
(stepcount 497 498)
(stepcount 498 499)
(stepcount 499 500)
(stepcount 500 501)

(same 1 1)
(same 2 2)
(same 3 3)
(same 4 4)
(same 5 5)
(same 6 6)
(same 7 7)
(same 8 8)

sees_XML(...) rules

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