一个字谜游戏的娱乐
Recreation of a wordpuzzle game
我正在尝试编写一个字谜游戏,这是我卡住的代码片段,我觉得我已经尝试了一切。
答案是可在拼图中找到的单词及其坐标和方向的列表。此处提供的答案是用于测试目的的片段。似乎发生的是程序会找到一个词并说“这是有效的”,但同时又说“这不是一个词”,我不知道如何通过这个。
该程序会在每一轮之后打印可用的答案以供测试。
answers=[(2, 12, 'up', 'reduce'), (11, 0, 'left', 'cherimolla'), (7, 12, 'up', 'leopardbane'), (9, 12, 'upleft', 'bionomical')]
guess = []
move = False
players=[]
players.append("Stephan")
while True:
print(answers)
for i in players:
guess=input("Player " + str(i) + "'s name: make a guess:")
guesses=guess.split(",")
for i in range(0,len(answers)-1):
ans = answers[i]
if int(ans[0]) == int(guesses[0]) and int(ans[1])==int(guesses[1]) and guesses[2] in ans[2]:
answers.remove(ans)
print("this is working")
if (int(ans[0]) != int(guesses[0]) and int(ans[1])!=int(guesses[1]) and ans[2]!=guesses[2] and i==len(answers)-1):
print("sorry this is not a word")
在考虑了评论中的讨论并做了一些我自己的更改之后,这是我想出的代码:
answers = [
(2, 12, 'up', 'reduce'),
(11, 0, 'left', 'cherimolla'),
(7, 12, 'up', 'leopardbane'),
(9, 12, 'upleft', 'bionomical')]
players = ["Tom", "Jerry"]
# Index of the current player in the players list
player_index = 0
# While not all answers were guessed
while len(answers) > 0:
# Ask for a guess
player_name = players[player_index]
guess_raw = input(player_name + ", make a guess (x,y,direction,word): ")
guess = guess_raw.split(",")
# Transform the guess into a tuple of the same format as the answers
guess_tuple = (int(guess[0]), int(guess[1]), guess[2], guess[3])
# Check if the guess is correct
if guess_tuple in answers:
print("Success!")
answers.remove(guess_tuple)
else:
print("Failure")
# Go to the next player
player_index = (player_index + 1) % len(players)
这是一个示例游戏:
Tom, make a guess (x,y,direction,word): 2,12,up,reduce
Success!
Jerry, make a guess (x,y,direction,word): 2,12,up,reduce
Failure
Tom, make a guess (x,y,direction,word): 11,0,left,cherimolla
Success!
Jerry, make a guess (x,y,direction,word): 7,12,up,leopardbane
Success!
Tom, make a guess (x,y,direction,word): 9,12,upleft,bionomical
Success!
为什么 player_index
恶作剧,而不是仅仅绕过玩家?因为否则,在 Tom 猜到最后一个词之后,它仍然会提示 Jerry 猜测,因为玩家的循环还没有结束。
我正在尝试编写一个字谜游戏,这是我卡住的代码片段,我觉得我已经尝试了一切。
答案是可在拼图中找到的单词及其坐标和方向的列表。此处提供的答案是用于测试目的的片段。似乎发生的是程序会找到一个词并说“这是有效的”,但同时又说“这不是一个词”,我不知道如何通过这个。
该程序会在每一轮之后打印可用的答案以供测试。
answers=[(2, 12, 'up', 'reduce'), (11, 0, 'left', 'cherimolla'), (7, 12, 'up', 'leopardbane'), (9, 12, 'upleft', 'bionomical')]
guess = []
move = False
players=[]
players.append("Stephan")
while True:
print(answers)
for i in players:
guess=input("Player " + str(i) + "'s name: make a guess:")
guesses=guess.split(",")
for i in range(0,len(answers)-1):
ans = answers[i]
if int(ans[0]) == int(guesses[0]) and int(ans[1])==int(guesses[1]) and guesses[2] in ans[2]:
answers.remove(ans)
print("this is working")
if (int(ans[0]) != int(guesses[0]) and int(ans[1])!=int(guesses[1]) and ans[2]!=guesses[2] and i==len(answers)-1):
print("sorry this is not a word")
在考虑了评论中的讨论并做了一些我自己的更改之后,这是我想出的代码:
answers = [
(2, 12, 'up', 'reduce'),
(11, 0, 'left', 'cherimolla'),
(7, 12, 'up', 'leopardbane'),
(9, 12, 'upleft', 'bionomical')]
players = ["Tom", "Jerry"]
# Index of the current player in the players list
player_index = 0
# While not all answers were guessed
while len(answers) > 0:
# Ask for a guess
player_name = players[player_index]
guess_raw = input(player_name + ", make a guess (x,y,direction,word): ")
guess = guess_raw.split(",")
# Transform the guess into a tuple of the same format as the answers
guess_tuple = (int(guess[0]), int(guess[1]), guess[2], guess[3])
# Check if the guess is correct
if guess_tuple in answers:
print("Success!")
answers.remove(guess_tuple)
else:
print("Failure")
# Go to the next player
player_index = (player_index + 1) % len(players)
这是一个示例游戏:
Tom, make a guess (x,y,direction,word): 2,12,up,reduce
Success!
Jerry, make a guess (x,y,direction,word): 2,12,up,reduce
Failure
Tom, make a guess (x,y,direction,word): 11,0,left,cherimolla
Success!
Jerry, make a guess (x,y,direction,word): 7,12,up,leopardbane
Success!
Tom, make a guess (x,y,direction,word): 9,12,upleft,bionomical
Success!
为什么 player_index
恶作剧,而不是仅仅绕过玩家?因为否则,在 Tom 猜到最后一个词之后,它仍然会提示 Jerry 猜测,因为玩家的循环还没有结束。