所以我正在创建一个非常基本的python游戏,我需要一些帮助,我坚持这一步。游戏的概念是让程序滚动两个模具并添加总和。使用该号码,他们可以从号码列表(1-10)中选择一个号码来“挂钩”。他们继续前进,直到所有数字都被挂钩或者没有选择。在程序的早期,我创建了两个我在此步骤中使用的函数。这两个是ask_number和valid_moves。问号基本上只是询问他们要挂哪个号码,但实际上并没有挂号。 valid_moves函数只检查哪些数字仍可供玩家选择。
游戏几乎就是这样:#/ p>
------------------------------ (1)(2)(3)(4)(X)(6)(7)(X)(9)(X) ------------------------------
X是已经挂钩的数字。在游戏的这一部分,我需要弄清楚如何用“X”替换数字。到目前为止我有这个,但我知道我离开了,我在弄清楚要做什么时遇到了麻烦。 (pegholes是列表的名称,move是他们在ask_number函数中选择的数字)。非常感谢!
PEGGED = "X"
def enter_peg(pegholes, roll, total):
ask_number()
if ask_number == valid_moves():
pegholes.append(ask_number(PEGGED))
return pegholes, move
答案 0 :(得分:1)
我真的不确定你的游戏应该如何运作,但这可能会帮助你:
#!/usr/bin/env python
import random
import sys
pegs = range(2, 11)
def roll_dice():
return random.randint(1, 5) + random.randint(1, 5)
while True:
roll = roll_dice()
print "You rolled %s" %roll
available_choices = set(p for p in pegs if p != 'X') - set(range(roll+1, 11))
if len(available_choices) == 0:
print "FAIL SAUCE"
sys.exit()
while True:
choice = raw_input("Choose a number %s: " % (", ".join(str(x) for x in sorted(list(available_choices)))))
if choice == 'q':
sys.exit()
choice = int(choice)
if choice in available_choices:
break
print "Nice try buddy... pick a number in range, that hasn't been picked"
pegs[choice - 2] = 'X'
print "".join("(%s)" % p for p in pegs)
if len([x for x in pegs if x == 'X']) == 9:
print "WINNER!"
sys.exit()
答案 1 :(得分:0)
我不清楚你要做什么......
您可以尝试这样的事情:
import random
#set up list of numbers from 2 to 10
numlist = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
#create a roll dice function, producing the sum of two random integers 1-6
def rolldice():
return (random.randint(1,6) + random.randint(1,6))
#run the rolldice function
roll = rolldice()
#set up a loop for while the sum of the roll appears in the list
while roll in numlist:
print "Your rolled %s" %roll
print "Your list was", numlist
print "Replacing %s with X" %roll
numlist[numlist.index(roll)]="X"
print "Your new list is", numlist
raw_input("Press enter to roll again")
roll = rolldice()
#once a roll not in the list show up:
print "Your roll was %s" %roll
print "This is not in your list"
您还可以添加另一个if语句,询问用户是否要在列表中没有滚动时再次尝试...然后返回while循环。
继续努力 - 去年夏天,我对这一切都很陌生,我还在学习。只是继续尝试不同的事情......你将从错误中吸取教训。