策略模式的运用0001.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告 序号? 姓名?- 学号?—专业? 日期? _成综 实验一策略模式的运用 一、 实验目的: 策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的 变化独立丁使用算法的客户。在熟悉策略模式相关理论知识的基础上,使用策略模式实现 一个小游戏。 二、 实验要求: 使用策略模式实现一个小游戏,要求如下: 游戏中有三个角色:和尚,侠女,忍者; 每个角色都有生命值和魔法值,但各角色不同。 各角色外观不同。 每个角色具有魔法攻击和物理攻击; 物理攻击有三种:用刀、用剑、用手; 魔法攻击也有三种:火系魔法、金系魔法、水系魔法; 各角色可以动态更换物理、魔法攻击方式,也可以动态选择攻击方法。 1、 设计并绘制该程序的类图; 2、 依照设计的类图使用Java语言编写代码,并实现该程序; 3、 除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是: a) 控制台程序,Client硕编码初始化模式和测试环境,运行结果文本输出; b) 控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出; c) 设计并实现用户UI , Client初始化测试环境,并根据用户在 UI控件上的输入运算, 运行结果文本输出; 三、实验内容: 类图 Physical_handPhysical_swordPhysical_knife+physical()+physical()+physical()■JI*<<interface>>' Physical_hand Physical_sword Physical_knife +physical() +physical() +physical() ■ JI* <<interface>>' Physical_attack +physical() Magic_fire Magic_water Magic_gold +magic() +magic() +magic() <<interface>> Magic_attack +magic() Character -String look +Magic_attack ma +Physical_attack pa +display() +magic_attack_way() +Physical_attack_way() +change() Monk +display() Kungfuwoman Ninja +display() +display() 代码 Character.Java import java.util.Scanner; public String look; Magic_attack ma; Physical_attack pa; public void magic_attack_way(){ ma.magic(); } public void physical_attack_way(){ pa.physical(); } public void setMa(Magic_attack m) { this.ma = m; } public Magic_attack getMa() { return ma; } public String getLook() { return look; } public void setLook(String look) { this.look = look; } return pa; ) public void setPa(Physical_attack pa) ( this.pa = pa; ) public abstract void display(); Scanner sc = new Scanner(System.in); public void change(Character x)( System.out.println(" 想更换物理、魔法攻击方式,和技能吗? 1 yes 2no"); for(int p=0;p<1;){ String k = sc.nextLine(); switch(k){ case "1": System.out.println(" 输入你想要改变的攻击方法, 1物攻,2法功"); String t = sc.nextLine(); switch(t){ case "1": System.out.println(" 输入你想要改变的攻击方式, 1手,2刀,3剑,4 ,不更改”); String pw= sc.nextLine(); switch(pw){ case "1": x.setPa(new Physical_hand()); System.out.println(" 更改后的效果”); break; case "2": x.set

文档评论(0)

xiaoleige1916 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档