ROOM
ID 133
NOCYBORGS
NAME "TicTacToe"
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 "arrowl.gif" TRANSCOLOR 56 ENDPICTURE
PICTURE ID 4 NAME "arrowr.gif" TRANSCOLOR 56 ENDPICTURE
SPOT
ID 11
DONTMOVEHERE
OUTLINE 27,63 99,63 99,131 27,131
LOC 62,100
PICTS 1,0,0 ENDPICTS
SCRIPT
ON SELECT {
ME GETSPOTSTATE occ =
{1 ME SETSPOTSTATE
"ó°Je prend les X." SAY
} 0 occ == IF
}
ON LEAVE {
{ CLEARLOOSEPROPS PAINTCLEAR } NBRROOMUSERS 2 < IF
}
ENDSCRIPT
ENDSPOT
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 {{ME ITOA SAY} ME GETSPOTSTATE 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 {{ME ITOA SAY} ME GETSPOTSTATE 2 == IF}
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 {{ME ITOA SAY} ME GETSPOTSTATE 2 == IF}
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 {{ME ITOA SAY} ME GETSPOTSTATE 2 == IF}
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 {{ME ITOA SAY} ME GETSPOTSTATE 2 == IF}
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 {{ME ITOA SAY} ME GETSPOTSTATE 2 == IF}
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 {{ME ITOA SAY} ME GETSPOTSTATE 2 == IF}
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 {{ME ITOA SAY} ME GETSPOTSTATE 2 == IF}
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 {{ME ITOA SAY} ME GETSPOTSTATE 2 == IF}
ENDSCRIPT
ENDSPOT
SPOT
ID 10
DONTMOVEHERE
OUTLINE 411,63 480,63 480,131 411,131
LOC 446,99
PICTS 2,0,0 ENDPICTS
SCRIPT
ON SELECT {
ME GETSPOTSTATE occ =
{1 ME SETSPOTSTATE
"ó° Je prend les O." SAY
} 0 occ == IF
}
ENDSCRIPT
ENDSPOT
SPOT
ID 12
OUTLINE 6,7 22,7 21,23 7,23
LOC 134,103
SCRIPT
ON ENTER {
"!Bienvenue au Tic-Tac-Toe!" LOCALMSG
"@350,0 Dites help pour voir les instructions" LOCALMSG
}
ON INCHAT {
playerx GLOBAL
playero GLOBAL
plt GLOBAL
pln GLOBAL
{" Je prend les X." CHATSTR =
WHOCHAT WHONAME playerx =
playerx plt = 0 pln =
} CHATSTR "ó° Je prend les X." == IF
{" Je prend les O." CHATSTR =
WHOCHAT WHONAME playero =
} CHATSTR "ó° Je prend les O." == IF
{
{
{"$1" GREPSUB ATOI sp =
pln sp SETSPOTSTATE
} CHATSTR "^([123456789])$" GREPSTR IF
} plt WHOME WHONAME == IF
} WHOCHAT WHOME == IF
{ 1 pln - pln =
{"ñ" SAY} WHOME WHONAME plt == IF
{playerx plt = }
{playero plt = } 0 pln == IFELSE
"" CHATSTR =
} CHATSTR "^[123456789]$" GREPSTR IF
{ { pw =
pw 0 GET GETSPOTSTATE ITOA
pw 1 GET GETSPOTSTATE ITOA +
pw 2 GET GETSPOTSTATE ITOA +
pwi =
{3 pln = } "000" pwi == IF
{4 pln = } "111" pwi == IF
} [ [1 2 3] [4 5 6] [7 8 9] [1 4 7] [2 5 8] [3 6 9] [1 5 9] [7 5 3] ]
FOREACH
{1 cat =
{ GETSPOTSTATE sp =
{0 cat = BREAK } 2 sp == IF
} [1 2 3 4 5 6 7 8 9] FOREACH
}3 pln > IF
{{ "!CAT WINS! MEOW!" ROOMMSG
[ "-:sob:-" "Rats!" "Boohoo!" "Not Fair!" ] 4 RANDOM GET SAY
} playerx WHOME WHONAME == IF
{ 1 reset =
[ "-:sob:-" "Rats!" "Boohoo!" "Not Fair!" ] 4 RANDOM GET SAY
} playero WHOME WHONAME == IF
} 1 cat == IF
{ { "!" USERNAME + " WINS!" + ROOMMSG
[ "All right!" "Yes!" "I'm number one!" "Yippee!" ] 4 RANDOM GET SAY
} playerx WHOME WHONAME == IF
{ 1 reset =
[ "-:sob:-" "Rats!" "Boohoo!" "Not Fair!" ] 4 RANDOM GET SAY
} playero WHOME WHONAME == IF
} 3 pln == IF
{ { "!" USERNAME + " WINS!" + ROOMMSG
[ "All right!" "Yes!" "I'm number one!" "Yippee!" ] 4 RANDOM GET SAY
} playero WHOME WHONAME == IF
{ 1 reset =
[ "-:sob:-" "Rats!" "Boohoo!" "Not Fair!" ] 4 RANDOM GET SAY
} playerx WHOME WHONAME == IF
} 4 pln == IF
{ {sp = 2 sp SETSPOTSTATE
} [1 2 3 4 5 6 7 8 9] FOREACH
0 10 SETSPOTSTATE
0 11 SETSPOTSTATE
"" playerx = "" playero = "" plt = 2 pln =
} reset IF
"" CHATSTR =
} CHATSTR "ñ" == IF
}
ON OUTCHAT {
playerx GLOBAL
playero GLOBAL
plt GLOBAL
pln GLOBAL
{ {sp = 2 sp SETSPOTSTATE
} [1 2 3 4 5 6 7 8 9] FOREACH
0 10 SETSPOTSTATE
0 11 SETSPOTSTATE
"" playerx = "" playero = "" plt = 2 pln =
} CHATSTR "reset" == IF
{ "" CHATSTR = } CHATSTR "^([123456789])$" GREPSTR IF
}
ENDSCRIPT
ENDSPOT
SPOT
ID 13
OUTLINE 6,33 23,37 25,55 6,48
LOC 134,129
SCRIPT
ON OUTCHAT {
{"@170,0 Pour commencer un jeu, prendre le X ou O ."
LOCALMSG
{ "@300,0 If they're not, say the word reset" LOCALMSG } 60 ALARMEXEC
{ "@60,91 Alors vous pouvez cliquer sur X!" LOCALMSG
"@448,90 ou vous pouvez cliquer sur O!" LOCALMSG } 240 ALARMEXEC
{ "X always moves first. To move, just click on the spot you want to move at." LOCALMSG
"Finished games are automatically detected, and appropriate messages printed." LOCALMSG } 350 ALARMEXEC
} CHATSTR "help" == IF
}
ENDSCRIPT
ENDSPOT
SPOT
ID 15
OUTLINE 236,60 258,60 258,75 236,75
LOC 247,67
ENDSPOT
DOOR
ID 16
DONTMOVEHERE
DEST 117
OUTLINE 2,351 53,351 53,382 2,382
LOC 27,366
PICTS 3,0,0 ENDPICTS
ENDDOOR
DOOR
ID 17
DONTMOVEHERE
DEST 136
OUTLINE 457,358 509,358 510,382 458,384
LOC 483,370
PICTS 4,0,0 ENDPICTS
ENDDOOR
ENDROOM