python小练习六——小游戏

题目要求

使用面向对象设计出一个小游戏,可以控制一个人物做一些操作

代码

#!/usr/bin/env python
# coding:utf-8
import pickle
import os,sys
import shelve


def write_girl(meinv):
    girl = shelve.open("girl")
    girl[meinv.name] = meinv
    girl.close()

###########定义人类############################
class People(object):
    """docstring for People"""
    def __init__(self):
        super(People, self).__init__()
        self.name = input("请输入姓名")
        self.age = int(input("请输入年龄"))
        self.sex = input("请输入性别")
        self.money = int(input("请输入资产"))
        self.love_stat = input("请输入恋爱状态")
        self.lover = input("请输入恋爱对象")

    def add_age(self):
        self.age += 1

    def money_add(self, add_money):
        self.money += add_money

    def money_decr(self, decr_money):
        self.money -= decr_money
###########定义人类############################

###########定义高富帅类############################
class Gao_fu_shuai(People):
    """docstring for Gao_fu_shuai"""
    def __init__(self):
        People.__init__(self)
        self.girl_friend = []

    def load_all_girl(self):
        print("%s要开始找妹子了" % self.name)
        girl = shelve.open("girl")
        for i in girl:
            print(i)
        girl_name = input("请输入妹子的名字")
        return girl_name

    def find_girl(self, girl_name):
        girl = shelve.open("girl")
        if girl_name in girl:
            girl.close()
            self.girl_friend.append(girl_name)
            print("牵手成功")
        else:
            girl.close()
            print("姓名有误")

    def leave_girl(self, girl_name):
        try:
            a = self.girl_friend.index(girl_name)
            self.girl_friend.pop(a)
            print("你已经把%s踹了" % girl_name)
        except ValueError:
            print('输入有误')

    def look_girl_friend(self):
        print(self.girl_friend)
###########定义高富帅类############################


###########定义屌丝类############################
class Diao_si(Gao_fu_shuai):
    """docstring for Diao_si"""
    def __init__(self):
        Gao_fu_shuai.__init__(self)

    def find_work(self):        
        print("%s要开始找工作了, " % self.name)
        user_choice = read_file("company.txt", "\n想去哪个公司")
        return user_choice
###########定义屌丝类############################


###########定义白富美类############################
class Bai_fu_mei(People):
    """docstring for Bai_fu_mei"""
    def __init__(self, name, age, sex, money, love_stat, lover):
        self.name = name
        self.age = age
        self.sex = sex
        self.money = money
        self.love_stat = love_stat
        self.lover = lover


    def agree(self, men_money):
        if men_money > 1000000:
            return 1
        else:
            return 0
###########定义白富美类############################



############################找女友############################################
def find_girl(diaosi, *arg ):
    girl_name = diaosi.load_all_girl()
    all_gilr = shelve.open('girl')
    girl = all_gilr[girl_name]
    all_gilr.close()
    if girl.agree(int(diaosi.money)):
        diaosi.find_girl(girl_name)
    else:
        print("太穷了,人家不同意")

    diaosi.look_girl_friend()
############################找女友############################################

#################################定义公司类#########################################
class Company(object):
    def __init__(self):
        self.name = "超级公司"
        self.money = 100000000
        self.people = []

    def mian_shi(self, people):
        s1 = input("作者帅不帅?\n1.帅\n2.不帅")
        if s1 == '1':
            print("是个人才,你们录用了")
            self.people.append(people)
        else:
            print("滚!!!!")

    def li_zhi(self, people):
        try:
            a = self.people.index(people)
            self.people.pop(a)
        except:
            print("这不是本公司员工")

    def fa_gong_zi(self, people):
        if people in self.people:
            return 1
        else:
            return 0
#################################定义公司类#########################################


def leave_girl(diaosi, *arg):
    diaosi.look_girl_friend()
    girl_name = input("想踹了谁?")
    diaosi.leave_girl(girl_name)


def likai(*args):
    sys.exit(0)

def find_work(diaosi, company, *arg):
    company.mian_shi(diaosi.name)

def work(diaosi, company, *arg):
    if diaosi.name in company.people:
            diaosi.money += 10000
    else:
        print("他还没有入职")

def look_money(diaosi, *arg):
    print(diaosi.money)

def run():
    meinv = Bai_fu_mei('meimei', 18, 'women', 100000, 'wu', None) 
    write_girl(meinv)
    print("创建新人物")
    diaosi = Diao_si()
    company = Company()
    title = "1.找个女朋友\n2.跟女朋友分手\n3.找工作\n4.努力工作\n5.查看资产\n6.退出"
    func_dict = {
        '1':find_girl,
        '2':leave_girl,
        '3':find_work,
        '4':work,
        '5':look_money,
        '6':likai,

    }
    while 1:
        user_choice = input(title)
        try:
            func_dict[user_choice](diaosi, company)
        except KeyError:
            continue



if __name__ == "__main__":
    run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值