var x, y, b, ob, count := 0 var whatchar : array - 2 .. 4, -2 .. 4 of char := init (" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ") put repeat (repeat (" | |" + chr (10), 3) + "-----+-----+-----" + chr (10), 2) + repeat (" | |" + chr (10), 3),"Welcome to Matt's TicTacToe Game, in 20 lines.",chr(10),"Use the mouse in turns with a friend to play the game.",chr(10),"Enjoy!" loop ob := b mousewhere (x, y, b) if x < 135 and maxy - y < 180 and b > 0 and ob = 0 and whatdotcolor ((x div 45) * 48 + 18, ((maxy - y) div 60) * -64 + 373) = white then count += 1 locate (((maxy - y) div 60) * 4 + 2, (x div 45) * 6 + 3) whatchar (x div 45, (maxy - y) div 60) := chr (ord ("O") + count mod 2 * (ord ("X") - ord ("O"))) put chr (ord ("O") + count mod 2 * (ord ("X") - ord ("O"))) .. exit when (whatchar (x div 45 - 2, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 - 1, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 - 1, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 1, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 + 1, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 2, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45, (maxy - y) div 60 - 2) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45, (maxy - y) div 60 + 2) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 - 2, (maxy - y) div 60 - 2) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 - 1, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 - 1, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 1, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 + 1, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 2, (maxy - y) div 60 + 2) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 + 2, (maxy - y) div 60 - 2) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 1, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 + 1, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 - 1, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 - 1, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 - 2, (maxy - y) div 60 + 2) = whatchar (x div 45, (maxy - y) div 60)) end if if count = 9 then count += 1 exit end if end loop locate (12, 1) put repeat (chr (ord ("O") + count mod 2 * (ord ("X") - ord ("O"))) + "'s win!", 1 - count div 10) + repeat ("Tie game!", count div 10) + repeat (chr (10), 3)