📄 lian.c
字号:
int k=0; int arm[10]; for( k=1; k<11; k++) { j=0; for( i=0; i<10; i++) { arm[i]=-1; } for( i=1; i<9; i++) { if( Flag[i][k]>=0 ) { arm[j]=Flag[i][k]; j++; } } for( i=0; i<8; i++) { Flag[i+1][k]=arm[i]; } }}static void LeftMove(){ int i=0; int j=0; int k=0; int arm[10]; for( k=1; k<9; k++) { j=0; for( i=0; i<10; i++) { arm[i]=-1; } for( i=1; i<11; i++) { if( Flag[k][i]>=0 ) { arm[j]=Flag[k][i]; j++; } } for( i=0; i<10; i++) { Flag[k][i+1]=arm[i]; } }}static void RightMove(){ int i=0; int j=0; int k=0; int arm[10]; for( k=1; k<9; k++) { j=0; for( i=0; i<10; i++) { arm[i]=-1; } for( i=10; i>0; i--) { if( Flag[k][i]>=0 ) { arm[j]=Flag[k][i]; j++; } } for( i=0; i<10; i++) { Flag[k][10-i]=arm[i]; } }}static void CenterBTMove(){ int i=0; int j=0; int k=0; int arm[5]; for( k=1; k<11; k++) { j=0; for( i=0; i<5; i++) { arm[i]=-1; } for( i=4; i>0; i--) { if( Flag[i][k]>=0 ) { arm[j]=Flag[i][k]; j++; } } for( i=0; i<4; i++) { Flag[4-i][k]=arm[i]; } } for( k=1; k<11; k++) { j=0; for( i=0; i<5; i++) { arm[i]=-1; } for( i=5; i<9; i++) { if( Flag[i][k]>=0 ) { arm[j]=Flag[i][k]; j++; } } for( i=4; i<8; i++) { Flag[i+1][k]=arm[i-4]; } }}static void CenterRLMove(){ int i=0; int j=0; int k=0; int arm[5]; for( k=1; k<9; k++) { j=0; for( i=0; i<5; i++) { arm[i]=-1; } for( i=5; i>0; i--) { if( Flag[k][i]>=0 ) { arm[j]=Flag[k][i]; j++; } } for( i=0; i<5; i++) { Flag[k][5-i]=arm[i]; } } for( k=1; k<9; k++) { j=0; for( i=0; i<5; i++) { arm[i]=-1; } for( i=6; i<11; i++) { if( Flag[k][i]>=0 ) { arm[j]=Flag[k][i]; j++; } } for( i=5; i<10; i++) { Flag[k][i+1]=arm[i-5]; } }}static void BTMove(){ int i=0; int j=0; int k=0; int arm[5]; for( k=1; k<11; k++) { j=0; for( i=0; i<5; i++) { arm[i]=-1; } for( i=1; i<5; i++) { if( Flag[i][k]>=0 ) { arm[j]=Flag[i][k]; j++; } } for( i=0; i<4; i++) { Flag[i+1][k]=arm[i]; } } for( k=1; k<11; k++) { j=0; for( i=0; i<5; i++) { arm[i]=-1; } for( i=8; i>4; i--) { if( Flag[i][k]>=0 ) { arm[j]=Flag[i][k]; j++; } } for( i=0; i<4; i++) { Flag[8-i][k]=arm[i]; } }}static void RLMove(){ int i=0; int j=0; int k=0; int arm[5]; for( k=1; k<9; k++) { j=0; for( i=0; i<5; i++) { arm[i]=-1; } for( i=1; i<6; i++) { if( Flag[k][i]>=0 ) { arm[j]=Flag[k][i]; j++; } } for( i=0; i<5; i++) { Flag[k][i+1]=arm[i]; } } for( k=1; k<9; k++) { j=0; for( i=0; i<5; i++) { arm[i]=-1; } for( i=10; i>5; i--) { if( Flag[k][i]>=0 ) { arm[j]=Flag[k][i]; j++; } } for( i=0; i<5; i++) { Flag[k][10-i]=arm[i]; } }}static int LianWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam){ HDC hdc; int prex,prey; int i=0; int j=0; int line=0; int row=0; int number; switch (message) { case MSG_CREATE: { SetTimer(hWnd, 100, 40 ); break; } case MSG_INITDIALOG: { break; } case MSG_PAINT: { hdc = BeginPaint(hWnd); FillBoxWithBitmap(hdc,0,0,800,560,&Bk_Ground); FillBoxWithBitmap(hdc,680,56,120,50,&Bt_Ruffle); FillBoxWithBitmap(hdc,680,126,120,50,&Bt_Clew); FillBoxWithBitmap(hdc,680,196,120,50,&Bt_Restart); FillBoxWithBitmap(hdc,680,266,120,50,&Bt_End); FillBoxWithBitmap(hdc,760,140,18,19,&Number[ClewNum]); FillBoxWithBitmap(hdc,760,70,18,19,&Number[RuffleNum]); FillBoxWithBitmap(hdc,56,5,200,50,&Bk_State); FillBoxWithBitmap(hdc,320,5,200,50,&Bk_State); FillBoxWithBitmap(hdc,580,5,200,50,&Bk_State); FillBoxWithBitmap(hdc,65,0,44,60,&Bk_Score); FillBoxWithBitmap(hdc,330,0,44,60,&Bk_Record); FillBoxWithBitmap(hdc,590,6,100,44,&Bk_Stage); FillBoxWithBitmap(hdc,700,STATE_Y,18,19,&Number[Pass]); number=SCORE/10000; FillBoxWithBitmap(hdc,125,STATE_Y,18,19,&Number[number]); number=SCORE/1000 -number*10; FillBoxWithBitmap(hdc,145,STATE_Y,18,19,&Number[number]); number=SCORE/100 - (SCORE/1000)*10; FillBoxWithBitmap(hdc,165,STATE_Y,18,19,&Number[number]); number=SCORE/10 - (SCORE/100)*10; FillBoxWithBitmap(hdc,185,STATE_Y,18,19,&Number[number]); number=SCORE%10; FillBoxWithBitmap(hdc,205,STATE_Y,18,19,&Number[number]); number=RECORD/10000; FillBoxWithBitmap(hdc,390,STATE_Y,18,19,&Number[number]); number=RECORD/1000 -number*10; FillBoxWithBitmap(hdc,410,STATE_Y,18,19,&Number[number]); number=RECORD/100 - (RECORD/1000)*10; FillBoxWithBitmap(hdc,430,STATE_Y,18,19,&Number[number]); number=RECORD/10 - (RECORD/100)*10; FillBoxWithBitmap(hdc,450,STATE_Y,18,19,&Number[number]); number=RECORD%10; FillBoxWithBitmap(hdc,470,STATE_Y,18,19,&Number[number]); FillBoxWithBitmap(hdc,DogPost,SQUARE*9,100,55,&Time_Dog); FillBoxWithBitmap(hdc,GrilPost,SQUARE*9,51,55,&Time_Gril); for( i=0; i<10; i++) { for( j=0; j<12; j++) { if( Flag[i][j]>=0 ) { FillBoxWithBitmap(hdc,SQUARE*j,SQUARE*i,Base.Length,Base.Width,&Base.Picture[Flag[i][j]]); } if( V_Line[i][j]==1 ) { FillBoxWithBitmap(hdc,SQUARE*j,SQUARE*i,Base.Length,Base.Width,&Base.Picture[22]); } if( V_Line[i][j]==2 ) { FillBoxWithBitmap(hdc,SQUARE*j,SQUARE*i,Base.Length,Base.Width,&Base.Picture[21]); } if( V_Line[i][j]==3 ) { FillBoxWithBitmap(hdc,SQUARE*j,SQUARE*i,Base.Length,Base.Width,&Base.Picture[23]); } if( V_Line[i][j]==4 ) { FillBoxWithBitmap(hdc,SQUARE*j,SQUARE*i,Base.Length,Base.Width,&Base.Picture[24]); } if( V_Line[i][j]==5 ) { FillBoxWithBitmap(hdc,SQUARE*j,SQUARE*i,Base.Length,Base.Width,&Base.Picture[25]); } if( V_Line[i][j]==6 ) { FillBoxWithBitmap(hdc,SQUARE*j,SQUARE*i,Base.Length,Base.Width,&Base.Picture[26]); } } } if( Mode>0 ) { FillBoxWithBitmap(hdc,SQUARE*Choose_A.Row, SQUARE*Choose_A.Line,Choose_A.Length,Choose_A.Width,&Base.Picture[20]); } if( Mode==2 ) { FillBoxWithBitmap(hdc,SQUARE*Choose_B.Row, SQUARE*Choose_B.Line,Choose_B.Length,Choose_B.Width,&Base.Picture[20]); } if( Take==1 ) { FillBoxWithBitmap(hdc,SQUARE*Clew_A.Row, SQUARE*Clew_A.Line,Clew_A.Length,Clew_A.Width,&Base.Picture[20]); FillBoxWithBitmap(hdc,SQUARE*Clew_B.Row, SQUARE*Clew_B.Line,Clew_B.Length,Clew_B.Width,&Base.Picture[20]); } EndPaint(hWnd,hdc); break; } case MSG_LBUTTONDOWN: { prex = LOSWORD (lParam); prey = HISWORD (lParam); line = prey/55; row = prex/55; if( Mode==0 && Pass>0 ) { Take=0; Choose_A.Line=line; Choose_A.Row=row; Mode=1;// InvalidateRect (hWnd,NULL,TRUE); } else if( Mode==1 && Pass>0 ) { if( line!=Choose_A.Line || row!=Choose_A.Row ) { Choose_B.Line=line; Choose_B.Row=row; if( JudgeChoose()==1 ) { Flag[Choose_A.Line][Choose_A.Row]=-1; Flag[Choose_B.Line][Choose_B.Row]=-1; ResetTimer(hWnd, 100, 40 ); GrilPost-=8; SCORE+=10; if( SCORE>RECORD ) { RECORD=SCORE; } } Mode=2; } } if (prex>680 && prex<680+120 && prey>56 &&prey<56+50) //ruffer { if( RuffleNum>0 ) { RuffleNum--; Mode=0; Take=0; Ruffle(); InvalidateRect (hWnd,NULL,TRUE); } } if (prex>680 && prex<680+120 && prey>126 &&prey<126+50) //clew { if( ClewNum>0 ) { ClewNum--; Take=1; Mode=2; if( Clew()==0 ) { Take=0; } InvalidateRect (hWnd,NULL,TRUE); } } if (prex>680 && prex<680+120 && prey>196 &&prey<196+50) //restart { InitLian(); Ruffle(); RuffleNum=9; ClewNum=9; InvalidateRect (hWnd,NULL,TRUE); } if (prex>680 && prex<680+120 && prey>266 &&prey<266+50) //end { InvalidateRect (hWnd,NULL,TRUE); } ResetTimer(hWnd, 100, 40 ); InvalidateRect (hWnd,NULL,TRUE); break; } case MSG_TIMER: { if( Pass>0 ) { DogPost-=2; if( DogPost < GrilPost+50 ) { Pass=0; InvalidateRect (hWnd,NULL,TRUE); } if( GrilPost== 0) { InitLian(); Ruffle(); Pass++; SCORE+=DogPost-GrilPost; if( SCORE>RECORD ) { RECORD=SCORE; } if( Pass==9) { Pass=1; } InvalidateRect (hWnd,NULL,TRUE); } if (wParam == 100 && Mode==2 ) { for( i=0; i<10; i++) { for( j=0; j<12; j++) { V_Line[i][j]=0; } } Mode=0; if( Pass==2 ) { BottomMove(); } else if( Pass==3 ) { TopMove(); } else if( Pass==4 ) { RightMove(); } else if( Pass==5 ) { LeftMove(); } else if( Pass==6 ) { BTMove(); } else if( Pass==7 ) { RLMove(); } else if( Pass==8 ) { CenterBTMove(); } else if( Pass==9 ) { CenterRLMove(); } InvalidateRect(hWnd,NULL,TRUE); } InvalidateRect (hWnd,&Rect,TRUE); } break; } case MSG_CLOSE: DestroyMainWindow (hWnd); PostQuitMessage (hWnd); return 0; } return DefaultMainWinProc(hWnd, message, wParam, lParam);}int MiniGUIMain (int argc, const char* argv[]){ MSG Msg; HWND hMainWnd; MAINWINCREATE CreateInfo;#ifdef _LITE_VERSION SetDesktopRect(0, 0, 1024, 768);#endif CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = " game "; CreateInfo.hMenu =0; CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = LianWinProc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = 800; CreateInfo.by = 560; CreateInfo.iBkColor = COLOR_lightwhite; CreateInfo.dwAddData = 0; CreateInfo.hHosting = HWND_DESKTOP; hMainWnd = CreateMainWindow (&CreateInfo); if (hMainWnd == HWND_INVALID) return -1; LoadPicture(); InitLian(); Ruffle(); ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&Msg, hMainWnd)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } MainWindowThreadCleanup (hMainWnd); return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -