python的Nim游戏

我需要在这本游戏中的帮助,我想从一本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


首先,使用这样的代码标签:

选择 | 换行 | 行号
  1. print "Welcome to Nim."
  2.  
  3. sticks = 13
  4. picks = int(raw_input("How many sticks would you like to pick? "))
  5.  
  6. while (sticks != youwin):
  7.     if picks == 1:
  8.         print "you have picked ", picks,"stick there are", sticks - 1, "sticks left."
  9.  
  10.     if picks > 4:
  11.         print "illegal guess"
  12.  
  13.     elif picks == 2:
  14.         print "you have picked ", picks,"sticks, there are", sticks - 2, "sticks left."
  15.         print raw_input("Pick another number.")
  16.  
  17.     elif picks == 3:
  18.         print "you have picked ", picks,"sticks, there are", sticks - 3, "sticks left."
  19.         print raw_input("Pick another number.")
  20.  
  21.     if sticks == 0:
  22.         print "you win"
  23.  
  24. raw_input("exit")
# 回答2


好的,现在是一个真正的问题:
首先,您只设置一次选择的值.
其次,您永远不会定义Youwin的价值.
第三,在不需要的情况下,使用Parens周围使用Parens是不好的.
尝试这个:

选择 | 换行 | 行号
  1. print "Welcome to Nim."
  2. sticks=13
  3. over=False
  4. while not over: # while the game is not over
  5.     pick=0
  6.     while not 1<=pick and not pick<=4 and not sticks<pick:
  7.         # while your conditions are not satisfied
  8.         try:
  9.             pick=int(raw_input("How many sticks would you like to pick? "))
  10.         except ValueError: # if the user doesn't enter a number, int() raises ValueError
  11.             pass
  12.     sticks-=pick # subtract pick from sticks
  13.     print "You have %d sticks remaining."%sticks # formatted string
  14.     if sticks==0:
  15.         over=True # could also use "break" instead of this flag
  16. raw_input("You win!")

标签: python

添加新评论