您的位置:首页 > 编程语言 > Python开发

python小练习六——小游戏

2017-06-17 20:20 141 查看

题目要求

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

代码

#!/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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: