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:
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.