gotoxy(CHESS_X+x*2,CHESS_Y+y-1); prt(\ \
ChessBoard[x][y]=ChessBoard[x][y-1]; } }
for (x=1;x<12;x++) {
for (y=0;y<18;y++)
gotoxy(CHESS_X+x*2,CHESS_Y+y); if (ChessBoard[x][y]) {
prt(\■\
} }
}else prt(\ \
//添加棋子数据到棋盘
void Add1Chess(chess_data Chess) {
int x,y; int rowY;
int rowNum=0; for (x=0;x<4;x++) for (y=0;y<4;y++) {
if (Chess.data[x][y]) {
//ChessBoard
ChessBoard[(Chess.xy.X-CHESS_X)/2+x][Chess.xy.Y-CHESS_Y+y]=1;
} }
36
//更新数据后检测 for (y=0;y<4;y++) {
if ((rowY=CheckRowAllOne())>=0) { } }
//
switch (rowNum)
{
case 1:
PointNum+=10;
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5);
printf(\当前得分=?\
break; case 2:
PointNum+=30;
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5);
printf(\当前得分=?\
case 3:
PointNum+=60;
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5);
printf(\当前得分=?\case 4:
PointNum+=100;
37
//消掉这一行 ClearRow(rowY); rowNum++;
//记算这一局得分情况
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5); printf(\当前得分=?\
}
break; }
//以■方块显示棋盘数据
void ShowChessBoard() //显示ChessBoard里的1 {
int x,y;
for (x=0;x<12;x++) for (y=0;y<18;y++) {
if (ChessBoard[x][y]) {
gotoxy(CHESS_X+x*2,CHESS_Y+y);
prt(\■\
} } }
void showallchess(void) {
int x,y;
for (x=0;x<5;x++) {
for (y=0;y<4;y++) //0..3 {
ShowChess (DownChessData[x][y]); gotoxy(0,0);
printf(\ getch(); getch();
ClearChess(DownChessData[x][y]);
38
} } }
void pauseGame() {
static int pause=0; if (pause) {
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5+2);
printf(\按Q键--暂停\
ResumeThread(th1); pause=0; } else {
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5+2);
printf(\按Q键--继续\
SuspendThread(th1); //线程挂起后,线程代码就暂停执行
pause=1; } }
//开始游戏
void playgame(void) {
int ch=0; //
srand( (unsigned)time( NULL ) );
//初始化数据
EnterCriticalSection(&cs);
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5); printf(\当前得分=?\
39
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5+2); printf(\按Q键--暂停\
gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5+2+2); gotoxy(CHESS_X+CHESS_WIDTH+3,CHESS_Y+5+2+2+2); printf(\难度调节+,-号\
printf(\难度:m\InitChessData(); //showallchess();
//随机初始化
rx=rand()%5; ry=0;
oneChess=DownChessData[rx][ry]; oneChess.rx=rx; oneChess.ry=ry;
ShowChess(oneChess); LeaveCriticalSection(&cs); //
while(1) {
ch=getch();
EnterCriticalSection(&cs); gotoxy(0,0); printf(\ // 如果是下光标控制↓ //如果是左光标控制←
//如果是右光标控制→ switch(ch)
{
40
则下移 //80 则左移 //75 则右移 //77