嵌入式课程设计实验报告--坦克大战学院:信息电子学院班级:07电信实验班组员:铁舰电子工程师指导老师:日期:2012年12月20日目录一、 实验目的 3二、 游戏内容简介 3三、 原理分析与代码 3四、 游戏结果 17五、 改进预想方案 17六、 收获与体会 18实验目的1、通过本次实验熟练掌握嵌入式开发板的应用;2、通过开发小游戏提高编程能力,培养严谨的编程思维;游戏内容简介本游戏初始画面为一片草地,中间隔着一条河流,河的两边各一辆坦克,左边坦克为我方,右边为敌方,坦克上方各显示五滴血量,屏幕左上角显示坦克炮筒的调整角度。进入界面即可开始游戏。游戏采取回合制。每一回合均由我方坦克先进行攻击,攻击前可移动坦克位置并调整炮筒角度,如果击中敌方坦克即消耗其一滴血量,然后无论击中与否,敌方坦克将随机移动至另一位置并且攻击我方坦克一次,如若击中消耗我方坦克一滴血量,然后无论击中与否此回合将结束。下一回合与之类似。如此下去,看哪方坦克血量先被扣完,如果我方胜利,则将出现“WIN”界面,将发射键可继续玩;如果敌方胜利,则屏幕将花屏,同样按发射键可重玩。数字键4和6可移动坦克,2和8可调整坦克炮筒角度,enter为发射键。原理分析与代码本次设计包括三个模块,分别为游戏界面初始化模块,游戏模块,及游戏结束显示模块。主程序流程图如下图所示:其中,游戏模块playgame流程框图如下图所示:程序源码如下:#definearm#definedebug#ifdefarm#include""#include""#include""#include""#include""#include""#pragmaimport(__use_no_semihosting_swi)#endif//---------------------------------------------externintZlg7289SIOBand;externintZlg7289SIOCtrl;#defineXY_NUMBER30#defineMAN1#PUTER2#defineMAN_START_POS0#PUTER_START_POS180doublec;#definebackcolor0x00e0e0e0#ankcolor0x000000e0#definehitcolor0x00000000#definelandcolor0x00e000#definerivercolor0x00e00000intour_route_x[XY_NUMBER],our_route_y[XY_NUMBER];intc_route_x[XY_NUMBER],c_route_y[XY_NUMBER];intkey,last_alpha;intnew_alpha,last_me_pos,puter_pos,puter_pos;intmy_tank[40][40],computer_tank[40][40];//storetankimageintalpha_image[40][40];puter_hp;externU32LCDBuffer[240][320];//---------------------------------------------//functiondefinevoidplay_game(void);U32get_key(void);//getkeyvoidinitial(void);//initialenvironmentandtankintfight(void);//environmentvoidpaint_environment(void);//painttheenvironment//tankvoidrefresh_tank(intflag);voidpaint_tank(intpos,intflag);//painttank,flag=puter,flag=1,mevoidclear_tank(intpos,intflag);//painttankwithbackcolor//hitsvoidcalc_route(intalpha,intflag);//calctheroutewithalphavoidpaint_me_route(void);//showourhitswithour_route_x[],our_route_y[]voidclear_me_route(void);//_route(void);//puterhitswithc_route_x[],c_route_y[]_route(void);//clearroutevoidshow_hp(int,int);//alphavo
ARM7 坦克大战实验报告 嵌入式 来自淘豆网m.daumloan.com转载请标明出处.