Python设计.docx

上传人:b****7 文档编号:9969383 上传时间:2023-02-07 格式:DOCX 页数:12 大小:61.57KB
下载 相关 举报
Python设计.docx_第1页
第1页 / 共12页
Python设计.docx_第2页
第2页 / 共12页
Python设计.docx_第3页
第3页 / 共12页
Python设计.docx_第4页
第4页 / 共12页
Python设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Python设计.docx

《Python设计.docx》由会员分享,可在线阅读,更多相关《Python设计.docx(12页珍藏版)》请在冰豆网上搜索。

Python设计.docx

Python设计

学号L81514034专业网络工程姓名黄武伟

实验日期12.11教师签字成绩

实验报告

【实验名称】Python第三次实验

【实验要求】

1设计一个父类,表示游戏角色:

派生出多个子类用于表示不同职业的角色。

为每个类设置必要的属性和方法,并实例化对象进行测试。

2(不使用数据库)设计一个密码记录及查询小软件,模拟记录自己在各个网站上使用的账号及密码。

要求自行设计存储方式,并实现浏览、查询、增加、删除、修改等基本功能,可自行拓展其他功能

 

【实验内容】

1.此次的模拟小游戏中有三种不同的角色定位,射手、战士和辅助,每种定位都有自己的角色特点,射手在攻击时会用random.randint()函数产生一定量的暴击伤害,战士在血量低于35时会额外产生一定量的真实伤害,辅助会在战斗前选择使用回血技能,初始血量都为100,战斗时护甲可以减去一定百分比的伤害,血量为0时角色死亡

源代码如下:

importrandom

classGame(object):

def__init__(self,name='',blood=100,defe=0,atk=0):

self.setName(name)

self.setDefe(defe)

self.setAtk(atk)

self.setblood(blood)

defsetblood(self,blood):

self.blood=blood

defsetName(self,name):

self.name=name

defsetDefe(self,defe):

self.defe=defe

defsetAtk(self,atk):

self.atk=atk

classType1(Game):

def__init__(self,name='',blood=100,defe=10,atk=30):

Game.__init__(self,name,blood,defe,atk)

defAttack(self,role,defe):

k=random.randint(10,30)

role=role-self.atk-k+(self.atk+k)*(defe/100)

