《c语言二维数组刷屏练习.doc》由会员分享,可在线阅读,更多相关《c语言二维数组刷屏练习.doc(6页珍藏版)》请在金锄头文库上搜索。
1、/ 二维数组的刷屏综合练习 编制于2012.9.23#include#include#include#include#define WIDTH 22/宏定义/*函数声明*/void init();/数组赋初值void print();/显示当前数组void movebom(char scrWIDTHWIDTH);/炸弹移动void movebul(char scrWIDTHWIDTH);/子弹移动void bump(char scrWIDTHWIDTH);/碰撞函数/*全局变量*/全局变量char scrWIDTHWIDTH;int flagbul = 0 ,flagpla = 0;/在函数体
2、外赋初值int high,wide;/飞机的行和列/*数组操作函数*/数组赋原始值void init()int i,j;for(i = 0; i WIDTH ; i+) for(j = 0; j WIDTH; j+) scrij = 0; printf(n); return ;/显示当前数组动画void print()int i,j;for(i = 0; i WIDTH ; i+) for(j = 0; j = 0; i-)for(j = 0; j WIDTH; j+) if(scrij = 2) scrij = 0; scri+1j = 2; return;/子弹移动函数(实质是改变数组值)
3、void movebul(char scrWIDTHWIDTH) int i,j; for(i=1; iWIDTH; i+) for(j=0;jWIDTH;j+) if(scrij = 3) scrij = 0; scri-1j = 3; if(scr0j = 3)/用于消除0行的死角 scr0j = 0; return;/碰撞函数(实质是数组里的数据呈现某种状态)void bump(char scrWIDTHWIDTH)int i,j;for(i = 0; i WIDTH -2; i+)for(j = 0; j 0) scrhighwide = 0;scrhigh-wide = 1; bre
4、ak; case d: case D:/像右移动飞机 if(wide 0) scrhighwide = 0;scr-highwide = 1; break; case s: case S:/像下移动飞机 if(high WIDTH-2)/这里是WIDTH-2 scrhighwide = 0;scr+highwide = 1; break; case o: case O:/发出子弹 if(high WIDTH)/这里是WIDTH scrhigh-1wide = 3; break; /设置炸弹的改变速度是子弹和飞机的一半 if(+i % 2 = 0) if(i = 3000)/防止i越界 i = 0; scr0rand()%(WIDTH-1) = 2; /用随机函数设置炸弹起始位置 movebom(scr); /炸弹移动函数(用于更改数组值) movebul(scr); /子弹移动函数(用于更改数组值) bump(scr);/碰撞函数 system(CLS); /清屏函数 print(); /显示数组函数 return 0;/本程序为飞机射击程序的雏形/本程序的思想是每改变一次数组,刷新一次屏幕,再输出一次数组/使用幻灯片原理,最终形成视觉动画,其实很简单(原来普通的二位数组能做出这么美妙的东西)