<% '-------------------------------------------------------------- ' ASP TicTacToe v1.0 ' (x) Ugh!! 2000 - 18/10/2000 ' ' based on Javascript TicTacToe by ' Maximilian Stocker (maxstocker@reallyusefulcomputing.com) ' ' Written for http://www.only-network.com/games Any comments, ' flames, requests, postcards etc to owen@cutajar.net '-------------------------------------------------------------- Option Explicit ' -- Set up images to use --- Const IMGx = "x.jpg" Const IMGo = "o.jpg" Const IMGblank = "blank.jpg" ' -- Set up game States --- Const END_Not_Yet = 0 Const END_You_Win = 1 Const END_Computer_Win = 2 Const END_Tie = 3 ' Read in board or Initialise Dim Gameboard Dim wl1,wl2,wl3,wl4,wl5,wl6,wl7,wl8 If Session("GameBoard") & "" = "" OR Request("PlayAgain") = "Yes" Then PlayAgain end if GameBoard = Split(Session("GameBoard"),"_") function GameState() wl1 = GameBoard(0) & GameBoard(1) & GameBoard(2) wl2 = GameBoard(0) & GameBoard(3) & GameBoard(6) wl3 = GameBoard(0) & GameBoard(4) & GameBoard(8) wl4 = GameBoard(1) & GameBoard(4) & GameBoard(7) wl5 = GameBoard(3) & GameBoard(4) & GameBoard(5) wl6 = GameBoard(6) & GameBoard(7) & GameBoard(8) wl7 = GameBoard(2) & GameBoard(5) & GameBoard(8) wl8 = GameBoard(6) & GameBoard(4) & GameBoard(2) if wl1="XXX" or wl2="XXX" or wl3="XXX" or wl4="XXX" or wl5="XXX" or wl6="XXX" or wl7="XXX" or wl8="XXX" Then GameState = END_You_Win elseif wl1="OOO" or wl2="OOO" or wl3="OOO" or wl4="OOO" or wl5="OOO" or wl6="OOO" or wl7="OOO" or wl8="OOO" Then GameState = END_Computer_Win elseif Instr ( wl1 & wl5 & wl6 ,"B" ) = 0 then GameState = END_Tie else GameState = END_Not_Yet end if end function Function Suggest() If wl1 = "XXB" or wl1 = "OOB" Then Suggest = 2 elseif wl1 = "XBX" or wl1 = "OBO" Then Suggest = 1 elseif wl1 = "BXX" or wl1 = "BOO" Then Suggest = 0 elseif wl2 = "XXB" or wl2 = "OOB" Then Suggest = 6 elseif wl2 = "XBX" or wl2 = "OBO" Then Suggest = 3 elseif wl2 = "BXX" or wl2 = "BOO" Then Suggest = 0 elseif wl3 = "XXB" or wl3 = "OOB" Then Suggest = 8 elseif wl3 = "XBX" or wl3 = "OBO" Then Suggest = 4 elseif wl3 = "BXX" or wl3 = "BOO" Then Suggest = 0 elseif wl4 = "XXB" or wl4 = "OOB" Then Suggest = 7 elseif wl4 = "XBX" or wl4 = "OBO" Then Suggest = 4 elseif wl4 = "BXX" or wl4 = "BOO" Then Suggest = 1 elseif wl5 = "XXB" or wl5 = "OOB" Then Suggest = 5 elseif wl5 = "XBX" or wl5 = "OBO" Then Suggest = 4 elseif wl5 = "BXX" or wl5 = "BOO" Then Suggest = 3 elseif wl6 = "XXB" or wl6 = "OOB" Then Suggest = 8 elseif wl6 = "XBX" or wl6 = "OBO" Then Suggest = 7 elseif wl6 = "BXX" or wl6 = "BOO" Then Suggest = 6 elseif wl7 = "XXB" or wl7 = "OOB" Then Suggest = 8 elseif wl7 = "XBX" or wl7 = "OBO" Then Suggest = 5 elseif wl7 = "BXX" or wl7 = "BOO" Then Suggest = 2 elseif wl8 = "XXB" or wl8 = "OOB" Then Suggest = 2 elseif wl8 = "XBX" or wl8 = "OBO" Then Suggest = 4 elseif wl8 = "BXX" or wl8 = "BOO" Then Suggest = 6 else Suggest = -1 end if end function sub yourChoice(Position) if Session("State") = "Dead" Then ReportEnded Else If GameBoard(Position) <> "B" Then ReportTaken else GameBoard(Position) = "X" end if end if end sub sub ReportTaken() Response.Write "

That square is already occupied. Please select another square.

" end sub sub ReportEnded() Response.Write "

The game has already ended. To play a new game click the Play Again button.

" end sub sub myChoice() Dim NewMove NewMove = Suggest() While NewMove = -1 Randomize NewMove=int(rnd*9) If GameBoard(NewMove) <> "B" Then NewMove = -1 End If wend GameBoard(NewMove) = "O" end sub sub ProcessBoard() If Session("State") = "Alive" Then Select Case GameState() Case END_You_Win Response.Write "

You won, congratulations!

" Session("you") = Session("you") + 1 Session("State") = "Dead" Case END_Computer_Win Response.Write "

Gotcha! I win!

" Session("computer") = Session("computer") + 1 Session("State") = "Dead" Case END_Tie Response.Write "

We tied.

" Session("ties") = Session("ties") + 1 Session("State") = "Dead" end Select End If end sub sub playAgain() Session("GameBoard") = "B_B_B_B_B_B_B_B_B" Session("State") = "Alive" end sub sub Display(CellNum) If GameBoard(CellNum) = "B" Then Response.Write "
" Response.Write "" Response.Write "" Response.Write "
" elseif GameBoard(CellNum) = "O" Then Response.Write "" elseif GameBoard(CellNum) = "X" Then Response.Write "" end if end sub ' Main Code If Request("Pressed") & "" <> "" Then YourChoice(Request("Pressed")) ProcessBoard If GameState() = END_Not_Yet Then myChoice End If ProcessBoard ' Save Game State Session("GameBoard") = Join(GameBoard,"_") End If %>
Welcome to Thank Santa's Tic-Tac-Toe Game! You play as the X's and the computer is the O's. Select the square you want to put your X into by clicking them. You cannot occupy a square that is already occupied. The first player to get three squares in a row wins. Good Luck!!
<% Display(0) %> <% Display(1) %> <% Display(2) %>
<% Display(3) %> <% Display(4) %> <% Display(5) %>
<% Display(6) %> <% Display(7) %> <% Display(8) %>
>You
>Computer
>Ties