0% found this document useful (0 votes)
32 views19 pages

Tictc Toe

The document describes an algorithm for playing Tic Tac Toe. It outlines the board representation using numbers and turns. It details functions to check for winning moves and make the next move. The algorithm has a built-in strategy for each turn, prioritizing blocking wins and making winning moves when possible.

Uploaded by

harshitad1272
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views19 pages

Tictc Toe

The document describes an algorithm for playing Tic Tac Toe. It outlines the board representation using numbers and turns. It details functions to check for winning moves and make the next move. The algorithm has a built-in strategy for each turn, prioritizing blocking wins and making winning moves when possible.

Uploaded by

harshitad1272
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Tic Tac Toe

From table driven to something intelligent


Program 2
• Board : A nine-element vector representing the board. We store 2 (indicating Blank), 3 (indicating X), or 5 (indicating O). Turn : An integer indicating which move of the game about to be
played. The 1st move will be indicated by 1, last by 9.
• The Algorithm
• The main algorithm uses three functions.
• Make2: returns 5 if the center square of the board is blank i.e. if board[5]=2. Otherwise, this function returns any non-corner square (2, 4, 6 or 8).
• Posswin(p): Returns 0 if player p can’t win on his next move; otherwise, it returns the number of the square that constitutes a winning move. This function will enable the program
both to win and to block opponents win. This function operates by checking each of the rows, columns, and diagonals. By multi plying the values of each square together for an entire
row (or column or diagonal), the possibility of a win can be checked. If the product is 18 (3 x 3 x 2), then X can win. If the product is 50 (5 x 5 x 2), then O can win. If a winning
row (column or diagonal) is found, the blank square in it can be determined and the number of that square is returned by this function.
• Go (n): makes a move in square n. this procedure sets board [n] to 3 if Turn is odd, or 5 if Turn is even. It also increments turn by one.
• The algorithm has a built-in strategy for each move. It makes the odd numbered move if it playsX, the even-numbered move if it plays O.
• Turn = 1 Go(1) (upper left corner).
• Turn = 2 If Board[5] is blank, Go(5), else Go(1).
• Turn = 3 If Board[9] is blank, Go(9), else Go(3).
• Turn = 4 If Posswin(X) is not 0, then Go(Posswin(X)) i.e. [ block opponent’s
win], else Go(Make2).
• Turn = 5 if Posswin(X) is not 0 then Go(Posswin(X)) [i.e. win], else if
Posswin(O) is not 0, then Go(Posswin(O)) [i.e. block win], else if Board[7] is
blank, then Go(7), else Go(3). [to explore other possibility if there be any ].
• Turn = 6 If Posswin(O) is not 0 then Go(Posswin(O)), else if Posswin(X)
is not 0, then Go(Posswin(X)), else Go(Make2).
• Turn = 7 If Posswin(X) is not 0 then Go(Posswin(X)), else if Posswin(X)
is not 0, then Go(Posswin(O)) else go anywhere that is blank.
• Turn = 8 if Posswin(O) is not 0 then Go(Posswin(O)), else if Posswin(X)
is not 0, then Go(Posswin(X)), else go anywhere that is blank.
• Turn = 9 Same as Turn=7.
00X
X 0
X

00X 00X 00X


XX0 X 0 X 0
X X X XX

00X 00X 00X 00X 00X 00X


XX0 XX0 X 0 X00 X 0 X00
0 X 0X X 0 X X X 0X X XX

00X 00X 00X 00X 00X 00X


XX0 XX0 XX0 X00 XX0 X00
0X X X 0X X 0 X XX X 0 Draw
X X XX
X Win
Draw Win Win Win

You might also like