大家玩过《恶魔轮盘赌》吗?
下面是一款我自制python的《恶魔轮盘赌》文字游戏。
(注:这个程序只用了一些基础的代码)
import random
name = [0, '', '']
a = [0, 0, 0, 5, 5]
b = []
c = []
k = [0, 0, 0, 0]
l = [0, 0, 0, 0]
def fun1():
if a[3] == 0:
print(f'{name[1]}血量归零 {name[2]}胜利')
exit()
elif a[4] == 0:
print(f'{name[1]}血量归零 {name[1]}胜利')
exit()
elif a[1] == 0 and a[2] == 0:
print('实弹和空弹都为0 将重新随机子弹\n')
fun()
else:
print(f'{a[1]}实{a[2]}空')
print(f'{name[1]}的血量:{a[3]}')
print(f'{name[1]}的道具:{b}')
print(f'{name[2]}的血量:{a[4]}')
print(f'{name[2]}的道具:{c}')
print(f'轮到{name[1]}开枪')
aaa = input(f'【1.射自己 2.射{name[2]} 3.使用道具】\n>')
if aaa == '1':
if k[1] == 1:
if k[2] == 1:
print('实弹 你死了')
a[3] -= 2
a[1] -= 1
k[1] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print('实弹 你死了')
a[3] -= 1
a[1] -= 1
k[1] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif k[1] == 2:
if k[2] == 1:
print(f'空弹 你活了下来 跳过{name[2]}回合')
a[2] -= 1
k[1] = 0
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun1()
else:
print(f'空弹 你活了下来 跳过{name[2]}回合')
a[2] -= 1
k[1] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun1()
elif a[1] != 0 and a[2] != 0:
s = random.randint(1, a[1] + a[2])
if s <= a[1]:
if k[2] == 1:
print('实弹 你死了')
a[3] -= 2
a[1] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print('实弹 你死了')
a[3] -= 1
a[1] -= 1
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif s > a[1]:
if k[2] == 1:
print(f'空弹 你活了下来 跳过{name[2]}回合')
a[2] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun1()
else:
print(f'空弹 你活了下来 跳过{name[2]}回合')
a[2] -= 1
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun1()
elif a[1] == 0 and a[2] != 0:
if k[2] == 1:
print(f'空弹 你活了下来 跳过{name[2]}回合')
a[2] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun1()
else:
print(f'空弹 你活了下来 跳过{name[2]}回合')
a[2] -= 1
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun1()
elif a[1] != 0 and a[2] == 0:
if k[2] == 1:
print('实弹 你死了')
a[3] -= 2
a[1] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print('实弹 你死了')
a[3] -= 1
a[1] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif aaa == '2':
if k[1] == 1:
if k[2] == 1:
print(f'实弹 {name[2]}死了')
a[4] -= 2
a[1] -= 1
k[1] = 0
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print(f'实弹 {name[2]}死了')
a[4] -= 1
a[1] -= 1
k[1] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif k[1] == 2:
if k[2] == 1:
print(f'空弹 {name[2]}活了下来')
a[2] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print(f'空弹 {name[2]}活了下来')
a[2] -= 1
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif a[1] != 0 and a[2] != 0:
s = random.randint(1, a[1] + a[2])
if s <= a[1]:
if k[2] == 1:
print(f'实弹 {name[2]}死了')
a[4] -= 2
a[1] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print(f'实弹 {name[2]}死了')
a[4] -= 1
a[1] -= 1
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif s > a[2]:
if k[2] == 1:
print(f'空弹 {name[2]}活了下来')
a[2] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print(f'空弹 {name[2]}活了下来')
a[2] -= 1
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif a[1] == 0 and a[2] != 0:
if k[2] == 1:
print(f'空弹 {name[2]}活了下来')
a[2] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print(f'空弹 {name[2]}活了下来')
a[2] -= 1
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif a[1] != 0 and a[2] == 0:
if k[2] == 1:
print(f'实弹 {name[2]}死了')
a[4] -= 2
a[1] -= 1
k[2] = 0
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
else:
print(f'实弹 {name[2]}死了')
a[4] -= 1
a[1] -= 1
if k[3] == 1:
k[3] = 0
print(f'手铐生效 跳过{name[2]}回合\n')
fun1()
else:
print()
fun2()
elif aaa == '3':
fun11()
else:
print('没有此选项\n')
fun1()
def fun11():
aaa = input(f'道具:{b}\n请输入要使用的道具名称【0.退出】\n>')
if aaa == '0':
fun1()
if b.__contains__(f'{aaa}'):
if aaa == '啤酒':
b.remove('啤酒')
x = random.randint(1, a[1] + a[2])
if x <= a[1]:
print('已退出一发实弹\n')
a[1] -= 1
fun11()
elif x > a[1]:
print('已退出一发空弹\n')
a[2] -= 1
fun11()
elif aaa == '香烟':
b.remove('香烟')
print('已使用香烟,血量+1\n')
a[3] += 1
fun11()
elif aaa == '放大镜':
b.remove('放大镜')
x = random.randint(1, a[1] + a[2])
if x <= a[1]:
k[1] = 1
print('实弹\n')
fun11()
elif x > a[1]:
k[1] = 2
print('空弹\n')
fun11()
elif aaa == '小刀':
b.remove('小刀')
print('已使用小刀,伤害翻倍\n')
k[2] = 1
fun11()
elif aaa == '手铐':
b.remove('手铐')
print(f'已使用手铐,跳过{name[2]}回合一次\n')
k[3] = 1
fun11()
else:
print('没有此道具')
fun11()
def fun2():
if a[3] == 0:
print(f'{name[1]}血量归零 {name[2]}胜利')
exit()
elif a[4] == 0:
print(f'{name[1]}血量归零 {name[1]}胜利')
exit()
elif a[1] == 0 and a[2] == 0:
print('实弹和空弹都为0 将重新随机子弹\n')
fun()
else:
print(f'{a[1]}实{a[2]}空')
print(f'{name[1]}的血量:{a[3]}')
print(f'{name[1]}的道具:{b}')
print(f'{name[2]}的血量:{a[4]}')
print(f'{name[2]}的道具:{c}')
print(f'轮到{name[2]}开枪')
aaa = input(f'【1.射自己 2.射{name[1]} 3.使用道具】\n>')
if aaa == '1':
if l[1] == 1:
if l[2] == 1:
print('实弹 你死了')
a[4] -= 2
a[1] -= 1
l[1] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print('实弹 你死了')
a[4] -= 1
a[1] -= 1
l[1] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif l[1] == 2:
if l[2] == 1:
print(f'空弹 你活了下来 跳过{name[1]}回合')
a[2] -= 1
l[1] = 0
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun2()
else:
print(f'空弹 你活了下来 跳过{name[1]}回合')
a[2] -= 1
l[1] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun2()
elif a[1] != 0 and a[2] != 0:
s = random.randint(1, a[1] + a[2])
if s <= a[1]:
if l[2] == 1:
print('实弹 你死了')
a[4] -= 2
a[1] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print('实弹 你死了')
a[4] -= 1
a[1] -= 1
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif s > a[1]:
if l[2] == 1:
print(f'空弹 你活了下来 跳过{name[1]}回合')
a[2] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun2()
else:
print(f'空弹 你活了下来 跳过{name[1]}回合')
a[2] -= 1
print()
fun2()
elif a[1] == 0 and a[2] != 0:
if l[2] == 1:
print(f'空弹 你活了下来 跳过{name[1]}回合')
a[2] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun2()
else:
print(f'空弹 你活了下来 跳过{name[1]}回合')
a[2] -= 1
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun2()
elif a[1] != 0 and a[2] == 0:
if l[2] == 1:
print('实弹 你死了')
a[4] -= 2
a[1] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print('实弹 你死了')
a[4] -= 1
a[1] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif aaa == '2':
if l[1] == 1:
if l[2] == 1:
print(f'实弹 {name[1]}死了')
a[3] -= 2
a[1] -= 1
l[1] = 0
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print(f'实弹 {name[1]}死了')
a[3] -= 1
a[1] -= 1
l[1] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif l[1] == 2:
if l[2] == 1:
print(f'空弹 {name[1]}活了下来')
a[2] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print(f'空弹 {name[1]}活了下来')
a[2] -= 1
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif a[1] == 0 and a[2] != 0:
s = random.randint(1, a[1] + a[2])
if s <= a[1]:
if l[2] == 1:
print(f'实弹 {name[1]}死了')
a[3] -= 2
a[1] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print(f'实弹 {name[1]}死了')
a[3] -= 1
a[1] -= 1
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif s > a[2]:
if l[2] == 1:
print(f'空弹 {name[1]}活了下来')
a[2] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print(f'空弹 {name[1]}活了下来')
a[2] -= 1
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif a[1] != 0 and a[2] != 0:
if l[2] == 1:
print(f'空弹 {name[1]}活了下来')
a[2] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print(f'空弹 {name[1]}活了下来')
a[2] -= 1
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif a[1] != 0 and a[2] == 0:
if l[2] == 1:
print(f'实弹 {name[1]}死了')
a[3] -= 2
a[1] -= 1
l[2] = 0
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
else:
print(f'实弹 {name[1]}死了')
a[3] -= 1
a[1] -= 1
if l[3] == 1:
l[3] = 0
print(f'手铐生效 跳过{name[1]}回合\n')
fun2()
else:
print()
fun1()
elif aaa == '3':
fun21()
else:
print('没有此选项\n')
fun2()
def fun21():
aaa = input(f'道具:{c}\n请输入要使用的道具名称【0.退出】\n>')
if aaa == '0':
fun1()
if c.__contains__(f'{aaa}'):
if aaa == '啤酒':
c.remove('啤酒')
x = random.randint(1, a[1] + a[2])
if x <= a[1]:
print('已退出一发实弹\n')
a[1] -= 1
fun21()
elif x > a[1]:
print('已退出一发空弹\n')
a[2] -= 1
fun21()
elif aaa == '香烟':
c.remove('香烟')
print('已使用香烟,血量+1\n')
a[3] += 1
fun21()
elif aaa == '放大镜':
c.remove('放大镜')
x = random.randint(1, a[1] + a[2])
if x <= a[1]:
l[1] = 1
print('实弹\n')
fun21()
elif x > a[1]:
l[1] = 2
print('空弹\n')
fun21()
elif aaa == '小刀':
c.remove('小刀')
print('已使用小刀,伤害翻倍\n')
l[2] = 1
fun21()
elif aaa == '手铐':
c.remove('手铐')
print(f'已使用手铐,跳过{name[2]}回合一次\n')
l[3] = 1
fun21()
else:
print('没有此道具')
fun21()
def fun():
x1 = random.randint(1, 5)
x2 = random.randint(1, 5)
a[1] = x1
a[2] = x2
y1 = random.choice(['啤酒', '香烟', '放大镜', '小刀', '手铐'])
b.append(f'{y1}')
y2 = random.choice(['啤酒', '香烟', '放大镜', '小刀', '手铐'])
b.append(f'{y2}')
y3 = random.choice(['啤酒', '香烟', '放大镜', '小刀', '手铐'])
b.append(f'{y3}')
y4 = random.choice(['啤酒', '香烟', '放大镜', '小刀', '手铐'])
c.append(f'{y4}')
y5 = random.choice(['啤酒', '香烟', '放大镜', '小刀', '手铐'])
c.append(f'{y5}')
y6 = random.choice(['啤酒', '香烟', '放大镜', '小刀', '手铐'])
c.append(f'{y6}')
aaa = input('请输入玩家1的名称\n>')
name[1] = aaa
aaa = input('请输入玩家2的名称\n>')
name[2] = aaa
print()
fun()
fun1()
能给我点个赞吗,制作不易