⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lian.c

📁 minigui编写的连连看! 请多指教!
💻 C
📖 第 1 页 / 共 2 页
字号:
	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 + -