import random
row = ['u2665', 'u2663', 'u2666', 'u2660'] # ["Hearts", "Clubs", "Diamonds", "Spades"]
symbol = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
level = input('Choose Difficulty level: Easy (1), Medium (2), Hard (3): ')
while level!="1" and level!="2" and level!="3":
level = (input('Choose Difficulty level: Easy (1), Medium (2), Hard (3): '))
if level == "1":
col=4
elif level== "2":
col=10
else:
col=1
def value(symbol):
if symbol=="A":
return 1
elif symbol=="Q" or symbol=="J" or symbol=="K":
return 10
else:
return int(symbol)
deck =[]
for i in range(len(row)):
deck.append([])
for j in range(col):
card = [symbol[j], row[i], value(symbol[j]), str(symbol[j])+str(row[i]) , False]
deck.append(card)
我有这段代码,我想洗牌列表。
但是函数shuffle.random(deck)
只洗牌4行…
我想创建一个只有牌和洗牌的新列表,但我不知道如何使它成为一个4行4列或10列或13列的列表。
任何想法和建议都很有价值!
使用random.shuffle(inp)
创建递归函数:如果input
是list
,则对其进行洗牌,否则保留
由于列表是可变的,所以所有东西都是原地的
无论你的列表是如何嵌套的,所有的东西都会被打乱
import random
inp_list = [1, [2,3,4, [5,6,7], 8, 9], [10, 11]]
def shuffle_list(inp):
if type(inp) is list:
random.shuffle(inp)
for i in inp:
shuffle_list(i)
shuffle_list(inp_list)
print(inp_list)
[1, [11, 10], [8, [7, 5, 6], 9, 3, 2, 4]]