Python设计.doc

上传人:李医生 文档编号:6059267 上传时间:2020-09-02 格式:DOC 页数:13 大小:96.50KB
返回 下载 相关 举报
Python设计.doc_第1页
第1页 / 共13页
Python设计.doc_第2页
第2页 / 共13页
Python设计.doc_第3页
第3页 / 共13页
Python设计.doc_第4页
第4页 / 共13页
Python设计.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《Python设计.doc》由会员分享,可在线阅读,更多相关《Python设计.doc(13页珍藏版)》请在三一文库上搜索。

1、学号L81514034 专业网络工程 姓名 黄武伟 实验日期12.11 教师签字 成绩实验报告【实验名称】Python第三次实验【实验要求】1 设计一个父类,表示游戏角色:派生出多个子类用于表示不同职业的角色。为每个类设置必要的属性和方法,并实例化对象进行测试。2 (不使用数据库)设计一个密码记录及查询小软件,模拟记录自己在各个网站上使用的账号及密码。要求自行设计存储方式,并实现浏览、查询、增加、删除、修改等基本功能,可自行拓展其他功能【实验内容】1. 此次的模拟小游戏中有三种不同的角色定位,射手、战士和辅助,每种定位都有自己的角色特点,射手在攻击时会用random.randint()函数产生

2、一定量的暴击伤害,战士在血量低于35时会额外产生一定量的真实伤害,辅助会在战斗前选择使用回血技能,初始血量都为100,战斗时护甲可以减去一定百分比的伤害,血量为0时角色死亡源代码如下:import randomclass Game(object): def _init_(self, name=, blood=100, defe=0, atk=0): self.setName(name) self.setDefe(defe) self.setAtk(atk) self.setblood(blood) def setblood(self,blood): self.blood=blood def s

3、etName(self, name): self.name = name def setDefe(self, defe): self.defe = defe def setAtk(self, atk): self.atk = atkclass Type1(Game): def _init_(self, name=, blood=100, defe=10, atk=30): Game._init_(self, name, blood, defe, atk) def Attack(self,role,defe): k=random.randint(10,30) role=role-self.atk

