case 61://+ 大键盘
speed-=100; if (speed<100) {
speed=100; }
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5+2+2+2);
printf(\难度:m\break;
case 43: //+ 数字键盘
speed-=100; if (speed<100) {
speed=100; }
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5+2+2+2);
printf(\难度:m\break;
case 45://-号
speed+=100; if (speed>2900) {
speed=2900; }
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5+2+2+2);
printf(\难度:m\
break; case 113: //q
//如果线程在运行,就挂起它,如果暂停,我们恢复运行
41
pauseGame(); break; case 81: //Q pauseGame(); break;
//上光标键
case 72:
//MoveUp
if (CheckSpinBorder(oneChess)) {
break; }
MoveUp(&oneChess); break; //下
case 80: // if
(CheckDownBorder(oneChess)||CheckDownChess(oneChess)) {
//更新数据
Add1Chess(oneChess); ShowChessBoard();
//重新赋值OneChess进行新的一轮棋子掉落 //随机初始化
rx=rand()%5; ry=0;
oneChess=DownChessData[rx][ry]; oneChess.rx=rx; oneChess.ry=ry;
ShowChess(oneChess); } else {
MoveDown(&oneChess);
42
}
break; //左
case 75:
if (CheckLeftBorder(oneChess)||CheckLeftChess(oneChess)) {break;}
MoveLeft(&oneChess); break; //右
case 77:
if (CheckRightBorder(oneChess)) { break; }
if (CheckRightChess(oneChess)) {
break;//不移动,直接下一次循环
//continue; }
MoveRight(&oneChess); break; } //end switch
LeaveCriticalSection(&cs); }//end while }
#include
43
#include
void gotoxy(int x,int y) {
COORD xy;
HANDLE hstdout;
hstdout=GetStdHandle(STD_OUTPUT_HANDLE); xy.X=x; xy.Y=y;
SetConsoleCursorPosition(hstdout,xy); //CloseHandle(hstdout); }
void fillchar(char a,int charlen) {
COORD xy={0}; HANDLE hstdout; long byw;
hstdout=GetStdHandle(STD_OUTPUT_HANDLE);
FillConsoleOutputCharacter(hstdout,a,charlen,xy,&byw); CloseHandle(hstdout); }
#define X 20 #define Y 6 //绘制边框 void drawM(void) {
int i;
//上边
44
gotoxy(X,Y); prt(\┏\
for (i=1;i<=13;i++) { prt(\━\
}
prt(\┓\ //左边
for (i=1;i<=16;i++) {
gotoxy(X,Y+i); prt(\┃\ } //右边
for (i=1;i<=16;i++) {
gotoxy(X+28,Y+i); prt(\┃\
} //下边
gotoxy(X,Y+17); prt(\┗\ for (i=1;i<=13;i++) { prt(\━\ }
prt(\┛\ return ; }
//drawmenu
void drawmenu(void) {
45