ROOM ID 134 NOCYBORGS NAME "XO Puzzle" PICT "foxttt.gif" PICTURE ID 1 NAME "x.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 2 NAME "o.gif" TRANSCOLOR 0 ENDPICTURE PICTURE ID 3 NAME "arrowll.gif" TRANSCOLOR 56 ENDPICTURE PICTURE ID 4 NAME "arrowrr.gif" TRANSCOLOR 56 ENDPICTURE SPOT ID 1 DONTMOVEHERE OUTLINE 150,126 220,126 220,191 150,191 LOC 184,158 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ON ENTER { { CLEARLOOSEPROPS PAINTCLEAR } NBRROOMUSERS 2 < IF } ENDSCRIPT ENDSPOT SPOT ID 2 DONTMOVEHERE OUTLINE 223,127 289,127 289,192 223,192 LOC 256,160 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ENDSCRIPT ENDSPOT SPOT ID 3 DONTMOVEHERE OUTLINE 293,127 357,127 357,191 293,191 LOC 325,158 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ENDSCRIPT ENDSPOT SPOT ID 4 DONTMOVEHERE OUTLINE 150,195 219,195 219,261 150,261 LOC 185,227 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ENDSCRIPT ENDSPOT SPOT ID 5 DONTMOVEHERE OUTLINE 223,195 289,195 289,262 223,262 LOC 257,229 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ENDSCRIPT ENDSPOT SPOT ID 6 DONTMOVEHERE OUTLINE 293,195 357,195 357,261 293,261 LOC 327,229 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ENDSCRIPT ENDSPOT SPOT ID 7 DONTMOVEHERE OUTLINE 152,265 219,265 219,332 152,332 LOC 186,298 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ENDSCRIPT ENDSPOT SPOT ID 8 DONTMOVEHERE OUTLINE 223,265 289,265 289,331 223,331 LOC 257,299 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ENDSCRIPT ENDSPOT SPOT ID 9 DONTMOVEHERE OUTLINE 293,265 358,265 358,331 293,331 LOC 326,301 PICTS 1,0,0 2,0,0 ENDPICTS SCRIPT ON SELECT{ xos GLOBAL ME xos = 10 SELECT } ENDSCRIPT ENDSPOT SPOT ID 10 OUTLINE 6,9 22,9 22,25 6,25 LOC 14,17 SCRIPT ON ENTER{ act GLOBAL 1 act = { sp = sp 5 == sp SETSPOTSTATELOCAL} [ 1 2 3 4 5 6 7 8 9 ] FOREACH "This may look like Tic Tac Toe, but IT'S NOT!" LOCALMSG "Say 'help' for instructions to THIS SOLITAIRE PUZZLE" LOCALMSG } ON SELECT{ act GLOBAL { xos GLOBAL xos GETSPOTSTATE st = { [ [ 1 2 4 5 ] [ 1 2 3 ] [ 2 3 5 6 ] [ 1 4 7 ] [ 2 4 5 6 8 ] [ 3 6 9 ] [ 4 5 7 8 ] [ 7 8 9 ] [ 5 6 8 9 ] ] xos 1 - GET spt = { spo = spo GETSPOTSTATE NOT spo SETSPOTSTATELOCAL } spt FOREACH 0 win = 0 lose = { st = st GETSPOTSTATE lose += {1 win = } st GETSPOTSTATE st 5 == == IF } [1 2 3 4 5 6 7 8 9 ] FOREACH { ")applause !" USERNAME + " is a WINNER!" + ROOMMSG { sp = sp 5 == sp SETSPOTSTATELOCAL} [ 1 2 3 4 5 6 7 8 9 ] FOREACH } 0 win == IF { ")no " USERNAME + " is a LOSER!" + ROOMMSG 1 5 SETSPOTSTATELOCAL } 0 lose == IF } st IF 0 act = 10 ME SETALARM } act IF } ON ALARM {act GLOBAL 1 act = } ON OUTCHAT{ { "Goal of the game: reverse the design, so that you have one X in the middle, surrounded by O's " LOCALMSG "Method: click on any O" LOCALMSG "Each spot reverses cells next to it in a certain pattern." LOCALMSG } CHATSTR "help" == IF } ENDSCRIPT ENDSPOT DOOR ID 13 DONTMOVEHERE DEST 286 OUTLINE 2,349 55,349 55,382 2,382 LOC 28,365 PICTS 3,0,0 ENDPICTS ENDDOOR DOOR ID 14 DONTMOVEHERE DEST 242 OUTLINE 450,356 509,356 509,382 450,382 LOC 479,369 PICTS 4,0,0 ENDPICTS SCRIPT ON INCHAT { nDoIt GLOBAL nDoIt EXEC } ENDSCRIPT ENDDOOR ENDROOM