4、-k+(self.atk+k)*(defe/100) print(攻击成功,并产生额外,k,点暴击伤害!(非真实伤害) if (role = 0): role = 0 return role def getblood(self): return self.blood def getdefe(self): return self.defe def backblood(self,m): self.blood=m def check(self): if(self.blood=0): print(self.name,死亡,游戏结束!) i=0 return i def show(self): prin

5、t(英雄介绍:) print(昵称:,self.name) print(定位:射手) print(攻击力:,self.atk) print(防御:,self.defe) print(特点:攻击时会产生一定的暴击!)class Type2(Game): def _init_(self, name=, blood=100, defe=30, atk=20): Game._init_(self, name, blood, defe, atk) def Attack(self,role,defe): role=role-self.atk+self.atk*(defe/100) print(攻击成功)

6、if (role = 0): role= 0 return role def getblood(self): return self.blood def getdefe(self): return self.defe def backblood(self, m): self.blood = m def BD(self,role): if(self.blood35): role=role-10 print(触发被动怒火,对敌方造成额外10点真实伤害!) if(role=0): role=0 return role def check(self): if (self.blood = 0): pri

7、nt(self.name,死亡,游戏结束!) i = 0 return i def show(self): print(英雄介绍:) print(昵称:,self.name) print(定位:坦克) print(攻击力:,self.atk) print(防御:,self.defe) print(特点:当血量少于35时会触发被动怒火,对敌方造成额外10点的真实伤害,无视护甲!)class Type3(Game): def _init_(self, name=, blood=100, defe=30, atk=20): Game._init_(self, name, blood, defe, a

8、tk) def Attack(self,role,defe): role=role-self.atk+self.atk*(defe/100) print(攻击成功) if (role =100): self.blood=100 print(回血成功!) def check(self): if (self.blood = 0): print(self.name,死亡,游戏结束!) i = 0 return i def show(self): print(英雄介绍:) print(昵称:,self.name) print(定位:辅助) print(攻击力:,self.atk) print(防御:,

9、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、射

10、手 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=1print(双方开始攻击,发动攻击技能!)while(1): print(str1,开始攻击!) x1=role2.getblood() x2=role2.getdef

11、e() 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 本模拟账号管理系统有删除、加入、查看等一系列基本操作,另外在查询时可以选择按照账号类型进行查

12、询,也可以选择利用给出的账号查询所对应的密码,加入新账号时也要为新加入的账号进行分类,这样给使用时带来了方便源代码如下:f1=open(C:UsersHWWDesktopzhang.txt)print(欢迎使用账号管理系统,请输入相应功能的编号)print(1、查询账号 2、存储新账号 3、查看所有账号 4、删除账号 5、退出系统)x=input()if(x=1): f1 = open(C:UsersHWWDesktopzhang.txt,r) print(请选择查询方式) print(1、按账号类型查询 2、按给出账号查询密码) y=input() if(y=1): print(1、社交 2

13、、购物 3、理财 4、游戏) y1=input() if(y1=1): print(社交账号如下:) for line in f1.readlines()2:len(f1.readlines() - 1: a = line.split(), 1) if(a0=((社交): print(a1) f1.close() if (y1 = 2): print(购物账号如下:) for line in f1.readlines()2:len(f1.readlines() - 1: a = line.split(), 1) if (a0 = ((购物): print(a1) f1.close() if (

14、y1 = 3): print(理财账号如下:) for line in f1.readlines()2:len(f1.readlines() - 1: a = line.split(), 1) if (a0 = ((理财): print(a1) f1.close() if (y1 = 4): print(游戏账号如下:) for line in f1.readlines()2:len(f1.readlines() - 1: a = line.split(), 1) if (a0 = ((游戏): print(a1) f1.close() if (y = 2) : f1 = open(C:Use

15、rsHWWDesktopzhang.txt, r) print(请输入要相应的用户账号) y2=input() m=0; for line in f1.readlines()2:len(f1.readlines() - 1: a = line.split(:, 1) a1=a1.split( ,1) if(y2=a10): m=1 print(line) print(密码查找成功!) if(m=0): print(你要查询的账号不存在,查询失败!)if(x=2): print(请选择存储账号类型) print(1、社交 2、购物 3、理财 4、游戏) x1=input() if(x1=1):

16、print(请输入应用名称) k=input() print(请输入账号) k1=input() print(请输入密码) k2=input() str=(社交)+k+ +账号:+k1+ +密码:+k2+n f1 = open(C:UsersHWWDesktopzhang.txt, a+) f1.write(str) print(账号存储成功) f1.close() if (x1 = 2): print(请输入应用名称) k = input() print(请输入账号) k1 = input() print(请输入密码) k2 = input() str = (购物) + k + + 账号:

17、+ k1 + + 密码: + k2+n f1 = open(C:UsersHWWDesktopzhang.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:UsersHWWDesktopzhang.txt, a+) f1.write(str) print(账号

18、存储成功) f1.close() if (x1 = 4): print(请输入应用名称) k = input() print(请输入账号) k1 = input() print(请输入密码) k2 = input() str = (游戏) + k + + 账号: + k1 + + 密码: + k2+n f1 = open(C:UsersHWWDesktopzhang.txt, a+) f1.write(str) print(账号存储成功) f1.close()if(x=3): f1 = open(C:UsersHWWDesktopzhang.txt, r) for line in f1: pr

19、int(line,end=) f1.close()if(x=4): print(请输入你要删除的账号) cut=input() f1 = open(C:UsersHWWDesktopzhang.txt, r) b= for line in f1.readlines()2:len(f1.readlines() - 1: a = line.split(:, 1) a1 = a1.split( , 1) if (cut !=a10): b.append(line) f1.close() f1 = open(C:UsersHWWDesktopzhang.txt, w) for li in range(0,len(b): f1.write(bli) f1.close()if(x=5): f1.close() print(退出系统,欢迎下次使用!)截图如下:【小结或讨论】通过本次python实验课的学习我对于python中关于面向对象编程的知识点有了进一步的认识和了解,和其他面向对象编程语言风格上,python有着自己的特点,比如说类方法中会有一个默认的self参数,另外通过完成本次实验的任务后,对于python语言的使用又有了进一步的掌握

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1