📄 els1.c
字号:
#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 + -