【发布时间】:2019-08-27 21:10:06
【问题描述】:
我正在写一个井字游戏,目前有以下功能:
# Need: Board, Display Board, Play Game, Alternating Terms, Os, Xs, Wins, Losses
board = ["-", "-", "-",
"-", "-", "-",
"-", "-", "-", ]
def display_board():
print(board[0] + " | " + board[1] + " | " + board[2])
print(board[3] + " | " + board[4] + " | " + board[5])
print(board[6] + " | " + board[7] + " | " + board[8])
def handle_turn():
position = input("\nChoose a position from 1 to 9: ")
position = int(position) - 1
return position
def choose_player_marker(marker):
player_marker = ''
if marker == 'X' or marker == 'x':
player_marker = 'X'
return player_marker
elif marker == 'O' or marker == 'o':
player_marker = 'O'
return player_marker
def opp_move():
opp_marker = ''
if choose_player_marker() == 'X':
opp_marker = 'O'
else:
opp_marker = 'X'
def play_game():
game_current = True
display_board()
marker = input("\nPlease choose a marker: 'X' or 'x' OR 'O' or 'o' : ")
choose_player_marker(marker)
opp_move()
handle_turn()
play_game()
在函数def choose_player_marker(marker): 中,我根据条件返回player_marker = 'X' 或player_marker = 'O'。
我想在函数def opp_move(): 中使用生成的'X' 或'O' 来确定对手将选择哪个标记。但是,我很难正确委派 return 声明。我尝试使用marker 作为def opp_move(): 函数中的参数,也尝试过if choose_player_marker(marker) == 'X' 无济于事。
如何正确处理来自def choose_player_marker(marker): 的return 语句,以便我的def opp_move(): 函数能够确定对手会选择什么标记?
【问题讨论】:
-
但是
marker应该来自哪里? -
你应该将
marker参数传递给函数,然后你会得到某种的返回值。现在你只是得到一个错误 -
@DanielRoseman
marker来自主函数,它存储用户的输入,如果他们想作为 X 或 O @ForceBru 我已经尝试将marker传递给opp_move()但是只是不断遇到错误 - 无论出于何种原因,choose_player_marker似乎并没有真正返回我希望它返回的内容:( -
什么错误?显示您正在使用的值、完整的上下文,包括
marker的来源,以及您得到的实际错误。现在我们只能猜测发生了什么。 -
编辑问题以显示您的完整代码。