资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,PPT,文档演模板,Office,PPT,13 十一月 2024,北大青鸟ACCP阶段项目_骑士飞行棋_java,21 九月 2023北大青鸟ACCP阶段项目_骑士飞行棋_,1,问题描述,开发一款Java小游戏骑士飞行棋,游戏规则和传统的飞行棋一样,支持两人对战,采用100格小型游戏棋盘,游戏规则:对战双方轮流掷骰子控制自己的骑兵前进或后退,在游戏棋盘上设置有关卡,普通,地雷,暂停,时空隧道,幸运轮盘(提供两种运气:交换位置和轰炸),棋盘上的关卡只在骑兵第一次移动遇到时有效,2,问题描述开发一款Java小游戏骑士飞行棋2,问题分析-1,设计骑士飞行棋的棋盘,使用字符显示棋盘,前进方向,起点,终点,幸运轮盘,地雷,时空隧道,暂停,普通,3,问题分析-1 设计骑士飞行棋的棋盘前进方向起点终点幸运轮盘地,问题分析-2,根据需求分析对象,对战地图类(Map),功能:在控制台显示棋盘,并显示当前玩家在棋盘中所处的位置,游戏类(Game),功能:实现游戏初始化设置、展示游戏开始界面以及角色设置、控制游戏进度、实现游戏规则、以及游戏结束后结果评判,测试类(StartGame),功能:启动游戏,4,问题分析-2根据需求分析对象4,难点分析-1,实时动态显示对战地图,地图信息以整型数据存储在数组中,int map=new int100;/对战地图,0,0,0,0,1,0,2,1,3,4,4,普通,幸运轮盘,地雷,暂停,时空隧道,0,99,数组下标,5,难点分析-1实时动态显示对战地图int map=n,难点分析-2,实时动态显示对战地图,将对战地图划分成4个部分分别显示,奇数行:顺序输出地图数组中代号对应图像,右竖行:先输出空格,再输出数组中代号对应图像,偶数行:逆序输出地图数组中代号对应图像,左竖行,for,(,int,i=end-1;i=start;i-),/输出数组中i位置处对应图像,for,(,int,i=start;i end;i+),/输出数组中i位置处对应图像,6,难点分析-2实时动态显示对战地图for(int i=en,难点分析-3,实现游戏控制,两个玩家轮流掷骰子,如果上轮走到暂停关卡,停掷一次,/显示游戏开始,while,(playerPos1 99&playerPos2 99)/任意一个人走到终点,跳出循环,/玩家1掷骰子,if,(goAndStop0.equals(on),/掷骰子获得移动的步数,/移动,if,(playerPos1=99)/走到终点,break,;/退出,else,/提示此轮停掷,goAndStop0=on;/设置下次状态,/玩家2 掷骰子,/显示游戏结束并进行评判,7,难点分析-3实现游戏控制/显示游戏开始7,难点分析-4,实现游戏规则,关键:当移动到某一点遇到关卡时,怎么办?前进?后退?停止?,switch,(i),case,0:/普通格,if(对方在此格),/对方被炸回起点,case,1:/幸运轮盘,/选择和对方交换位置做交换,/选择轰炸对方对方退6步,case,2:/地雷,/退后6步,case,3:/暂停键,/设置goAndStop为off,标识下轮暂停,case,4:/时空隧道,/再前进10步,8,难点分析-4实现游戏规则switch(i)8,难点分析-5,实现游戏角色并开始两人对战,显示游戏界面,提示设置角色,开始游戏,9,难点分析-5实现游戏角色并开始两人对战9,阶段划分,第一阶段(15分钟),阅读Map类中已提供的代码,第二阶段(40分钟),完成Map类两个方法:生成对战地图、获得地图当前位置的输出图像,第三阶段(40分钟),完成并测试Map类:动态显示对战地图,第四阶段(55分钟),编写游戏类:类属性、游戏初始化设置、游戏界面以及角色设置,第五阶段(65分钟),完成游戏类:游戏控制、游戏规则,第六阶段(25分钟),编写测试类:测试游戏,10,阶段划分第一阶段(15分钟)10,第一阶段,第一阶段(15分钟),利用Eclipse创建工程,项目所需包,导入Map.java文件到包中,阅读Map类已给出的代码,明确方法之间的调用关系,要求学员自己动手完成,教员巡视,解答学员提出的问题,11,第一阶段第一阶段(15分钟)11,阶段检查,教员发放项目案例相关文档,针对第一阶段抽查学员的操作结果,教员给出点评,12,阶段检查教员发放项目案例相关文档12,第一阶段结果演示,简单讲解Map类方法之间的调用关系,createMap(),showMap(),showLine1(),showLine2(),showRLine(),showLLine(),getGraph(),13,第一阶段结果演示简单讲解Map类方法之间的调用关系crea,第二阶段,第二阶段(40分钟),编写Map类的方法createMap(),生成对战地图,编写Map类的方法getGraph(),获得地图当前位置的输出图像,要求学员自己动手编写,教员巡视,解答学员提出的问题,14,第二阶段第二阶段(40分钟)14,阶段检查,针对第二阶段抽查学员的编码结果,抽查学员编写的完整代码,要求学员上台讲解,教员给出点评或集中演示难点部分,15,阶段检查针对第二阶段抽查学员的编码结果15,第二阶段标准代码演示,地图类:,Map.java,16,第二阶段标准代码演示地图类:Map.java16,第三阶段,第三阶段(40分钟),阅读Map类getLine2(),编写Map类getLine1():实现输出地图奇数行,阅读Map类getRLine(),编写Map类getLLine():实现输出地图左竖行,测试Map类,要求学员自己动手编写,教员巡视,解答学员提出的问题,17,第三阶段第三阶段(40分钟)17,阶段检查,针对第三阶段抽查学员的编码结果,抽查学员编写的完整代码,要求学员上台讲解,教员给出点评或集中演示难点部分,18,阶段检查针对第三阶段抽查学员的编码结果18,第三阶段标准代码演示,Map类:,Map.java,测试类:,Test.java,19,第三阶段标准代码演示Map类:Map.java19,第四阶段,第四阶段(55分钟),编写游戏类(Game):,实现游戏初始化设置,实现游戏界面及角色设置,要求学员自己动手编写,教员巡视,解答学员提出的问题,20,第四阶段第四阶段(55分钟)20,阶段检查,针对第四阶段抽查学员的编码结果,抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果,教员给出点评,21,阶段检查针对第四阶段抽查学员的编码结果21,第四阶段标准代码演示,Game:,Game.java,22,第四阶段标准代码演示Game:Game.java22,第五阶段,第五阶段(65分钟),完成游戏类:,阅读play()方法,编写游戏类的掷骰子方法throwShifter(),补充代码完成getCurPos()方法实现游戏规则,编写judge()方法评判游戏结果,要求学员自己动手编写,教员巡视,解答学员提出的问题,23,第五阶段第五阶段(65分钟)23,阶段检查,针对第五阶段抽查学员的编码结果,抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果,教员给出点评,24,阶段检查针对第五阶段抽查学员的编码结果24,第五阶段标准代码演示,游戏类:,Game.java,25,第五阶段标准代码演示游戏类:Game.java25,第六阶段,第六阶段(25分钟),编写测试类StartGame:测试游戏运行,要求学员自己动手编写,教员巡视,解答学员提出的问题,26,第六阶段第六阶段(25分钟)26,阶段检查,针对第六阶段抽查学员的编码结果,抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果,教员给出点评,27,阶段检查针对第六阶段抽查学员的编码结果27,第六阶段标准代码演示,测试类:,StartGame.java,28,第六阶段标准代码演示测试类:StartGame.java28,总结,巩固知识点:,条件结构:switch/if,循环结构:for/while/do-while,类和对象:定义类、创建对象、属性和方法的引用,数组:循环向数组中存取数据,方法调用:带参方法的定义以及调用时的参数传递,29,总结巩固知识点:29,
展开阅读全文