print("攻击成功,并产生额外",k,"点暴击伤害!

(非真实伤害)")

if(role<=0):

role=0

returnrole

defgetblood(self):

returnself.blood

defgetdefe(self):

returnself.defe

defbackblood(self,m):

self.blood=m

defcheck(self):

if(self.blood==0):

print(self.name,"死亡,游戏结束!

")

i=0

returni

defshow(self):

print("英雄介绍:

")

print("昵称:

",self.name)

print("定位:

射手")

print("攻击力:

",self.atk)

print("防御:

",self.defe)

print("特点:

攻击时会产生一定的暴击!

")

classType2(Game):

def__init__(self,name='',blood=100,defe=30,atk=20):

Game.__init__(self,name,blood,defe,atk)

defAttack(self,role,defe):

role=role-self.atk+self.atk*(defe/100)

print("攻击成功")

if(role<=0):

role=0

returnrole

defgetblood(self):

returnself.blood

defgetdefe(self):

returnself.defe

defbackblood(self,m):

self.blood=m

defBD(self,role):

if(self.blood<35):

role=role-10

print("触发被动怒火,对敌方造成额外10点真实伤害!

")

if(role<=0):

role=0

returnrole

defcheck(self):

if(self.blood==0):

print(self.name,"死亡,游戏结束!

")

i=0

returni

defshow(self):

print("英雄介绍:

")

print("昵称:

",self.name)

print("定位:

坦克")

print("攻击力:

",self.atk)

print("防御:

",self.defe)

print("特点:

当血量少于35时会触发被动怒火,对敌方造成额外10点的真实伤害,无视护甲!

")

classType3(Game):

def__init__(self,name='',blood=100,defe=30,atk=20):

Game.__init__(self,name,blood,defe,atk)

defAttack(self,role,defe):

role=role-self.atk+self.atk*(defe/100)

print("攻击成功")

if(role<=0):

role=0

returnrole

defgetblood(self):

returnself.blood

defgetdefe(self):

returnself.blood

defbackblood(self,m):

self.blood=m

defREC(self):

if(self.blood==100):

print("血量已满,回血失败!

")

return0

self.blood=self.blood+random.randint(0,40)

if(self.blood>=100):

self.blood=100

print("回血成功!

")

defcheck(self):

if(self.blood==0):

print(self.name,"死亡,游戏结束!

")

i=0

returni

defshow(self):

print("英雄介绍:

")

print("昵称:

",self.name)

print("定位:

辅助")

print("攻击力:

",self.atk)

print("防御:

",self.defe)

print("特点:

作战中受到伤害可选择触发恢复血量技能!

")

print("******请创建角色!

******")

print("请输入要创建角色的类型:

(1、射手2、坦克3、辅助)")

x=input()

print("请输入角色1的昵称")

str1=input()

if(x=='1'):

role1=Type1(name=str1)

role1.show()

if(x=='2'):

role1=Type2(name=str1)

role1.show()

if(x=='3'):

role1=Type3(name=str1)

role1.show()

print("角色1创建成功!

\n")

print("请输入要创建角色的类型:

(1、射手2、坦克3、辅助)")

x=input()

print("请输入角色2的昵称")

str2=input()

if(x=='1'):

role2=Type1(name=str2)

role2.show()

if(x=='2'):

role2=Type2(name=str2)

role2.show()

if(x=='3'):

role2=Type3(name=str2)

role2.show()

print("角色2创建成功!

\n")

print("游戏开始!

")

i=1

print("双方开始攻击,发动攻击技能!

")

while

(1):

print(str1,"开始攻击!

")

x1=role2.getblood()

x2=role2.getdefe()

x1=role1.Attack(x1,x2)

role2.backblood(x1)

print("敌方还剩血量",x1)

i=role2.check()

if(i==0):

break

print(str2,"开始攻击!

")

y1=role1.getblood()

y2=role1.getdefe()

y1=role2.Attack(y1,y2)

role1.backblood(y1)

print("敌方还剩血量",y1)

i=role1.check()

if(i==0):

break

截图如下:

2本模拟账号管理系统有删除、加入、查看等一系列基本操作,另外在查询时可以选择按照账号类型进行查询,也可以选择利用给出的账号查询所对应的密码,加入新账号时也要为新加入的账号进行分类,这样给使用时带来了方便

源代码如下:

f1=open('C:

\\Users\HWW\Desktop\zhang.txt')

print("欢迎使用账号管理系统,请输入相应功能的编号")

print("1、查询账号2、存储新账号3、查看所有账号4、删除账号5、退出系统")

x=input()

if(x=='1'):

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','r')

print("请选择查询方式")

print("1、按账号类型查询2、按给出账号查询密码")

y=input()

if(y=='1'):

print("1、社交2、购物3、理财4、游戏")

y1=input()

if(y1=='1'):

print("社交账号如下:

")

forlineinf1.readlines()[2:

len(f1.readlines())-1]:

a=line.split(')',1)

if(a[0]==('(社交')):

print(a[1])

f1.close()

if(y1=='2'):

print("购物账号如下:

")

forlineinf1.readlines()[2:

len(f1.readlines())-1]:

a=line.split(')',1)

if(a[0]==('(购物')):

print(a[1])

f1.close()

if(y1=='3'):

print("理财账号如下:

")

forlineinf1.readlines()[2:

len(f1.readlines())-1]:

a=line.split(')',1)

if(a[0]==('(理财')):

print(a[1])

f1.close()

if(y1=='4'):

print("游戏账号如下:

")

forlineinf1.readlines()[2:

len(f1.readlines())-1]:

a=line.split(')',1)

if(a[0]==('(游戏')):

print(a[1])

f1.close()

if(y=='2'):

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','r')

print("请输入要相应的用户账号")

y2=input()

m=0;

forlineinf1.readlines()[2:

len(f1.readlines())-1]:

a=line.split(':

',1)

a1=a[1].split('',1)

if(y2==a1[0]):

m=1

print(line)

print("密码查找成功!

")

if(m==0):

print("你要查询的账号不存在,查询失败!

")

if(x=='2'):

print("请选择存储账号类型")

print("1、社交2、购物3、理财4、游戏")

x1=input()

if(x1=='1'):

print("请输入应用名称")

k=input()

print("请输入账号")

k1=input()

print("请输入密码")

k2=input()

str="(社交)"+k+''+"账号:

"+k1+''+"密码:

"+k2+'\n'

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','a+')

f1.write(str)

print("账号存储成功")

f1.close()

if(x1=='2'):

print("请输入应用名称")

k=input()

print("请输入账号")

k1=input()

print("请输入密码")

k2=input()

str="(购物)"+k+''+"账号:

"+k1+''+"密码:

"+k2+'\n'

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','a+')

f1.write(str)

print("账号存储成功")

f1.close()

if(x1=='3'):

print("请输入应用名称")

k=input()

print("请输入账号")

k1=input()

print("请输入密码")

k2=input()

str="(理财)"+k+''+"账号:

"+k1+''+"密码:

"+k2+'\n'

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','a+')

f1.write(str)

print("账号存储成功")

f1.close()

if(x1=='4'):

print("请输入应用名称")

k=input()

print("请输入账号")

k1=input()

print("请输入密码")

k2=input()

str="(游戏)"+k+''+"账号:

"+k1+''+"密码:

"+k2+'\n'

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','a+')

f1.write(str)

print("账号存储成功")

f1.close()

if(x=='3'):

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','r')

forlineinf1:

print(line,end='')

f1.close()

if(x=='4'):

print("请输入你要删除的账号")

cut=input()

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','r')

b=[]

forlineinf1.readlines()[2:

len(f1.readlines())-1]:

a=line.split(':

',1)

a1=a[1].split('',1)

if(cut!

=a1[0]):

b.append(line)

f1.close()

f1=open('C:

\\Users\HWW\Desktop\zhang.txt','w')

forliinrange(0,len(b)):

f1.write(b[li])

f1.close()

if(x=='5'):

f1.close()

print("退出系统,欢迎下次使用!

")

截图如下:

【小结或讨论】

通过本次python实验课的学习我对于python中关于面向对象编程的知识点有了进一步的认识和了解,和其他面向对象编程语言风格上,python有着自己的特点,比如说类方法中会有一个默认的self参数,另外通过完成本次实验的任务后,对于python语言的使用又有了进一步的掌握

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1