我需要在这本游戏中的帮助,我想从一本Python书中为我的班级做.这就是书中所说的.游戏NIM的两个玩家版本.在游戏中,玩家轮流从13堆中从1杆中删除.您的程序应验证玩家的输入.这意味着该计划应继续向玩家询问他或她希望服用的棍子数量,因为以下任何一个是正确的:
- 玩家要求服用的棒数大于剩下的棍子数.
- 玩家要求服用的棍子数量大于4,这是他或她被允许服用的最大数量.
- 玩家要求服用的棍子数量少于1,这是他或她被允许服用的最小数量.
这就是我所拥有的 -
打印"欢迎来到尼姆".
棍子= 13
picks = int(raw_input("您想选择多少个棍子?"))))
while(Sticks!= YouWin):
如果选择== 1:
打印"你已经挑选",挑选,"粘在那里",棍子-1,\
"棍子剩下."
如果选择> 4:
打印"非法猜测"
elif选择== 2:
打印"你已经挑选",挑选,"棍子,有",棍子-2,\
"棍子剩下."
打印RAW_INPUT("选择另一个号码.")
elif选择== 3:
打印"你已经挑选",挑选,"棍子,有",棍子-3,\
"棍子剩下."
打印RAW_INPUT("选择另一个号码.")
如果棍子== 0:
打印"你赢"
RAW_INPUT("退出")
# 回答1
首先,使用这样的代码标签:
- print "Welcome to Nim."
-
- sticks = 13
- picks = int(raw_input("How many sticks would you like to pick? "))
-
- while (sticks != youwin):
- if picks == 1:
- print "you have picked ", picks,"stick there are", sticks - 1, "sticks left."
-
- if picks > 4:
- print "illegal guess"
-
- elif picks == 2:
- print "you have picked ", picks,"sticks, there are", sticks - 2, "sticks left."
- print raw_input("Pick another number.")
-
- elif picks == 3:
- print "you have picked ", picks,"sticks, there are", sticks - 3, "sticks left."
- print raw_input("Pick another number.")
-
- if sticks == 0:
- print "you win"
-
- raw_input("exit")
# 回答2
好的,现在是一个真正的问题:
首先,您只设置一次选择的值.
其次,您永远不会定义Youwin的价值.
第三,在不需要的情况下,使用Parens周围使用Parens是不好的.
尝试这个:
- print "Welcome to Nim."
- sticks=13
- over=False
- while not over: # while the game is not over
- pick=0
- while not 1<=pick and not pick<=4 and not sticks<pick:
- # while your conditions are not satisfied
- try:
- pick=int(raw_input("How many sticks would you like to pick? "))
- except ValueError: # if the user doesn't enter a number, int() raises ValueError
- pass
- sticks-=pick # subtract pick from sticks
- print "You have %d sticks remaining."%sticks # formatted string
- if sticks==0:
- over=True # could also use "break" instead of this flag
- raw_input("You win!")