Tic Tac Toe Game
Functions
Function | Parameters | Return Value | Purpose |
isntr() | None | None | display instructions |
firstPlayer() | None | goesFirst | selects which piece will move first |
choosePiece() | None | playerPiece | allows the player to choose a playing piece |
createBoard() | None | gameBoard | creates a game board |
displayBoard() | gameBoard | None | prints a game board to the screen |
legalMoves() | gameBoard | legalMoves | finds/returns a list of legal moves |
winner() | gameBoard | winner or “TIE” | checks for and returns a winner |
playerMove() | gameBoard, playerPiece | playerMove | allows player to move and returns space of that move |
cpuMove() | gameBoard, cpuPiece | cpuMove | allows cpu to move and returns space of that piece |
nextTurn() | currTurn | nextPiece | selects next piece to move and returns that piece |
congrats() | winner | None | congratulations the game's winner |
Pseudocode
instr()
print "*insert game instructions here*"
firstPlayer()
select a number between 0 & 1 at random
if the number is 0 then goesFirst is O
otherwise goesFirst is X
return goesFirst
choosePiece()
print "Play as X or O: "
get playerPiece
return playerPiece
createBoard()
board = []
for i from 0 to 9
append " " to board
return board
displayBoard(gameBoard)
for i from 0 to 9
print gameBoard[i]
legalMoves(gameBoard)
legalMoves = []
for i from 0 to 9
if gameBoard[i] == EMPTY
append gameBoard[i] to legalMoves
return legalMoves
winner(gameBoard)
WINS = ((0, 1, 2), (3, 4, 5), (6, 7, 8),
(0, 3, 6), (1, 4, 7), (2, 5, 8),
(0, 4, 8), (2, 4, 6))
for row from 0 to 8
if gameBoard[row[0]] == gameBoard[row[1]] == gameBoard[row[2]] != " ":
winner = gameBoard[row[0]]
return winner
else if no empty spaces
return "Tie"
return None
playerMove(gameBoard, playerPiece)
print "Enter a move (0-8): "
get move
while move is not from 0 to 8 and board[move] is not in legalMoves
print "Enter a move (0-8): "
get move
return move
cpuMove(gameBoard, cpuPiece)
boardCopy = gameBoard[:]
BEST_MOVES = (4, 0, 2, 6, 8, 1, 3, 5, 7)
print "Taking square"
//If computer can win
for move in legalMoves(boardCopy)
boardCopy[move] = computer
if winner(boardCopy) is computer
print move
return move
boardCopy[move] = " "
//if the player can win
for move in legalMoves(boardCopy)
boardCopy[move] = computer
if winner(boardCopy) is player
print move
return move
boardCopy[move] = " "
//otherwise no winner pick best square
for move in BEST_MOVES
if move in legalMoves(boardCopy)
print move
return move
nextTurn(currTurn)
if currTurn is "X"
nextTurn = "O"
else
nextTurn = "X"
return nextTurn
congrats(gameBoard)
if winner(gameBoard) is not "Tie"
print "Congratulations", winner(gameBoard), "you win!"
else
"It's a tie!"