这是我到目前为止所做的:
import random
nSuits = 4 # yellow/red/blue/green
nCards = 25 # Number of random cards
nPlayers = 500
def Random_guess():
randomCards = [random.randrange(nSuits) for i in range(nCards)]
randomGuesses = [random.randrange(nSuits) for i in range (nPlayers)]
根据shell,randomCards
可以正常工作,但我无法找到一种方法将随机卡归因于每个玩家以及他们对4种颜色的猜测。
有什么建议吗?
答案 0 :(得分:0)
如果我理解正确,每个玩家需要25个猜测(每张卡一个):
randomGuesses = [[random.randrange(nSuits) for i in range (nCards)] for j in range(nPlayers)]
这将生成一个包含nPlayer嵌套列表的列表,每个列表都有nCards“猜测”。
randomGuesses[i][j]
是第i个玩家的第j个猜测。
答案 1 :(得分:0)
创建一个Class是一个很好的方式,可以让所有人“拥有”(或“做”)同样的事情。
一个常见的类比是工厂之一:它是一个生产对象模板的对象工厂,然后可以通过属性,角色,职责等进行自定义。
首先,初始化你的课程:
import random
nSuits = 4 # yellow/red/blue/green
nMaxSuits = 10 # only ten of each yellow, red, blue, green
nCards = 25 # Number of random cards
nPlayers = 500
deck = [suit for suit in range(nMaxSuits) for suit in range(nSuits)]
class CardPerson(object):
def __init__(self, cards):
self.cards = cards
def guess(self):
#use [deck] list above, it has all good cards
random.shuffle(self.cards)
return [self.cards.pop() for i in range(nCards)]
if __name__ == '__main__':
for x in range(nPlayers):
person = CardPerson(deck) #you've made your CardPerson...now, get their guesses
#person.guess() will give you 25 guesses
#compare it to the cards variable above; if matches >= 17, then...(???)
更多信息:
Getting common elements between two lists不会使用set
(消除重复)。
答案 2 :(得分:0)
写一个遍历500名玩家的循环。在循环体中,(1)生成2个随机列表,每个25张卡片(给当前用户的25张卡片,以及她的25个猜测),(2)检查每个卡片猜测对以计算好的猜测数量,(3)存储当前玩家的结果。循环结束后,您将获得一个列表,其中包含所有500名玩家的猜测性能。