资源描述:
《计算机技术基础(c语言)课程设计-潜艇大战.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机技术基础课程设计C语言设计报告题目:简单潜艇大战一、选题背景:随着人们生活水平的提高,人们对精神生活的要求也随之提高了,当然,娱乐也成了人们生活中必不可少的一部分,为此,我用C语言编辑了一个简单的简单潜艇大战游戏程序。它操作起来简单方便,运行速度快。二、设计思想:简单潜艇大战就是玩家和电脑对战的游戏,玩家在确保本身不被敌人击中的情况下击中敌人则得分,若被敌人击中游戏结束。此程序利用了if,for,while等多种语句进行了编译,而且多次使用了for语句进行了循环,用if语句进行操作,if语句是用来处理条件选择的
2、一种语句。此游戏可以任意移动玩家的位置。三、程序流程图结束若电脑中弹则玩家得分游戏继续,若玩家中弹则游戏结束图形初始化开始玩家敌人判断是否攻击敌人判断是否攻击玩家否否(敌人在攻击范围之内)(玩家在攻击范围之内)四、程序清单#include#include#include#include#defineKEY_ESC0x01#defineKEY_SPACE0x39#defineKEY_LEFT0x4b#defineKEY_RIGHT0x4d
3、intspeed=10000;charkey_state[128],key_pressed[128];/*键盘操作用的变量*/intscore=0;/*得分*/charscorestr[10];/*输出分数的变量*/structFire/*子弹的结构体*/{ intx; inty; intstart;/*是否发射炮弹*/}amyfire[6];/*屏幕上最多有5个敌人可以发子弹*/structPlay/*玩家的结构体*/{ intx; inty; structFirefire[6]; life;}play;struc
4、tAmy/*敌人的结构体*/{ intx; inty; intspeed;/*敌人的速度*/ intcolor; intdirection; life;}amy[6];voidInitGraph(void);/*图形初始化*/voidCloseGraph(void);/*图形结束*/voidGamePlay(void);/*具体玩游戏*/voidDrawPlay(void);/*画玩家*/voidDrawAmy(inti);/*画敌人*/voidDrawFire(intx,inty,intn);/*画子弹,0去除,1
5、显示*/voidDrawAmyFire(intx,inty,intn);/*画子弹,0去除,1显示*/voidDrawBlack(intx,inty,intcolor);/*去除原来地方的物体*/voidPrScore();/*输出得分*/intGetKey(intScanCode);/*这里开始都是按键函数*/voidinterruptfar(*OldInt9Handler)();voidfarinterruptNewInt9();voidInstallKeyboard();voidShutDownKeyboard
6、();voidmain(void){ InitGraph();/*图形初始化*/ GamePlay();/*具体玩游戏*/ CloseGraph();/*图形结束*/}voidInitGraph(void)/*图形初始化*/{ intgd=DETECT,gm; initgraph(&gd,&gm,"c:\tc"); cleardevice(); InstallKeyboard();}voidDrawPlay(void)/*画玩家*/{ setfillstyle(SOLID_FILL,6); bar(play.x-2
7、0,play.y-10,play.x+20,play.y); setfillstyle(SOLID_FILL,4); bar(play.x-20,play.y-10,play.x-10,play.y);}voidDrawAmy(inti)/*画敌人*/{ setfillstyle(SOLID_FILL,amy[i].color); bar(amy[i].x-20,amy[i].y-10,amy[i].x+20,amy[i].y); setfillstyle(SOLID_FILL,GREEN); if(amy[i].d
8、irection==1) bar(amy[i].x-20,amy[i].y-10,amy[i].x-10,amy[i].y); else bar(amy[i].x+10,amy[i].y-10,amy[i].x+20,amy[i].y);}voidDrawBlack(intx,inty,intcolor)/*去除原来地方的物体*/{ setfi