Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Python Question.. The tic-tac-toe python prog gives couple of errors, please cor

ID: 662341 • Letter: P

Question

Python Question.. The tic-tac-toe python prog gives couple of errors, please correct them

import random

def drawGameBoard(gameboard):
    print ("------TIC-TAC-TOE------")
    print ("1:" + gameboard[1] + "2:"+ gameboard[2] + "3:" + gameboard[3] + "4:"
           + gameboard[4] + "5:" + gameboard[5] + "6:"+ gameboard[6] + "7:" + gameboard[7] +
           "8:" + gameboard[8] + "9:" +gameboard[9])

player1_letter="X"
player2_letter="O"
def getPlayerName():
    player1=raw_input("Enter name for user-1(X):")
    player2=raw_input("Enter name for user-2(O):")


    return[player1,player2]

def whoPlaysFirst():
    if random.randint(0,1)==0:
        return player1
    else:
        return player2


def Movement(gameboard,letter,move):
    gameboard[move]=letter
def isWin(board,letter):
    return((board[7]==letter and board[8]==letter and board[9]==letter) or
           (board[4]==letter and board[5]==letter and board[6]==letter) or
           (board[1]==letter and board[2]==letter and board[3]==letter) or
           (board[7]==letter and board[4]==letter and board[1]==letter) or
           (board[8]==letter and board[5]==letter and board[2]==letter) or
           (board[9]==letter and board[6]==letter and board[3]==letter) or
           (board[7]==letter and board[5]==letter and board[3]==letter) or
           (board[9]==letter and board[5]==letter and board[1]==letter))
def getgameboardCopy(gameboard):
    dupegameboard=[]
    for i in gameboard:
        dupegameboard.append(i)
    return dupegameboard

def isSpaceAvailable(gameboard,move):
    return gameboard[move]==" "
def getPlayerMove(gameboard,letter):
    movecount= movecount+1
    move=" "
    if player1_letter==letter:
        while move not in "1 2 3 4 5 6 7 8 9".split()or not isSpaceAvailable(gameboard,int(move)):
            print ("%s, please make the %d th move (%c) or type 'save'", %player1, %movecount, %player1_letter)
            move= input()
    elif player2_letter==letter:
        while move not in "1 2 3 4 5 6 7 8 9".split()or not isSpaceAvailable(gameboard,int(move)):
            print ("%s, please make the %d,th move (%c) or type 'save'", %player2, %movecount, %player2_letter)
            move=input()
    return int(move)

def moveRandom(gameboard,freeSpace):
    availableMoves=[]
    for k in freeSpace:
        if isSpaceAvailable(gameboard,k):
            availableMoves.append(k)
    if len (availableMoves)!=0:
        return random.choice(availableMoves)
    else:
        return None

def isgameboardFull(gameboard):
    for k in range (1,10):
        if isSpaceAvailable(gameboard,k):
            return False
    return True

print ("Welcome to tic-tac-toe game...")
print ("*Previously saved games (%d)", %savedgames)

while True:
    thegameboard=[" "]*10
    gamename=raw_input("Enter name for game:")
    player1,player2=getPlayerName()
    turn=whoPlaysFirst()
    playingGame=True

    while playingGame:
        if turn==player1:
            drawGameBoard(thegameboard)
            move= getPlayerMove(thegameboard,player1_letter)
            Movement(thegameboard,player1_letter,move)
            if isWin(thegameboard, player1_letter):
                drawGameBoard(thegameboard)
                print ("Winner is (%c) %s!", player1_letter, player1)
                playingGame=False
            else:
                if isgameboardFull(thegameboard):
                    drawGameBoard(thegameboard)
                    print ("Draw: no Winner")
                    break
                else:
                    turn=player1
        else:
            drawGameBoard(thegameboard)
            move=getPlayerMove(thegameboard, player2_letter)
            movement (thegameboard, player2_letter, move)
            if isWin(thegameboard, player2_letter):
                drawGameBoard(thegameboard)
                print ("Winner is (%c)%s!", player2_letter, player2)
                playingGame=False
            else:
                if isgameboardFull(thegameboard):
                    drawGameBoard(thegameboard)
                    print ("Draw: no Winner")
                    break
                else:
                    turn=player2

Explanation / Answer

1)

In the code snippet:

drawGameBoard(thegameboard)

move=getPlayerMove(thegameboard, player2_letter)

movement (thegameboard, player2_letter, move)

Capitalise M for movement function. The function defined is named Movement not movement.

2) Replace double quotes with single quotes in the print function

similarly in the second print command

3) savedgames variable is not defined

I've commented the specified line containing the savedgame variable.

Error free code: