我厉害了!感谢大家支持!!!
还记得我们出第一个博客的时候,我写了一个简单的文字游戏吗?最近复习的时候发现还有一些漏洞,所以今天我们就来改进一下。我的第一个简单Python游戏原文
原文代码:
def oo():
import time
h = 1
ss = 0
mm = 0
from random import shuffle
print("\n规则:抽到金色传说宝箱和金色传说宝箱钥匙的,即可通关,如果抽奖卷不够,请输入yes,即可打怪兽赚钱,如果不需要,请输入no")
dd = input("\n")
while ss < 5:
if dd == "yes":
print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
cc = input("\n请选择你想要打的怪兽:")
if cc == "小型怪兽":
print("\n狩猎成功")
h += 1
nn = input("\n是否继续打(yes or no)")
if nn == "yes":
ss += 1
else:
break
elif cc == "\n中型怪兽":
print("\n找不到鞭子,无法狩猎")
nn = input("\n是否继续打(yes or no)")
if nn == "yes":
ss += 1
else:
break
elif cc == "\n大型怪兽":
print("\n找不到大宝剑,无法狩猎")
nn = input("\n是否继续打(yes or no)")
if nn == "yes":
ss += 1
else:
break
else:
print("\n好的,开始抽奖")
break
time.sleep(5)
while True:
if h >= 1:
l = ["\n金色传说宝箱","安慰奖","记忆3个","大宝剑","钻石100","钻石10000","5000金魂币","1万金魂币","金色传说宝箱钥匙","抽奖券2个"]
print('\n奖品预览',l)
print("\n打乱中...")
time.sleep(5)
shuffle(l)
if l[1] == "安慰奖":
print('\nSorry,抽到了安慰奖,送你一只小气球')
else:
print('\n恭喜你抽到了',l[1])
h -= 1
if l[1] == "抽奖券2个":
h += 2
print("")
if l[1] == "金色传说宝箱" or l[1] == "金色传说宝箱钥匙":
del l[1]
mm += 1
if mm == 2:
print("\n恭喜通关!")
exit()
break
else:
print("\n您已没有抽奖券")
break
jj = input("\n会员跳关密码:")
if jj == "Q20090611.":
print("\n密码正确,可以跳关")
print("\n恭喜通关!")
else:
print("\n密码错误,不能跳关")
oo()
改变量名
首先第一件事情就是要改变量名,因为我当时取变量名的时候都是随便写的,以导致我复习的时候都有点看不懂我写的代码了。
改好之后:
def game():
import time
luck_draw = 1
monster = 0
end = 0
from random import shuffle
print("\n规则:抽到金色传说宝箱和金色传说宝箱钥匙的,即可通关,如果抽奖卷不够,请输入yes,即可打怪兽赚钱,如果不需要,请输入no")
walk = input("\n")
while monster < 5:
if walk == "yes":
print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
walk = input("\n请选择你想要打的怪兽:")
if walk == "小型怪兽":
print("\n狩猎成功")
monster += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "中型怪兽":
print("\n找不到鞭子,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "\n大型怪兽":
print("\n找不到大宝剑,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
else:
print("\n好的,开始抽奖")
break
time.sleep(5)
while True:
if luck_draw >= 1:
l = ["\n金色传说宝箱","安慰奖","记忆3个","大宝剑","钻石100","钻石10000","5000金魂币","1万金魂币","金色传说宝箱钥匙","抽奖券2个"]
print('\n奖品预览',l)
print("\n打乱中...")
time.sleep(5)
shuffle(l)
if l[1] == "安慰奖":
print('\nSorry,抽到了安慰奖,送你一只小气球')
else:
print('\n恭喜你抽到了',l[1])
luck_draw -= 1
if l[1] == "抽奖券2个":
luck_draw += 2
print("")
if l[1] == "金色传说宝箱" or l[1] == "金色传说宝箱钥匙":
del l[1]
end += 1
if end == 2:
print("\n恭喜通关!")
exit()
break
else:
print("\n您已没有抽奖券")
break
password = input("\n会员跳关密码:")
if password == "Q20090611.":
print("\n密码正确,可以跳关")
print("\n恭喜通关!")
else:
print("\n密码错误,不能跳关")
game()
打怪兽
如果仔细看代码就会发现,只有小怪兽才能打,大怪兽我没给判断条件。
所以我需要添加一些变量和判断。
首先我们要设立一个书包的字典,让打完小型怪兽之后增加一个鞭子
bag = {'鞭子': 0,
'大宝剑': 0}
if walk == "小型怪兽":
print("\n狩猎成功")
monster += 1
bag['鞭子'] + 1
因为在这个抽奖游戏中,只有鞭子,大宝剑,还有金钥匙,金宝箱是有用的,就不用多设置了。
接下来就是中型和大型的判断条件了
if bag['鞭子'] > 0:
print('\n狩猎成功')
monster += 1
else:
print("\n找不到鞭子,无法狩猎")
大型怪兽的判断条件也是如此。
因为大宝剑的的唯一来源是通过抽奖,我们就需要对抽奖系统进一些整体的改动。
首先就是在每次抽奖完毕的时刻加一个判断条件,用来判断每一次抽奖是返回打怪兽界面还是继续抽奖。
walk = input('\n1.去打怪兽 2.继续抽奖\n')
if walk == 1:
while monster > 0:
print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
walk = input("\n请选择你想要打的怪兽:")
if walk == "小型怪兽":
print("\n狩猎成功")
monster += 1
bag['鞭子'] + 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "中型怪兽":
if bag['鞭子'] > 0:
print('\n狩猎成功')
monster += 1
else:
print("\n找不到鞭子,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
if walk == 2:
pass
然后在抽奖的时候增加一条大宝剑的判断。
if l[1] == '大宝剑':
print('\n恭喜你抽到了', l[1])
bag['大宝剑'] += 1
再进行一下细节上的修改,成品:
def game():
import time
luck_draw = 1
bag = {'鞭子': 0,
'大宝剑': 0}
monster = 0
end = 0
from random import shuffle
print("\n规则:抽到金色传说宝箱和金色传说宝箱钥匙的,即可通关,如果抽奖卷不够,请输入yes,即可打怪兽赚钱,如果不需要,请输入no")
walk = input("\n")
while monster < 5:
if walk == "yes":
print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
walk = input("\n请选择你想要打的怪兽:")
if walk == "小型怪兽":
print("\n狩猎成功")
luck_draw += 1
bag['鞭子'] += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "中型怪兽":
if bag['鞭子'] > 0:
print('\n狩猎成功')
luck_draw += 1
else:
print("\n找不到鞭子,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 2
else:
break
elif walk == "\n大型怪兽":
if bag['大宝剑'] > 0:
print('\n狩猎成功')
luck_draw += 3
else:
print("\n找不到大宝剑,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
else:
print("\n好的,开始抽奖")
break
time.sleep(5)
while True:
if luck_draw >= 1:
l = ["\n金色传说宝箱", "安慰奖", "记忆3个", "大宝剑", "钻石100", "钻石10000", "5000金魂币", "1万金魂币", "金色传说宝箱钥匙", "抽奖券2个"]
print('\n奖品预览', l)
print("\n打乱中...")
time.sleep(5)
shuffle(l)
if l[1] == "安慰奖":
print('\nSorry,抽到了安慰奖,送你一只小气球')
else:
print('\n恭喜你抽到了', l[1])
luck_draw -= 1
if l[1] == "抽奖券2个":
luck_draw += 2
print("")
if l[1] == "金色传说宝箱" or l[1] == "金色传说宝箱钥匙":
del l[1]
end += 1
if end == 2:
print("\n恭喜通关!")
exit()
break
if l[1] == '大宝剑':
print('\n恭喜你抽到了', l[1])
bag['大宝剑'] += 1
walk = int(input('\n1.去打怪兽 2.继续抽奖\n'))
if walk == 1:
while monster < 5:
print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
walk = input("\n请选择你想要打的怪兽:")
if walk == "小型怪兽":
print("\n狩猎成功")
luck_draw += 1
bag['鞭子'] += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "中型怪兽":
if bag['鞭子'] > 0:
print('\n狩猎成功')
luck_draw += 1
else:
print("\n找不到鞭子,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 2
else:
break
elif walk == "\n大型怪兽":
if bag['大宝剑'] > 0:
print('\n狩猎成功')
luck_draw += 3
else:
print("\n找不到大宝剑,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if walk == 2:
pass
else:
print("\n您已没有抽奖券")
break
password = input("\n会员跳关密码:")
if password == "Q20090611.":
print("\n密码正确,可以跳关")
print("\n恭喜通关!")
else:
print("\n密码错误,不能跳关")
game()
随机
我突然有一个大胆的想法
打怪兽一定要有几率掉东西
在我出的零基础Python知识框架的时候,我讲过是随机的。
今天我们就要再次运用一下。
#首先在导入这边添加一个模块。
import time,random
首先从小型怪兽下手,先加一个变量。
_int = random.randint(1,4)
然后加判断,也是在同一个地方加。
这就是小型怪兽的代码快了,感觉有点多。中型和大型的也是一样的。
if walk == "小型怪兽":
_int = random.randint(1,4)
if _int == 1:
print("\n狩猎成功")
luck_draw += 1
bag['鞭子'] += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 2:
print("\n狩猎失败")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 3:
print("\n狩猎成功,抽奖券+1")
luck_draw += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 4:
print("\n狩猎成功,鞭子+1")
bag['鞭子'] += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
修改后代码:
def game():
import time,random
luck_draw = 1
bag = {'鞭子': 0,
'大宝剑': 0}
monster = 0
end = 0
from random import shuffle
print("\n规则:抽到金色传说宝箱和金色传说宝箱钥匙的,即可通关,如果抽奖卷不够,请输入yes,即可打怪兽赚钱,如果不需要,请输入no")
walk = input("\n")
while monster < 5:
if walk == "yes":
print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
walk = input("\n请选择你想要打的怪兽:")
if walk == "小型怪兽":
_int = random.randint(1,4)
if _int == 1:
print("\n狩猎成功")
luck_draw += 1
bag['鞭子'] += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 2:
print("\n狩猎失败")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 3:
print("\n狩猎成功,抽奖券+1")
luck_draw += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 4:
print("\n狩猎成功,鞭子+1")
bag['鞭子'] += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "中型怪兽":
_int = random.randint(1, 2)
if bag['鞭子'] > 0:
if _int == 1:
print('\n狩猎成功')
luck_draw += 2
if _int == 2:
print('\n狩猎失败')
else:
print("\n找不到鞭子,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "\n大型怪兽":
if bag['大宝剑'] > 0:
if _int == 1:
print('\n狩猎成功')
luck_draw += 3
if _int == 2:
print('\n狩猎失败')
else:
print("\n找不到大宝剑,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
else:
print("\n好的,开始抽奖")
break
time.sleep(5)
while True:
if luck_draw >= 1:
l = ["\n金色传说宝箱", "安慰奖", "记忆3个", "大宝剑", "钻石100", "钻石10000", "5000金魂币", "1万金魂币", "金色传说宝箱钥匙", "抽奖券2个"]
print('\n奖品预览', l)
print("\n打乱中...")
time.sleep(5)
shuffle(l)
if l[1] == "安慰奖":
print('\nSorry,抽到了安慰奖,送你一只小气球')
else:
print('\n恭喜你抽到了', l[1])
luck_draw -= 1
if l[1] == "抽奖券2个":
luck_draw += 2
print("")
if l[1] == "金色传说宝箱" or l[1] == "金色传说宝箱钥匙":
del l[1]
end += 1
if end == 2:
print("\n恭喜通关!")
exit()
break
if l[1] == '大宝剑':
print('\n恭喜你抽到了', l[1])
bag['大宝剑'] += 1
walk = int(input('\n1.去打怪兽 2.继续抽奖\n'))
if walk == 1:
while monster < 5:
print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
walk = input("\n请选择你想要打的怪兽:")
if walk == "小型怪兽":
_int = random.randint(1, 4)
if _int == 1:
print("\n狩猎成功")
luck_draw += 1
bag['鞭子'] += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 2:
print("\n狩猎失败")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 3:
print("\n狩猎成功,抽奖券+1")
luck_draw += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if _int == 4:
print("\n狩猎成功,鞭子+1")
bag['鞭子'] += 1
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "中型怪兽":
_int = random.randint(1, 2)
if bag['鞭子'] > 0:
if _int == 1:
print('\n狩猎成功')
luck_draw += 2
if _int == 2:
print('\n狩猎失败')
else:
print("\n找不到鞭子,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
elif walk == "\n大型怪兽":
if bag['大宝剑'] > 0:
if _int == 1:
print('\n狩猎成功')
luck_draw += 3
if _int == 2:
print('\n狩猎失败')
else:
print("\n找不到大宝剑,无法狩猎")
walk = input("\n是否继续打(yes or no)")
if walk == "yes":
monster += 1
else:
break
if walk == 2:
pass
else:
print("\n您已没有抽奖券")
break
password = input("\n会员跳关密码:")
if password == "Q20090611.":
print("\n密码正确,可以跳关")
print("\n恭喜通关!")
else:
print("\n密码错误,不能跳关")
game()