Python 井字游戏
我已经为Tic-Tac-Toe游戏编写了一个代码 下面是代码的作用:Python 井字游戏,python,tic-tac-toe,Python,Tic Tac Toe,我已经为Tic-Tac-Toe游戏编写了一个代码 下面是代码的作用: 获取播放器1的名称 获取播放器2的名称 询问播放机1是否需要X或O 如果他选择了X,那么玩家2将获得O,反之亦然 打印空板 要求两名玩家逐个输入行和列,并打印更新后的棋盘。 如果一名球员没有重复前一名球员的位置,那么在比赛结束前一切都会正常进行,没有任何问题 如果一个玩家重复前一个玩家的位置,则会显示一条消息,说明前一个玩家已经占据该位置,并让他再次猜测 现在,在这一点之后,如果我猜除前一个玩家已经使用的索引之外的任何索引
X
或O
X
,那么玩家2将获得O
,反之亦然- 如果一名球员没有重复前一名球员的位置,那么在比赛结束前一切都会正常进行,没有任何问题
- 如果一个玩家重复前一个玩家的位置,则会显示一条消息,说明前一个玩家已经占据该位置,并让他再次猜测
enterguess(turncount)
中,但还没有发现它。知道问题出在哪里吗
代码:
您遇到的问题是,尽管您回忆起了
enterguess
,但没有返回它。因此,它只是不断地调用enterguess
,直到给出有效的输入,然后忽略所有这些,并转到最终的返回语句,该语句仍然具有错误的猜测
添加返回语句:
def enterguess(turncount):
def guess(name):
return (int(input("\n" + players[name] + ", Enter row number: ")),
int(input(players[name] + ", Enter column number: ")))
if turncount % 2 == 0:
(row, col) = guess('player1')
try:
if board[row - 1][col - 1] in [sym['player1'], sym['player2']]:
print "\n" + players['player2'] + " already took that spot! Please guess again."
return enterguess(turncount)
except:
print "\nPlease enter the indexes between 1 and 3."
return enterguess(turncount)
else:
(row, col) = guess('player2')
try:
if board[row - 1][col - 1] in [sym['player1'], sym['player2']]:
print "\n" + players['player1'] + " already took that spot! Please guess again."
return enterguess(turncount)
except IndexError:
print "\nPlease enter a number between 1 and 3."
return nterguess(turncount)
return (row - 1, col - 1)
可能重复的
def enterguess(turncount):
def guess(name):
return (int(input("\n" + players[name] + ", Enter row number: ")),
int(input(players[name] + ", Enter column number: ")))
if turncount % 2 == 0:
(row, col) = guess('player1')
try:
if board[row - 1][col - 1] in [sym['player1'], sym['player2']]:
print "\n" + players['player2'] + " already took that spot! Please guess again."
return enterguess(turncount)
except:
print "\nPlease enter the indexes between 1 and 3."
return enterguess(turncount)
else:
(row, col) = guess('player2')
try:
if board[row - 1][col - 1] in [sym['player1'], sym['player2']]:
print "\n" + players['player1'] + " already took that spot! Please guess again."
return enterguess(turncount)
except IndexError:
print "\nPlease enter a number between 1 and 3."
return nterguess(turncount)
return (row - 1, col - 1)