#coding=utf-8
'''
本实例主要目的是,实时将人物属性保存下来,具体方法是保存到字典中,将姓名设置为key,将余下的参数设置为列表,将整个列表当成values,通过name查询列表中的人物各属性,第二个,增加了递归的调用,修改了上期杀人的时候输入不存在的人物时候报错的问题,
'''
import random
import time
list_kill=[0,1,1,1]
list_name=range(10)
dir_weapen={"AK47":2000,"匕首":500,"小手枪":1000}
dir_role=["p","k"]
dir_name={}
class cs(object):
flag=1
role_flag=1
def __init__(self,name):
self.money=10000
self.value=100
self.name=name
role=random.choice(dir_role)
weapen=random.choice(dir_weapen.keys())
print("初始化角色完成:姓名:%s,角色:%s,生命值:%s.武器:%s"%(self.name,role,self.value,weapen))
dir_name[name]=role
while cs.role_flag<6:
list_shuxin=[]
name=str(random.choice(list_name))
role=random.choice(dir_role)
weapen=random.choice(dir_weapen.keys())
for x in dir_name.keys():
if name==x:
name=random.choice(range(10,10000))
list_shuxin.append(role)
list_shuxin.append(self.value)
list_name.append(weapen)
dir_name[name]=list_name
print("系统正在随机产生角色,共五组,第%s组角色正在产生"%cs.role_flag)
time.sleep(1)
print("第%s组角色创建成功,姓名:%s,角色:%s,生命值:%s,武器:%s"%(cs.role_flag,name,role,self.value,weapen))
dir_name[name]=role
cs.role_flag +=1
print("五组系统角色产生成功,可以开始游戏了")
def qian(self,weapen):
a=int(dir_weapen[weapen])
money=self.money-a
return money,a
def buy_weapen(self,weapen):
money1,b=self.qian(weapen)
if money1<0:
print("钱不够,赚够了钱再来买 ")
return False
else:
print("%s买了%s消费了%s还剩余%s"%(self.name,weapen,b,money1))
cs.money=money1
return weapen
def kill(self):
while cs.flag<4:
name=self.name
name1=raw_input("请输入想杀的角色姓名》")
if name1 not in dir_name.keys():
print("角色不存在")
continue
role_xitong=dir_name[name1][0]
role_wanjia=dir_name[name][0]
if role_xitong=="p" and role_wanjia=="p":
print("你是警察,不能杀警察")
else:
print("你有三次机会杀死对方")
a=random.choice(list_kill)
if a==0:
print("恭喜你%s,第%s次出手你就打中了%s,%s被你打死了"%(name,cs.flag,name1,name1))
break
else:
print("没有打中,继续射击")
cs.flag +=1
#print(cs.flag)
print("游戏结束")
name=raw_input("请输入需要创建的角色名称: ")
t1=cs(name)
t1.buy_weapen("AK47")
t1.kill()