1、 姓名挑战游戏姓名挑战游戏 1、课程设计的目的课程设计的目的 学习算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用 问题。课程设计要求同学独立完成一个较为完整的应用需求分析,在完成设计和 编程大型作业的过程中,深化对算法课程中基本概念、理论和方法的理解;训练 综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使同学 的程序设计与调试水平有一个明显的提高。经过查找参考资料、技术手册和撰写 文档的实践,进一步培养软件工程师的综合素质。 2、课程设计的技术要求课程设计的技术要求 同学在处理每一个题目的时候,要从分析题目的需求入手,按设计抽象数据 类型、构思算法、通过类的设
2、计实现抽象数据类型、编制上机程序代码并调试的 步骤完成题目,最终写出完整的分析报告。见到题目,案头工作准备不足,忙于 上机敲程序不是优秀程序员的工作风格。注意设计与实现过程的经验积累,编码 应尽量利用前阶段的成熟数据结构包,加大代码的重用率。 课程设计所安排的题目,在难度和深度方面都大于课内的上机训练。程序作 业以 Java 完成,配有图形界面。作业一般要达到 3000 行以上的代码量。最后提 交作业包括:课程设计报告;完整程序,应该具有可显示界面;PPT 及算法说明。 3、题目分析、题目分析 姓名挑战游戏说明:输入两个中文姓名,通过一种算法,计算出姓名的血值 和攻击力,使两个名字进行对战,进
3、行多轮回合后,决定双方输赢。 在运行界面中输入两个挑战者的姓名,软件就会计算出两个挑战者初始状态 的血值和攻击力之类的属性值。然后两个挑战者一边挑战,系统会自动显示目前 2 两个挑战者的一系列属性。两个人一直挑战,直到其中一者的 hp 的值为 0,则 挑战结束,并且 hp 为 0 的一方失败。 4、部分程序分析、部分程序分析 4.1 角色属性定义角色属性定义 public class Role String playname;/角色名字 int hp;/生命值 int ap;/攻击力为 ap int dp;/防御力为 dp int rate;/攻击速度 int hitRate;/命中率 int
4、 luck;/运气 int array = new int4;/名字数组 String Attack_Action = “; /攻击的动作字符串 String Recovery_Action = “;/防御的动作字符串 int Attact_Point = 0; /攻击的点数 int Recovery_Point = 0;/抵御的点数 4.2 构造函数构造函数 public Role(String name, int getArray) array = getArray; playname = name; setAttribult(); 3 4.3 输入挑战者姓名后角色属性值统计输入挑战者姓名后角色属性值统计 在运行界面上输入两个挑战者的姓名后,界面就会自动统计每个挑战者的生 命力 hp,攻击力 ap,防御力 dp,攻击速度 rate,命中率 hitrate,运气 luck。 public void getAttribult() System.out.println(playname + “ 的属性:“); Syst