云南大学软件学院
实 验 报 告
序号: 姓名: 学号: 专业:软件工程 日期:2015.12.03 成绩: 实验一 策略模式的运用
一、实验目的:
策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。在熟悉策略模式相关理论知识的基础上,使用策略模式实现一个小游戏。
二、实验要求:
使用策略模式实现一个小游戏,要求如下:
1. 游戏中有三个角色:和尚,侠女,忍者;
2. 每个角色都有生命值和魔法值,但各角色不同。 3. 各角色外观不同。
4. 每个角色具有魔法攻击和物理攻击; 5. 物理攻击有三种:用刀、用剑、用手;
6. 魔法攻击也有三种:火系魔法、金系魔法、水系魔法;
7. 各角色可以动态更换物理、魔法攻击方式,也可以动态选择攻击方法。 1、 设计并绘制该程序的类图; 2、 依照设计的类图使用Java语言编写代码,并实现该程序; 3、 除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:
a) 控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;
b) 控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出; c) 设计并实现用户UI,Client初始化测试环境,并根据用户在UI控件上的输入运算,运
行结果文本输出。
三、实验内容: 类图
实验代码 魔法攻击
package Magic;
public interface magic { public void magic(); }
火系魔法
package Magic;
public class fire implements magic{ public void magic(){
System.out.println(\火系魔法攻击\); } }
金系魔法
package Magic;
public class metal implements magic{ public void magic(){
System.out.println(\金系魔法攻击\); } }
水系魔法
package Magic;
public class water implements magic{ public void magic(){
System.out.println(\水系魔法攻击\); } }
物理攻击
package Physic;
public interface physic { public void physic(); }
徒手
package Physic;
public class hand implements physic{ public void physic(){
System.out.println(\徒手攻击\); } }
用刀
package Physic;
public class knife implements physic{ public void physic(){
System.out.println(\用刀攻击\); } }
用剑
package Physic;
public class sword implements physic{ public void physic(){
System.out.println(\用剑攻击\); } }
角色
package Role;
import Magic.magic; import Physic.physic;
public abstract class role { magic Mattack; physic Pattack;
int magicValue = 0; int lifeValue = 0; public role(){}
public abstract void display(); public void Mattack(){ Mattack.magic(); }
public void Pattack(){ Pattack.physic(); }
public void setP(physic p){ Pattack = p; }
public void setM(magic m){ Mattack = m; } }
和尚
package Role;
import Physic.physic; public class Buddhistmonk extends role{
public Buddhistmonk(){ magicValue = 90; lifeValue = 150; }
public void display(){
System.out.println(\); System.out.println(\角色:和尚\);
相关推荐: