# 2024春晚刘谦纸牌魔术
import random
q=[]
head=tail=0 #创建队列q
while len(q) !=4: #随机生成4张牌
num=random.randint(1,13)
if num not in q:
q.append(num)
tail=tail+1
print(f"随机抽4张牌,分别是{q}")
random.shuffle(q)
print(f"打乱顺序,当前牌池是{q}")
for i in range(4):
q.append(q[i])
tail=tail+1
print(f"对折后撕开,当前牌池是{q}")
#输入当前信息
name=input("请输入你的姓名")
sex=input("请输入你的性别")
print(f"当前名字长度是{len(name)}")
for i in range(len(name)):
q.append(q[head])
head+=1
tail+=1
print(f"按照名字移动后,当前牌池是{q[head:tail]}")
p=[] #
for i in range(3):
p.append(q[head])
head+=1
s=tail-head
for i in range(s//2):
q.append(q[head])
head+=1
tail+=1
for i in range(len(p)):
q.append(p[i])
tail+=1
for i in range(s-s//2):
q.append(q[head])
head+=1
tail+=1
print(f"取三张牌放中间后,当前牌池是{q[head:tail]}")
key=q[head]
head+=1 #第一张藏好,放在key中
print(f"藏好的牌为{key},当前牌池是{q[head:tail]}")
k=random.randint(1,3)
print(f"南方人取1张牌放中间,北方人取2张牌放中间,其他取3张牌放中间")
print(f"随机取{k}张放中间")
p=[] #
for i in range(k):
p.append(q[head])
head+=1
s=tail-head
for i in range(s//2):
q.append(q[head])
head+=1
tail+=1
for i in range(len(p)):
q.append(p[i])
tail+=1
for i in range(s-s//2):
q.append(q[head])
head+=1
tail+=1
print(f"当前牌池是{q[head:tail]}")
if sex == "男":
head+=1
else:
head+=2
print(f"性别是{sex},丢掉了牌之后当前牌池是{q[head:tail]}")
print(f"见证奇迹的时刻")
print(f"把第1张牌放末尾7次")
for i in range(7):
q.append(q[head])
head+=1
tail+=1
print(f"当前牌池是{q[head:tail]}")
print(f"好运留下来,烦恼全扔掉!")
print(f"把第1张牌放末尾,第二张牌扔掉。")
while head+1 != tail:
q.append(q[head])
head+=1
tail+=1
q.append(q[head])
head+=1
print(f"藏好的牌为{key},当前牌池是{q[head:tail]}")
刘谦春晚魔术用Python实现脚本分享
2024-07-16
本文作者: 西米
原文链接: 刘谦春晚魔术用Python实现脚本分享
- « 上一篇自述:聊聊站长近一年多的变化
- 下一篇 »linux一键清理垃圾脚本