/*定义几个游戏中要用到的功能按键*/ #define ESC 0x11b #define UP 0x4800 #define DOWN 0x5000 #define LEFT 0x4b00 #define RIGHT 0x4d00 #define SPACE 0x3920 #define ENTER 0x1c0d
int a[50][50]={0}; /*存放雷的数组*/ int b[50][50]={0}; /*存放格子状态的数组*/
char num[9][2]={\
int gbx=320,gby=240; /*当前光标位置 (0,0)表示左上角*/
int ii,jj; main() {
int i,j,m=30,n=16,d=20,k; int gdriver = DETECT, gmode; randlei(30,16,100); ii=m/2;jj=n/2;
registerbgidriver(gdriver);
initgraph(&gdriver, &gmode, \ wangge(m,n,d); redraw(m,n,d);
while(1) /*反复从键盘获得程序需要的按键*/ {
if(bioskey(1)) /*判断是否有按键*/ {
k=bioskey(0); switch(k) { case ESC:
exit(0);break; case UP: if(jj>1) {
jj-=1;
redraw(m,n,d);
} break; case DOWN:
if(jj jj+=1; redraw(m,n,d); } break; case LEFT: /*LEFT 键向下移动光标*/ if(ii>1) { ii-=1; redraw(m,n,d); } break; case RIGHT: /*RIGHT 键向下移动光标*/ if(ii ii+=1; redraw(m,n,d); } break; case SPACE: /*空格键认为无雷打开*/ { b[jj][ii]=1; if(a[jj][ii]==0) tansuo(jj,ii,n,m); } redraw(m,n,d); break; case ENTER: /*回车键认为有雷标记*/ if(b[jj][ii]==0)b[jj][ii]=-1; else if(b[jj][ii]==-1)b[jj][ii]=2; else if(b[jj][ii]==2)b[jj][ii]=0; redraw(m,n,d); break; } } } getch(); closegraph(); } /* redraw重画函数在用户有操作后,重画游戏画面 */ redraw(int m,int n,int d) { int i,j; wangge(m,n,d); for(i=1;i<=n;i++) for(j=1;j<=m;j++) { if(b[i][j]!=1) gezi3d(320+(j-1-m/2)*d,240+(i-1-n/2)*d,d); else if(a[i][j]>=0) { 百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库扫雷课程设计报告 -(3)在线全文阅读。
相关推荐: