I need help with my python program PLease help IT MUST BE A

I need help with my python program! PLease help :(
IT MUST BE A PYTHON PROGRAM!
It needs everything below. Please help me out!!!!

Write a 2d array python program that plays the game Tic-Tac-Toe. TicTacToe is a game played on a 3x3 board, where players’ alternate turns selecting an empty position on the board to place their game piece (traditionally Xs and Os for game pieces). The first player to get 3 of their own pieces in a row (diagonally, horizontally, or vertically) wins. If the board fills and there are no winners, then the game is tied.
All your functions, including main(), must not have over 15 lines of code, this doesn’t include comments or blank lines.

Some functions you might want to include are an initialize_board(), which initializes the board to spaces, a determine_player_choice() that allows players to pick their pieces, i.e. ‘X’ or ‘O’, fill_board(), which fills the board with the player’s choice, a print_board() that prints the board to the screen after each user’s turn,is_full() to check if the board is full, a check_for_winner(), which checks to see if there is a winner, and a print_winner_results() that prints the results of the game to the screen.

First, prompt the user for the character each player wants to choose. Print the empty board, and then prompt the player(s) for their position on the board, printing the board after each turn. If the player chooses a position on the board that is already occupied, you must prompt them for another position on the board!!! Ask the user if he/she wants to play again, and keep track of the number of wins for each player, as well as the number of ties. Print this information at the end of all the games played, after the user no longer wants to play.

Prompt the user to find out if he/she wants to play with one or two players. If the user wants to play with only one player, then the computer must play the one player. You can choose whatever algorithm you want for the computer, i.e. picking random places to put the piece or intelligently selecting your move based on player 1’s selection. However, you mustn’t ever select a position that has already been selected at any time!!!

Tic-Tac-Toe Error Handling/Recovery:

Player’s board choice is not appropriate, such as a non-positive int for row/column

Player chooses a position that is not on the board, i.e. row 5, column 2.

Player chooses a position on the board that is already occupied.

Player 2 chooses Player 1’s character/game piece.

Requirements (Each is an automatic 10 point deduction!!!):

You must have a main function and a print board function.

Your code cannot contain any global variables or statements, except a global call to main.

Each function with comments including description, parameters, preconditions,

postconditions, and returns.

Solution

# Tic Tac Toe

import random

def drawBoard(board):
# This function prints out the board that it was passed.

# \"board\" is a list of 10 strings representing the board (ignore index 0)
print(\' | |\')
print(\' \' + board[7] + \' | \' + board[8] + \' | \' + board[9])
print(\' | |\')
print(\'-----------\')
print(\' | |\')
print(\' \' + board[4] + \' | \' + board[5] + \' | \' + board[6])
print(\' | |\')
print(\'-----------\')
print(\' | |\')
print(\' \' + board[1] + \' | \' + board[2] + \' | \' + board[3])
print(\' | |\')

def inputPlayerLetter():
# Lets the player type which letter they want to be.
# Returns a list with the player’s letter as the first item, and the computer\'s letter as the second.
letter = \'\'
while not(letter == \'X\' or letter == \'O\'):
print(\'Do you want to be X or O?\')
letter = input().upper()

# the first element in the list is the player’s letter, the second is the computer\'s letter.
if letter == \'X\':
return [\'X\', \'O\']
else:
return [\'O\', \'X\']

def whoGoesFirst():
# Randomly choose the player who goes first.
if random.randint(0, 1) == 0:
return \'computer\'
else:
return \'player\'

def playAgain():
# This function returns True if the player wants to play again, otherwise it returns False.
print(\'Do you want to play again? (yes or no)\')
return input().lower().startswith(\'y\')

def makeMove(board, letter, move):
board[move] = letter

def isWinner(bo, le):
# Given a board and a player’s letter, this function returns True if that player has won.
# We use bo instead of board and le instead of letter so we don’t have to type as much.
return ((bo[7] == le and bo[8] == le and bo[9] == le) or # across the top
(bo[4] == le and bo[5] == le and bo[6] == le) or # across the middle
(bo[1] == le and bo[2] == le and bo[3] == le) or # across the bottom
(bo[7] == le and bo[4] == le and bo[1] == le) or # down the left side
(bo[8] == le and bo[5] == le and bo[2] == le) or # down the middle
(bo[9] == le and bo[6] == le and bo[3] == le) or # down the right side
(bo[7] == le and bo[5] == le and bo[3] == le) or # diagonal
(bo[9] == le and bo[5] == le and bo[1] == le)) # diagonal

def getBoardCopy(board):
# Make a duplicate of the board list and return it the duplicate.
dupeBoard = []

for i in board:
dupeBoard.append(i)

return dupeBoard

def isSpaceFree(board, move):
# Return true if the passed move is free on the passed board.
return board[move] == \' \'

def getPlayerMove(board):
# Let the player type in their move.
move = \' \'
while move not in \'1 2 3 4 5 6 7 8 9\'.split() or not isSpaceFree(board, int(move)):
print(\'What is your next move? (1-9)\')
move = input()
return int(move)

def chooseRandomMoveFromList(board, movesList):
# Returns a valid move from the passed list on the passed board.
# Returns None if there is no valid move.
possibleMoves = []
for i in movesList:
if isSpaceFree(board, i):
possibleMoves.append(i)

if len(possibleMoves) != 0:
return random.choice(possibleMoves)
else:
return None

def getComputerMove(board, computerLetter):
# Given a board and the computer\'s letter, determine where to move and return that move.
if computerLetter == \'X\':
playerLetter = \'O\'
else:
playerLetter = \'X\'

# Here is our algorithm for our Tic Tac Toe AI:
# First, check if we can win in the next move
for i in range(1, 10):
copy = getBoardCopy(board)
if isSpaceFree(copy, i):
makeMove(copy, computerLetter, i)
if isWinner(copy, computerLetter):
return i

# Check if the player could win on their next move, and block them.
for i in range(1, 10):
copy = getBoardCopy(board)
if isSpaceFree(copy, i):
makeMove(copy, playerLetter, i)
if isWinner(copy, playerLetter):
return i

# Try to take one of the corners, if they are free.
move = chooseRandomMoveFromList(board, [1, 3, 7, 9])
if move != None:
return move

# Try to take the center, if it is free.
if isSpaceFree(board, 5):
return 5

# Move on one of the sides.
return chooseRandomMoveFromList(board, [2, 4, 6, 8])

def isBoardFull(board):
# Return True if every space on the board has been taken. Otherwise return False.
for i in range(1, 10):
if isSpaceFree(board, i):
return False
return True


print(\'Welcome to Tic Tac Toe!\')

while True:
# Reset the board
theBoard = [\' \'] * 10
playerLetter, computerLetter = inputPlayerLetter()
turn = whoGoesFirst()
print(\'The \' + turn + \' will go first.\')
gameIsPlaying = True

while gameIsPlaying:
if turn == \'player\':
# Player’s turn.
drawBoard(theBoard)
move = getPlayerMove(theBoard)
makeMove(theBoard, playerLetter, move)

if isWinner(theBoard, playerLetter):
drawBoard(theBoard)
print(\'Hooray! You have won the game!\')
gameIsPlaying = False
else:
if isBoardFull(theBoard):
drawBoard(theBoard)
print(\'The game is a tie!\')
break
else:
turn = \'computer\'

else:
# Computer’s turn.
move = getComputerMove(theBoard, computerLetter)
makeMove(theBoard, computerLetter, move)

if isWinner(theBoard, computerLetter):
drawBoard(theBoard)
print(\'The computer has beaten you! You lose.\')
gameIsPlaying = False
else:
if isBoardFull(theBoard):
drawBoard(theBoard)
print(\'The game is a tie!\')
break
else:
turn = \'player\'

if not playAgain():
break

I need help with my python program! PLease help :( IT MUST BE A PYTHON PROGRAM! It needs everything below. Please help me out!!!! Write a 2d array python progra
I need help with my python program! PLease help :( IT MUST BE A PYTHON PROGRAM! It needs everything below. Please help me out!!!! Write a 2d array python progra
I need help with my python program! PLease help :( IT MUST BE A PYTHON PROGRAM! It needs everything below. Please help me out!!!! Write a 2d array python progra
I need help with my python program! PLease help :( IT MUST BE A PYTHON PROGRAM! It needs everything below. Please help me out!!!! Write a 2d array python progra

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site