python CS游戏3--人物属性实时更新

#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()

 

转载于:https://www.cnblogs.com/czb529514/p/6842981.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值