| Jay Campbell on Thu, 1 May 2008 16:16:23 -0700 (MST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| [s-d] Play Without Work |
I whipped up a little chess tracker in NetLogo, random example output here:
http://jaycampbell.com/nomic/chessview.png
I can expand this (e.g. track real owner) and make it listen to the
mailing list for specific commands.
Then we could vote in additions like Hose's trontrails.
Here's the source so far if anybody wants a peek. It's enough to help me
run the MoP till I throw a some regexp in front of it to parse
plain(ish) English.
=========
globals [ commander flipper ]
turtles-own [ health team owner piece-type ]
to setup
clear-all
set commander "Nobody" ;; by default
paint-chess-board
end
to test
setup
set commander "jayc"
join
repeat 20 [ purchase ]
end
to purchase
let new-piece-type item random 20 [ "pawn" "pawn" "pawn" "pawn"
"pawn" "pawn" "pawn" "pawn" "pawn" "pawn"
"rook" "rook" "rook" "knight" "knight" "knight"
"bishop" "bishop" "bishop" "queen" ]
create-turtles 1 [ awaken new-piece-type ]
end
to awaken [new-piece-type]
set owner commander
set piece-type new-piece-type
set health 100
set color random 160
set shape (word "chess " piece-type)
set size 0.7
set label who
ifelse piece-type = "king"
[find-safe-patch]
[find-safe-patch]
end
to join
ifelse any? turtles with [piece-type = "king" and owner = commander]
[ print "This commander already has a King object" ]
[ create-turtles 1 [ awaken "king" ]]
end
to find-safe-patch
let counter 0
let target 0
let candidate 0
while [ counter < 100 ]
[
set counter counter + 1
set candidate patch random-pxcor random-pycor
if count turtles-on candidate = 0
[ set target candidate
set counter 100 ]
]
ifelse is-patch? candidate
[ move-to candidate ]
[ print "Unable to place piece after 100 tries." ]
end
to paint-chess-board
let x 0 let y 0 set flipper false
while [ x <= 20 ] [ set y 0
while [ y <= 20 ] [
ask patch x y [
ifelse flipper [ set pcolor gray set flipper false ]
[ set pcolor white set flipper true ]
] set y y + 1
] set x x + 1
]
end
_______________________________________________
spoon-discuss mailing list
spoon-discuss@xxxxxxxxx
http://lists.ellipsis.cx/mailman/listinfo/spoon-discuss