我目前正在用python作为一个类项目开发一个内存游戏。我尝试生成0到3之间的随机数,这将对应于某张卡。问题是,我需要每张牌只出现两次。不多也不少。在
以下是我当前的代码:
import random
cards = ["___TI___", "___GK___", "___QW___", "___KJ___"]
boardTemp1 = ['1', '2',
'3', '4',
'5', '6',
'7', '8']
def shuffle():
cardChoose = random.randint(0, 3)
boardChoose = random.randint(0, 7)
randCard = 9
randCard = cards[cardChoose]
boardTemp1[boardChoose] = cards[cardChoose]
return randCard
boardTemp1[0] = shuffle()
boardTemp1[1] = shuffle()
boardTemp1[2] = shuffle()
boardTemp1[3] = shuffle()
boardTemp1[4] = shuffle()
boardTemp1[5] = shuffle()
boardTemp1[6] = shuffle()
boardTemp1[7] = shuffle()
print(boardTemp1)
谢谢你的帮助
你能在生成数字时把它们存储在两个列表中吗? 生成数字时: 检查列表:
-如果编号不在第一个列表中,则将其添加
-如果数字在第一个列表中,请检查第二个列表
-如果数字不在秒中,则将其相加
-如果number在第二个列表中,那么它已经生成了两次,并从那里执行您想要的操作,即假设是生成 另一个随机数。在
像这样的事情:
当你有一组特定的项目在你周围乱转时,做出独立的随机选择不是一个好方法。试试这个:
我会列出每一张牌两次,然后随机化列表而不是棋盘,然后将每张牌从列表中移除,同时将其放在棋盘上:
相关问题 更多 >
编程相关推荐