求各位c语言大神帮我看看这道题
c语言吧
全部回复
仅看楼主
level 1
c4023859 楼主
c语言,有关扫雷的程序改进:1增加游戏级别功能(参考windows扫雷游戏)2将游戏画面定位在屏幕中间位置
/*-------------------------------------------文件main.c----------------------------------------------*/
#include "key.c"
#include "miner.c"
int main(){
int gameRes; /*记录游戏结束的结果状态:0表示退出游戏;-1游戏失败; 1为胜利。*/
initGraph(); /*初始化图形显示方式*/
do{
     newGame(); /*初始化新的游戏*/
     gameRes=0;
     /*main loop dealing with keystroke messages*/
     do{
       int key = getKey(); /*读入操作信息*/
       if(key == ESC) break;
       switch(key){       /*对其他有效操作的处理*/
       case ENTER: case SPACE: gameRes = openMine(pi,pj);break;
       case UP: moveUp();break;
       case DOWN: moveDown();break;
       case LEFT: moveLeft();break;
       case RIGHT: moveRight();break;
       case LOWERF: case UPPERF: flagBlock(pi,pj);break;
       case LOWERA: case UPPERA: gameRes = autoOpen(pi,pj);break;
       case LOWERQ:case UPPERQ: questBlock(pi,pj);break;
       }
       if(checkWin()) gameRes = 1;
     } while(!gameRes);
} while (!confirm(gameRes)) ;
return 0;
}
/*------------------------------------------ 文件main.c结束------------------------------------------*/
/*-------------------------------------------文件main.c----------------------------------------------*/
#include "key.c"
#include "miner.c"
int main(){
int gameRes; /*记录游戏结束的结果状态:0表示退出游戏;-1游戏失败; 1为胜利。*/
initGraph(); /*初始化图形显示方式*/
do{
     newGame(); /*初始化新的游戏*/
     gameRes=0;
     /*main loop dealing with keystroke messages*/
     do{
       int key = getKey(); /*读入操作信息*/
       if(key == ESC) break;
       switch(key){       /*对其他有效操作的处理*/
       case ENTER: case SPACE: gameRes = openMine(pi,pj);break;
       case UP: moveUp();break;
       case DOWN: moveDown();break;
       case LEFT: moveLeft();break;
       case RIGHT: moveRight();break;
       case LOWERF: case UPPERF: flagBlock(pi,pj);break;
       case LOWERA: case UPPERA: gameRes = autoOpen(pi,pj);break;
       case LOWERQ:case UPPERQ: questBlock(pi,pj);break;
       }
       if(checkWin()) gameRes = 1;
     } while(!gameRes);
} while (!confirm(gameRes)) ;
return 0;
}
/*------------------------------------------ 文件main.c结束------------------------------------------*/
/*---------------------------------------------文件key.c------------------------------------------------*/
#include <bios.h>
/*定义有效的键值*/
#define ENTER 0x1c0d
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x011b
#define SPACE 0x3920
#define LOWERF 0x2166
#define UPPERF 0x2146
#define LOWERA 0x1e61
#define UPPERA 0x1e41
#define LOWERQ 0x1071
#define UPPERQ 0x1051
/*获取按键信息,返回有效的操作值*/
int getKey(void){
while(1){
    int key=bioskey(0);
    switch(key){
    case ENTER:
    case UP:
    case DOWN:
    case LEFT:
    case RIGHT:
    case ESC:
    case SPACE:
    case LOWERF:
    case UPPERF:
    case LOWERA:
    case UPPERA:
    case LOWERQ:
    case UPPERQ: return key;
    }
}
}
/*------------------------------------------文件 key.c结束------------------------------------------*/
2011年03月08日 10点03分 1
level 3
同求答案,楼主现在解决这道题了吗。发一份源代码给我呗
2012年02月26日 02点02分 2
1