



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽大学计算机实验教学中心1学号L81514034专业网络工程姓名黄武伟实验日期12.11教师签字成绩实验报告【实验名称】Python 第三次实验【实验要求】1 设计一个父类, 表示游戏角色: 派生出多个子类用于表示不同职业的角色。 为每个类设置必要的属性和方法,并实例化对象进行测试。2 (不使用数据库) 设计一个密码记录及查询小软件,模拟记录自己在各个网站上使用的账号及密码。要求自行设计存储方式,并实现浏览、查询、增加、删除、修改等基本功能,可自行拓展其他功能安徽大学计算机实验教学中心2【实验内容】1. 此次的模拟小游戏中有三种不同的角色定位, 射手、战士和辅助,每种定位都有自己的角色特点,
2、射手在攻击时会用 random.randint() 函数产生一定量的暴击伤害, 战士在血量低于35 时会额外产生一定量的真实伤害,辅助会在战斗前选择使用回血技能,初始血量都为 100,战斗时护甲可以减去一定百分比的伤害,血量为 0 时角色死亡源代码如下:importrandomclassGame(object ):def_init_( self , name= '', blood=100, defe=0, atk=0):self .setName(name)self .setDefe(defe)self .setAtk(atk)self .setblood(blood)defs
3、etblood(self ,blood):self .blood=blooddefsetName( self , name):self .name = namedefsetDefe( self , defe):self .defe = defedefsetAtk(self , atk):self .atk = atkclassType1(Game):def_init_( self , name= '', blood=100, defe=10, atk=30):Game._init_( self , name, blood, defe, atk)defAttack(self ,r
4、ole,defe):k=random.randint(10, 30)role=role-self .atk-k+(self .atk+k)*(defe/100)print( " 攻击成功,并产生额外" ,k, " 点暴击伤害!if(role <=0):role =0returnrole( 非真实伤害)" )安徽大学计算机实验教学中心3defgetblood(self ):returnself .blooddefgetdefe(self ):returnself .defedefbackblood( self ,m):self .blood=mdef
5、check( self ):if ( self .blood= 0):print( self .name, " 死亡,游戏结束 !" )i=0returnidefshow( self ):print( " 英雄介绍 :" )print( " 昵称 :" , self .name)print( " 定位 : 射手 " )print( " 攻击力 :" , self .atk)print( " 防御 :" , self .defe)print( " 特点 : 攻击时会产
6、生一定的暴击!" )classType2(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 ( " 攻击成功 " )if (role <=0):role=0returnroledefgetblood(self ):returnself .b
7、looddefgetdefe(self ):returnself .defedefbackblood( self , m):self .blood = mdefBD(self ,role):if ( self .blood< 35):安徽大学计算机实验教学中心4role=role-10print( " 触发被动怒火,对敌方造成额外if (role<=0):role=0returnrole10 点真实伤害!")defcheck( self ):if( self .blood =0):print( self .name, " 死亡,游戏结束i =0retu
8、rni!" )defshow( self ):print( " 英雄介绍 :" )print( " 昵称 :" , self .name)print( " 定位 : 坦克 " )print( " 攻击力 :" , self .atk)print( " 防御 :" , self .defe)print( " 特点 : 当血量少于35 时会触发被动怒火,对敌方造成额外10 点的真实伤害,无视护甲!" )classType3(Game):def_init_( self ,
9、 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 ( " 攻击成功 " )if (role <=0):role=0returnroledefgetblood(self ):returnself .blooddefgetdefe(self ):returnself .blooddefbackblo
10、od( self , m):self .blood = mdefREC(self ):if ( self .blood= 100):print( " 血量已满,回血失败!" )return0安徽大学计算机实验教学中心5self.blood= self.blood+random.randint(0, 40)if ( self.blood>=100):self.blood=100print( " 回血成功!" )defcheck( self ):if( self .blood =0):print( self .name, " 死亡,游戏结束i
11、 =0returni!" )defshow( self ):print( " 英雄介绍 :" )print( " 昵称 :" , self .name)print( " 定位 : 辅助 " )print( " 攻击力 :" , self .atk)print( " 防御 :" , self .defe)print( " 特点 : 作战中受到伤害可选择触发恢复血量技能!" )print( "* 请创建角色! *")print( " 请输入
12、要创建角色的类型:(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(
13、 " 请输入要创建角色的类型:(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' ):安徽大学计算机实验教学中心6role2 = Type3(name=str2)role2.show()print( " 角色
14、2 创建成功 ! n " )print( " 游戏开始 !" )i= 1print( " 双方开始攻击,发动攻击技能!")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):breakprint(str2," 开始攻击! "
15、)y1=role1.getblood()y2=role1.getdefe()y1=role2.Attack(y1,y2)role1.backblood(y1)print( " 敌方还剩血量 " , y1)i=role1.check()if(i =0):break截图如下:安徽大学计算机实验教学中心7安徽大学计算机实验教学中心82 本模拟账号管理系统有删除、加入、查看等一系列基本操作,另外在查询时可以选择按照账号类型进行查询, 也可以选择利用给出的账号查询所对应的密码, 加入新账号时也要为新加入的账号进行分类,这样给使用时带来了方便源代码如下:f1= open( 'C
16、:UsersHWWDesktopzhang.txt')print( " 欢迎使用账号管理系统,请输入相应功能的编号print( "1 、查询账号2 、存储新账号3 、查看所有账号x=input ()if (x= '1'):f1 =open( 'C:UsersHWWDesktopzhang.txt', 'r'print( " 请选择查询方式" )print( "1 、按账号类型查询2 、按给出账号查询密码y= input ()if (y= '1' ):print( "
17、;1 、社交 2 、购物 3 、理财 4 、游戏 ")y1=input ()" )4 、删除账号)" )5 、退出系统" )安徽大学计算机实验教学中心9if(y1= '1'):print ( " 社交账号如下: " )forlineinf1.readlines()2: len (f1.readlines() -1:a = line.split(' ) ',1)if (a 0=( ' (社交 ' ):print(a1)f1.close()if(y1 ='2'):print
18、( " 购物账号如下: " )forlineinf1.readlines()2: len (f1.readlines() -1:a = line.split(' ) ',1)if(a 0 = (' (购物 ' ):print(a1)f1.close()if(y1 ='3'):print ( " 理财账号如下: " )forlineinf1.readlines()2: len (f1.readlines() -1:a = line.split(' ) ',1)if(a 0 = (' (
19、理财 ' ):print(a1)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:UsersHWWDesktopzhang.txt','r')print( &quo
20、t; 请输入要相应的用户账号" )y2=input ()m=0;forlineinf1.readlines()2: len (f1.readlines() -1:a = line.split(' : ' ,1)a1=a1.split(' ', 1)if (y2=a1 0):m=1print(line)print( " 密码查找成功 !" )if (m=0):print( " 你要查询的账号不存在,查询失败!" )if (x= '2'):安徽大学计算机实验教学中心10print( " 请选
21、择存储账号类型" )print( "1 、社交 2 、购物 3 、理财 4 、游戏 " )x1=input ()if (x1= '1' ):print( " 请输入应用名称" )k=input ()print( " 请输入账号 " )k1=input ()print( " 请输入密码 " )k2=input ()str=" (社交) "+k+''+" 账号: "+k1+' '+" 密码: " +k2
22、+' 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 +'
23、'+ " 账号: " + k1 +' '+ " 密码:f1 =open( 'C:UsersHWWDesktopzhang.txt', 'a+')"+ k2+ ' n 'f1.write(str)print( " 账号存储成功 " )f1.close()if(x1 ='3'):print( " 请输入应用名称" )k =input ()print( " 请输入账号 " )k1 =input ()print( &
24、quot; 请输入密码 " )k2 =input ()str =" (理财) "+ k +''+ " 账号: " + k1 +' '+ " 密码:f1 =open( 'C:UsersHWWDesktopzhang.txt', 'a+')"+ k2+ ' n 'f1.write(str)print( " 账号存储成功 " )f1.close()if(x1 ='4'):print( " 请输入应用名称" )k =input ()print( " 请输入账号 " )k1 =input ()print( " 请输入密码 " )安徽大学计算机实验教学中心11k2 =input ()str =" (游戏) "+ k +''+ " 账号: " + k1 +' 'f1 =open( 'C:UsersHWWDesktopzhang.txt', 'a+')f1.wr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44554.4-2025电子凭证入账要求第4部分:银行电子回单
- GB/T 44919-2024微机电系统(MEMS)技术薄膜力学性能的鼓胀试验方法
- 2025年新高考2卷(新课标Ⅱ卷)英语试卷
- 42我的职场我做主沈琳30课件
- 考研复习-风景园林基础考研试题【研优卷】附答案详解
- 《风景园林招投标与概预算》试题A附参考答案详解【满分必刷】
- 2025-2026年高校教师资格证之《高等教育法规》通关题库带答案详解(新)
- 2024年湖南现代物流职业技术学院单招职业技能测试题库可打印
- 基于深度学习的物体6D姿态估计算法研究
- 2025年Z世代消费趋势下的新消费品牌品牌价值评估报告
- 电动车火灾安全培训课件
- 建筑项目招投标外文翻译外文文献英文文献
- 企业食品安全知识培训课件
- 【MOOC】中国近现代史纲要-浙江大学 中国大学慕课MOOC答案
- 2021年中等职业学校学生学业水平考试考务工作细则(考务手册)
- 湖北省黄冈市(2024年-2025年小学五年级语文)人教版质量测试(下学期)试卷及答案
- 《我国上市公司财务舞弊探析案例-长园集团为例》14000字(论文)
- 中医体质养生 期末考试试题及答案
- 世界古代史(二) 讲义 高三统编版2019必修中外历史纲要下册一轮复习
- OQC培训资料教学课件
- 2022年中华护理学会输液连接装置安全管理专家共识解读
评论
0/150
提交评论