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

📄 els1.c

📁 minigui编写的俄罗斯方块! 希望大家喜欢!
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/mywindows.h>#include <minigui/mgext.h>#include <minigui/filedlg.h>#include <minigui/newfiledlg.h>#define NEXT_X 278#define NEXT_Y 12#define BEGIN_X 8#define BEGIN_Y 0#define YELLOW 0#define GREEN 1#define BLUE 2#define RED 3#define MOVE 25#define IDM_START 120#define IDM_EXIT 121#define IDM_LEVEL1 140#define IDM_LEVEL2 141#define IDM_LEVEL3 142#define IDM_LEVEL4 143#define IDM_LEVEL5 145#define IDM_LEVEL6 146#define IDM_LEVEL7 147#define IDM_LEVEL8 148#define IDM_LEVEL9 149static BITMAP Number[10];static RECT Rect={7,0,258,500};static void FinshOne();typedef struct _SQUARE{	int Kind;	int Color;	int PostX;	int PostY;	int Flag[4][4];	BITMAP Shape[76];}SQUARE;typedef struct _BASE{	int Color;	int Flag[20][13];	BITMAP Shape[4];}BASE;static BITMAP Back_pic;static BITMAP Back_ground;static SQUARE Square;static BASE Base;static int Start=0;static int Num=0;static int NextNum=0;static int Line=0;static int Row=0;static int Level=100;static int LEVEL=0;static int SCORE=0;static int TIER=0;static int RECORD=0;static int Count=0;static HMENU createpmenufile(void){      HMENU hmnu;      MENUITEMINFO mii;      memset (&mii, 0, sizeof(MENUITEMINFO));      mii.type        = MFT_STRING;      mii.id          = 0;      mii.typedata    = (DWORD)"游戏";      hmnu = CreatePopupMenu (&mii);             mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_START;      mii.typedata    = (DWORD)"开始";      InsertMenuItem(hmnu, 0, TRUE, &mii);          mii.type        = MFT_SEPARATOR;      mii.state       = 0;      mii.id          = 0;      mii.typedata    = 0;      InsertMenuItem(hmnu, 1, TRUE, &mii);      mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_EXIT;      mii.typedata    = (DWORD)"退出";      InsertMenuItem(hmnu, 2, TRUE, &mii);      return hmnu;}static HMENU createlevel(void){	HMENU hmnu;     	MENUITEMINFO mii;     	memset (&mii, 0, sizeof(MENUITEMINFO));     	mii.type        = MFT_STRING;     	mii.id          = 0;     	mii.typedata    = (DWORD)"级别";      	hmnu = CreatePopupMenu (&mii);             mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL1;      mii.typedata    = (DWORD)"LEVEL-1   ";      InsertMenuItem(hmnu, 0, TRUE, &mii);     	mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL2;      mii.typedata    = (DWORD)"LEVEL-2    ";      	InsertMenuItem(hmnu, 1, TRUE, &mii);	mii.type        = MFT_STRING;       mii.state       = 0;      	mii.id          = IDM_LEVEL2;     	mii.typedata    = (DWORD)"LEVEL-2    ";     	InsertMenuItem(hmnu, 2, TRUE, &mii);      mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL3;      mii.typedata    = (DWORD)"LEVEL-3    ";      InsertMenuItem(hmnu, 3, TRUE, &mii);      mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL4;      mii.typedata    = (DWORD)"LEVEL-4    ";      InsertMenuItem(hmnu, 4, TRUE, &mii);	        mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL5;      mii.typedata    = (DWORD)"LEVEL-5    ";      InsertMenuItem(hmnu, 5, TRUE, &mii);      mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL6;      mii.typedata    = (DWORD)"LEVEL-6    ";      InsertMenuItem(hmnu, 6, TRUE, &mii);      mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL7;      mii.typedata    = (DWORD)"LEVEL-7    ";      InsertMenuItem(hmnu, 7, TRUE, &mii);      mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL8;      mii.typedata    = (DWORD)"LEVEL-8    ";      InsertMenuItem(hmnu, 8, TRUE, &mii);      mii.type        = MFT_STRING;      mii.state       = 0;      mii.id          = IDM_LEVEL9;      mii.typedata    = (DWORD)"LEVEL-9    ";      InsertMenuItem(hmnu, 9, TRUE, &mii);	return hmnu;}static HMENU createmenu(void){		HMENU hmenu;	MENUITEMINFO mii;		hmenu= CreateMenu();		memset(&mii, 0 ,sizeof(MENUITEMINFO));	mii.type=MFT_STRING;		mii.id=100;	mii.typedata=(DWORD)"文件";        mii.hsubmenu = createpmenufile ();		InsertMenuItem(hmenu, 0, TRUE, &mii);		mii.type        = MFT_STRING;        mii.id          = 110;        mii.typedata    = (DWORD)"等级";        mii.hsubmenu    = createlevel ();                InsertMenuItem(hmenu, 1, TRUE, &mii);	return hmenu;}static LoadPicture(){	int i=0;		LoadBitmap (HDC_SCREEN, &Back_pic,"./bk/bk_pic001.bmp");	LoadBitmap (HDC_SCREEN, &Back_ground,"./bk/bk_ground1.png");	LoadBitmap (HDC_SCREEN, &Number[0],"./number/0.png");	LoadBitmap (HDC_SCREEN, &Number[1],"./number/1.png");	LoadBitmap (HDC_SCREEN, &Number[2],"./number/2.png");	LoadBitmap (HDC_SCREEN, &Number[3],"./number/3.png");	LoadBitmap (HDC_SCREEN, &Number[4],"./number/4.png");	LoadBitmap (HDC_SCREEN, &Number[5],"./number/5.png");	LoadBitmap (HDC_SCREEN, &Number[6],"./number/6.png");	LoadBitmap (HDC_SCREEN, &Number[7],"./number/7.png");	LoadBitmap (HDC_SCREEN, &Number[8],"./number/8.png");	LoadBitmap (HDC_SCREEN, &Number[9],"./number/9.png");		LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+0],"./square/yellow/yellowj1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+1],"./square/yellow/yellowj2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+2],"./square/yellow/yellowj3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+3],"./square/yellow/yellowj4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+4],"./square/yellow/yellowl1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+5],"./square/yellow/yellowl2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+6],"./square/yellow/yellowl3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+7],"./square/yellow/yellowl4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+8],"./square/yellow/yellowt1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+9],"./square/yellow/yellowt2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+10],"./square/yellow/yellowt3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+11],"./square/yellow/yellowt4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+12],"./square/yellow/yellows1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+13],"./square/yellow/yellows2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+14],"./square/yellow/yellowz1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+15],"./square/yellow/yellowz2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+16],"./square/yellow/yellowi1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+17],"./square/yellow/yellowi2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[YELLOW+18],"./square/yellow/yellowo.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+0],"./square/blue/bluej1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+1],"./square/blue/bluej2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+2],"./square/blue/bluej3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+3],"./square/blue/bluej4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+4],"./square/blue/bluel1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+5],"./square/blue/bluel2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+6],"./square/blue/bluel3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+7],"./square/blue/bluel4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+8],"./square/blue/bluet1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+9],"./square/blue/bluet2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+10],"./square/blue/bluet3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+11],"./square/blue/bluet4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+12],"./square/blue/blues1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+13],"./square/blue/blues2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+14],"./square/blue/bluez1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+15],"./square/blue/bluez2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+16],"./square/blue/bluei1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+17],"./square/blue/bluei2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[BLUE*19+18],"./square/blue/blueo.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+0],"./square/green/greenj1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+1],"./square/green/greenj2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+2],"./square/green/greenj3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+3],"./square/green/greenj4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+4],"./square/green/greenl1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+5],"./square/green/greenl2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+6],"./square/green/greenl3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+7],"./square/green/greenl4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+8],"./square/green/greent1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+9],"./square/green/greent2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+10],"./square/green/greent3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+11],"./square/green/greent4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+12],"./square/green/greens1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+13],"./square/green/greens2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+14],"./square/green/greenz1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+15],"./square/green/greenz2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+16],"./square/green/greeni1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+17],"./square/green/greeni2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[GREEN*19+18],"./square/green/greeno.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+0],"./square/red/redj1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+1],"./square/red/redj2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+2],"./square/red/redj3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+3],"./square/red/redj4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+4],"./square/red/redl1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+5],"./square/red/redl2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+6],"./square/red/redl3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+7],"./square/red/redl4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+8],"./square/red/redt1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+9],"./square/red/redt2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+10],"./square/red/redt3.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+11],"./square/red/redt4.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+12],"./square/red/reds1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+13],"./square/red/reds2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+14],"./square/red/redz1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+15],"./square/red/redz2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+16],"./square/red/redi1.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+17],"./square/red/redi2.png");	LoadBitmap (HDC_SCREEN, &Square.Shape[RED*19+18],"./square/red/redo.png");	LoadBitmap (HDC_SCREEN, &Base.Shape[YELLOW],"./square/base/yellow.png");	LoadBitmap (HDC_SCREEN, &Base.Shape[BLUE],"./square/base/blue.png");	LoadBitmap (HDC_SCREEN, &Base.Shape[GREEN],"./square/base/green.png");	LoadBitmap (HDC_SCREEN, &Base.Shape[RED],"./square/base/red.png");	srand( (unsigned)time( NULL ) );}static void GetBase(){	int i=0;	int j=0;	int k=0;	int temp=0;	for( i=0 ; i<4 ; i++ )	{		for( j=0 ; j<4 ; j++)		{			if(  Square.Flag[i][j]== 1)			{				Base.Flag[Line+i][Row+j] = 1;			}		}	}	Base.Color = Num/19;	for( j=0; j<4; j++)	{		temp=0;		for( i=0; i<10; i++)		{			temp+=Base.Flag[Line+3-j][i];		}		if( temp==10 )		{			for( i=0; i<10 ; i++)			{				Base.Flag[Line+3-j][i]=0;			}			Count++;		}	}	for( j=0; j<4; j++)	{		temp=0;		for( i=0; i<10; i++)		{			temp+=Base.Flag[Line+j][i];		}		if( temp==0 )		{			for( k=(Line+j); k>3 ; k--)			{				for( i=0; i<10; i++)				{					Base.Flag[k][i]=Base.Flag[k-1][i];				}			}		}		}}static void SetLevel(){	if( TIER<=2000)	{		TIER+=Count;	}	else	{		TIER=0;	}	if( TIER%20==0 )	{		if( LEVEL<=99 )		{			LEVEL++;		}		else		{			LEVEL=0;		}		if( Level>10 )		{			Level-=10;		}		else		{			Level=100;		}	}	if( Count== 1)	{		SCORE+=1;	}	else if( Count==2 )	{		SCORE+=4;	}	else if(Count==3 )	{		SCORE+=8;	}	else if(Count==4 )	{		SCORE+=16;	}	if( SCORE>32000 )	{		SCORE=0;	}	if( SCORE>RECORD)	{		RECORD=SCORE;	}	Count=0;}static void InitEls(){	int i=0;	Square.PostX=83;	Square.PostY=0;	for( i=0 ; i<20 ; i++)	{		Base.Flag[i][0]=0;		Base.Flag[i][1]=0;		Base.Flag[i][2]=0;		Base.Flag[i][3]=0;		Base.Flag[i][4]=0;		Base.Flag[i][5]=0;		Base.Flag[i][6]=0;		Base.Flag[i][7]=0;		Base.Flag[i][8]=0;		Base.Flag[i][9]=0;		Base.Flag[i][10]=1;		Base.Flag[i][11]=1;		Base.Flag[i][12]=1;	}	Start=1;	Num = NextNum;	Line = 0;	Row = 3;	NextNum = rand()%76;	LEVEL=0;	SCORE=0;	TIER=0;}static void JudgeSquare(){	int i=0;	int j=0;	for( i=0; i<4 ; i++)	{		for( j=0; j<4 ; j++)		{			Square.Flag[i][j]=0;		}	}				if( Num== 0 || Num==19 || Num== 38 || Num== 57)	{		Square.Flag[1][1]=1;		Square.Flag[2][1]=1;		Square.Flag[3][0]=1;		Square.Flag[3][1]=1;	}	else if( Num == 1 || Num== 20 || Num==39 || Num==58)	{		Square.Flag[2][0]=1;		Square.Flag[3][0]=1;		Square.Flag[3][1]=1;		Square.Flag[3][2]=1;	}	else if( Num ==2 || Num==21 || Num==40 || Num==59)	{		Square.Flag[1][0]=1;		Square.Flag[2][0]=1;		Square.Flag[3][0]=1;		Square.Flag[1][1]=1;	}	else if( Num ==3 || Num==22 || Num==41 || Num==60)	{		Square.Flag[2][0]=1;		Square.Flag[2][1]=1;		Square.Flag[2][2]=1;		Square.Flag[3][2]=1;	}	else if( Num ==4 || Num==23 || Num==42 || Num==61)	{		Square.Flag[1][0]=1;		Square.Flag[2][0]=1;		Square.Flag[3][0]=1;		Square.Flag[3][1]=1;	}	else if( Num ==5 || Num==24 || Num==43 || Num==62)	{		Square.Flag[2][0]=1;		Square.Flag[2][1]=1;		Square.Flag[2][2]=1;		Square.Flag[3][0]=1;	}	else if( Num ==6 || Num==25 || Num==44 || Num==63)	{		Square.Flag[1][0]=1;		Square.Flag[1][1]=1;		Square.Flag[2][1]=1;		Square.Flag[3][1]=1;	}	else if( Num ==7 || Num==26 || Num==45 || Num==64)	{		Square.Flag[2][2]=1;		Square.Flag[3][0]=1;		Square.Flag[3][1]=1;		Square.Flag[3][2]=1;	}	else if( Num ==8 || Num==27 || Num==46 || Num==65)	{		Square.Flag[1][0]=1;		Square.Flag[2][0]=1;		Square.Flag[3][0]=1;		Square.Flag[2][1]=1;	}	else if( Num ==9 || Num==28 || Num==47 || Num==66)	{		Square.Flag[2][0]=1;		Square.Flag[2][1]=1;		Square.Flag[2][2]=1;		Square.Flag[3][1]=1;	}	else if( Num ==10 || Num==29 || Num==48 || Num==67)	{		Square.Flag[1][1]=1;		Square.Flag[2][0]=1;		Square.Flag[2][1]=1;		Square.Flag[3][1]=1;	}	else if( Num ==11 || Num==30|| Num==49 || Num==68)	{		Square.Flag[2][1]=1;		Square.Flag[3][0]=1;		Square.Flag[3][1]=1;		Square.Flag[3][2]=1;	}	else if( Num ==12 || Num==31 || Num==50 || Num==69)	{		Square.Flag[1][0]=1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -