学习Python一个星期了,将所学内容做一个练习,废话不多说,直接上代码,基本每行都做了对应注释。
代码如下:
import random
print('*'*35)
print('\t欢迎来到超级黑对战')
print('*'*35)
weapon_list = []#创建空的武器列表。
coins = 1000#定义初始金币值,用于进入游戏后购买武器。
role = input('请输入游戏角色名称:')#用户自定义角色名称。
print('欢迎{}进入游戏,现有金币{}枚!'.format(role,coins))#打印告知用户内容。
print('1.购买武器:\n2.进入对战:\n3.查看武器和金币:\n4.删除武器:\n5.退出游戏:')#打印选择列表。
while True:
choice = int(input('请选择:'))
if choice == 1:#判断用户选择。
print('进入武器库:')
weapons = {'匕首':200,'手枪':500,'步枪':800,'狙击枪':1000,'手雷':600,'火箭炮':2000}#创建武器库字典。
print(weapons.items())#打印武器库。
keys = list(weapons.keys())#keys=字典键。
values = list(weapons.values())#values=字典值。
while True:
weapon = int(input('输入武器金额对应购买:'))#接收用户输入的武器价格并转为整数型。
if weapon in values:#判断用户输入的值是否在字典值中。
print('您购买了如下武器:',keys[values.index(weapon)])
weapon_list.append(keys[values.index(weapon)])#将用户购买的武器存到武器列表中。
coins-=weapon#扣除对应金币。
print('金币剩余:',coins)
break
else:
print('输入错误,请重新输入!')
elif choice == 2:#判断用户选择。
print('......进入战场......')
rol_1 = random.randint(0,10)#生成敌方战斗力,范围0-10。
print('敌方战力:',rol_1)
rol_2 = random.randint(0,10)#生成我方战斗力,范围0-10。
print('我方战力:',rol_2)
if rol_1 < rol_2:#判断敌我双方战斗力大小。
print('获胜!金币+200')
coins += 200#奖励机制,获胜可得200枚金币。
elif rol_1 == rol_2:#判断敌我双方战斗力大小。
print('平局!')
else:#判断敌我双方战斗力大小。
print('失败了!')
elif choice ==3:#判断用户选择。
print('武器:',weapon_list)
print('金币:',coins)
elif choice ==4:#判断用户选择。
if len(weapon_list)>0:#判断武器库中是否有数据。
while True:
print(weapon_list)
answer = input('请从以上武器中选择要删除的:')#接受用户输入的武器名称。
if answer in weapon_list:#判断武器名是否存在于武器库中。
weapon_list.remove(answer)#删除武器库中对应武器。
coins += values[keys.index(answer)]#增加删除武器对应的金币值。
print('成功删除{}!回收金币{}枚!'.format(answer,values[keys.index(answer)]))
break
else:
print('没有找到{}!'.format(answer))
else:
print('还没有可删除的武器!')
elif choice == 5:#判断用户选择。
answer = input('是否确认退出游戏?(y/n):')
if answer == 'y':
break
else:
print('...继续游戏...')
else:
print('输入有误,请重新选择!')
还不会制作界面,只能手动在漆黑的界面里输入输出~期待继续学习后可以做出更好的内容。
微调代码,主要修改对白内容,避免了删除武器环节需要跳出并重新进入。
代码如下
import random
print('*'*35)
print('\t欢迎来到超级黑对战')
print('*'*35)
weapon_list = []#创建空的武器列表。
coins = 1000#定义初始金币值,用于进入游戏后购买武器。
role = input('请输入游戏角色名称:')#用户自定义角色名称。
print('欢迎{}进入游戏,现有金币{}枚!'.format(role,coins))#打印告知用户内容。
while True:
choice = int(input('请选择:\n1.购买武器:\n2.进入对战:\n3.查看武器和金币:\n4.删除武器:\n5.退出游戏:\n'))#用户输入选择种类。
if choice == 1:#判断用户选择。
print('进入武器库:')
weapons = {'匕首':200,'手枪':500,'步枪':800,'狙击枪':1000,'手雷':600,'火箭炮':2000}#创建武器库字典。
print(weapons.items())#打印武器库。
keys = list(weapons.keys())#keys=字典键。
values = list(weapons.values())#values=字典值。
while True:
weapon = int(input('输入武器金额对应购买:'))#接收用户输入的武器价格并转为整数型。
if weapon in values:#判断用户输入的值是否在字典值中。
print('{}购买了如下武器{}:'.format(role,keys[values.index(weapon)]))
weapon_list.append(keys[values.index(weapon)])#将用户购买的武器存到武器列表中。
coins-=weapon#扣除对应金币。
print('{}金币剩余:{}'.format(role,coins))
break
else:
print('输入错误,请重新输入!')
elif choice == 2:#判断用户选择。
print('......进入战场......')
rol_1 = random.randint(0,100)#生成敌方战斗力,范围0-99。
print('敌方战士战力:',rol_1)
rol_2 = random.randint(0,100)#生成我方战斗力,范围0-99。
print('我方{}战力{}:'.format(role,rol_2))
if rol_1 < rol_2:#判断敌我双方战斗力大小。
print('获胜!金币+200')
coins += 200#奖励机制,获胜可得200枚金币。
elif rol_1 == rol_2:#判断敌我双方战斗力大小。
print('平局!')
else:#判断敌我双方战斗力大小。
print('失败了!')
elif choice ==3:#判断用户选择。
print('{}拥有的武器:{}'.format(role,weapon_list))
print('{}拥有的金币:{}'.format(role,coins))
elif choice ==4:#判断用户选择。
if len(weapon_list)>0:#判断武器库中是否有数据。
while True:
print(weapon_list)
answer = input('请从以上武器中选择要删除的,或输入n返回上层菜单:')#接受用户输入的武器名称。
if answer in weapon_list:#判断武器名是否存在于武器库中。
weapon_list.remove(answer)#删除武器库中对应武器。
coins += values[keys.index(answer)]#增加删除武器对应的金币值。
print('{}成功删除武器{}!回收金币{}枚!'.format(role,answer,values[keys.index(answer)]))
break
elif answer == 'n':
break
else:
print('没有找到{}的武器{},请重新输入武器名称!'.format(role,answer))
else:
print('目前{}还没有可删除的武器,快去武器库购买吧!'.format(role))
elif choice == 5:#判断用户选择。
answer = input('亲爱的{}是否确认退出游戏?(y/n):'.format(role))
if answer == 'y':
print('...Game Over And See You Again...')
break
elif answer == 'n':
print('...继续游戏...')
else:
print('无法判断是否结束游戏,请重新输入!')
else:
print('亲爱的{},您的输入有误,请重新选择!'.format(role))