【发布时间】:2013-11-23 22:55:50
【问题描述】:
2 人游戏。在这个游戏中,每个玩家轮流从三个袋子之一中取出 1 到 5 个物品:A、B、C。取出最后一个物品的玩家获胜。以下是规则:
• 每个袋子在游戏开始时包含 10 个对象。
• 玩家可以一次从一个袋子中取出物品。
• 玩家不能选择移除 0 个对象。对象的数量必须在 1 到 5(包括)之间。
• 当所有袋子都空了时,游戏结束。
•当前玩家必须先选择袋子(A 或 B 或 C),然后选择必须从该袋子中取出的物品数量。
• 您还必须检查用户的输入是否有效。它是有效的包(A 或 B 或 C)吗?它是一个有效的数字(1 到 5 之间)吗?还有,包里的东西够吗?如果其中任何一个条件不满足,请再次要求用户输入。 (您需要使用循环来执行此操作)
示例:
A B C
10 10 10 Player1 从 B 拿走了 5 个物体。
10 5 10 Player2 从 C 获取 5 个对象。
10 5 5 Player1 从 A 拿走了 3 个物体。
7 5 5 Player2 从 B 处获取 3 个对象。
7 2 5 Player1 从 C 获取 5 个对象。
7 2 0 Player2 从 A 拿走了 2 个对象。
5 2 0 Player1 从 A 获取 1 个对象。
4 2 0 Player2 从 A 获取 3 个对象。
1 2 0 Player1 从 B 中取出 1 个对象。
1 1 0 Player2 从 B 获取 1 个对象。
1 0 0 Player1 从 A 获取 1 个对象。
*注意:*我只能使用循环或 if 条件没有列表或其他
我已经做到了:
A=5
B=5
C=5
total_objects=15
Player1=0
Player2=0
while total_objects>0:
selected_bag=input("Choose the bag:")
if selected_bag == A or B or C:
print("Valid bag")
else:
selected_bag=input("Not a valid bag choose again:")
removed=int(input("How many objects do you want to remove?"))
if removed>5 or removed<1:
int(input("You must enter between 1 and 5:"))
elif removed == 1 or 2 or 3 or 4 or 5:
if selected_bag == A:
A-=removed
if selected_bag == B:
B-=removed
if selected_bag == C:
C-=removed
if A>0:
print("There are",A,"objects left")
elif B>0:
print("There are",B,"objects left")
elif C>0:
print("There are",C,"objects left")
print("You win!")
【问题讨论】:
-
请具体询问您的问题。有什么问题?
-
即使我选择 D 作为包包,它表示包包有效,我该如何替换玩家?
-
有效的包是什么意思?它的值为 5?
-
如果用户选择 D 它应该说 not a valid bag 再次选择
-
不要试图空白你的问题或删除源代码。对于使用该网站的每个人来说,它仍然存在于历史中,但是对于通过搜索找到类似问题的任何人来说,它使您的问题(及其答案)毫无用处。
标签: python loops python-3.x nested-loops