1、int mouse_x,mouse_y,n=0,line=3,high3=100,high4=200,high5=300;/鼠标X Y 移动步数 难度 记录char str10= ;/字符串,显示步数和记录时用bool fin=false,new3=true,new4=false,new5=false;/完成 难度三 四 五 的重绘struct Pointint x;int y; int num;point26;/块ATOM MyRegisterClass(HINSTANCE hInstance);BOOL InitInstance(HINSTANCE, int);LRESULT CALLBA
2、CKWndProc(HWND, UINT, WPARAM, LPARAM);void MyPaint();/显示void Change_Block(int block1,int block2);/交换两块的属性void Save();/保存记录void GetPos();/为重绘做的随机排列int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)MSG msg;MyRegisterClass(hInstance);if (!InitInstance (hInsta
3、nce, nCmdShow) /如果实例化失败,退出return FALSE;while (GetMessage(&msg, NULL, 0, 0)/消息循环,一直获取消息,直到消息返回值为假TranslateMessage(&msg);/翻译消息DispatchMessage(&/将消息发到适当的对象上return msg.wParam;ATOM MyRegisterClass(HINSTANCE hInstance) /注册窗口类,通知你要建的窗口是什么样的.可以有多个,用类名来区分WNDCLASSEX wcex;/类名wcex.cbSize = sizeof(WNDCLASSEX);/类
4、的长度 cb.表示存储空间wcex.style= CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;/窗口风格水平horizontal.垂直vertical.重画redrawwcex.lpfnWndProc= (WNDPROC)WndProc;/指向函数的一个指针 指向WndProc/LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)wcex.cbClsExtra= 0;/类变量占用的存储 (cb表示存储空间的前缀)wcex.cbWndExtra/实例变量占用的存
5、储wcex.hInstance= hInstance; /定义该类的应用程序实例的句柄wcex.hIcon= LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1);/图标对象的句柄wcex.hCursor= LoadCursor(NULL, IDC_ARROW); /光标图像的句柄wcex.hbrBackground= (HBRUSH)(COLOR_WINDOW+1); /用于擦掉用户区的刷子的句柄wcex.lpszMenuName= (LPCSTR)IDR_MENU1;/标识选单对象的字符串wcex.lpszClassName= CAN/该类名字的字符串
6、lpsz长指针,以0结束wcex.hIconSm= NULL;/return RegisterClassEx(&wcex);/定义完类的各个对象后注册BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)HWND hWnd;hInst = hInstance;char filename30=hWnd = CreateWindow(, 游戏窗口, WS_OVERLAPPEDWINDOW & WS_MAXIMIZEBOX & WS_THICKFRAME,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL,
7、hInstance, NULL);hWnd) /类名,用于标识创建的窗口属于哪个类.MoveWindow(hWnd,80,100,1087,526,true);ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);hdc=GetDC(hWnd);mdc=CreateCompatibleDC(hdc);/创建缓存empty=(HBITMAP)LoadImage(hInstance,Sourcepicempty.bmp,IMAGE_BITMAP,687,526,LR_LOADFROMFILE); for(int m=0;m=7;m+)sprintf(filen
8、ame,Sourcepicpic%d.bmp,m); /读图,没什么好说的pictm = (HBITMAP)LoadImage(hInstance,filename,IMAGE_BITMAP,600,480,LR_LOADFROMFILE);compare_pictm=(HBITMAP)LoadImage(hInstance,filename,IMAGE_BITMAP,450,360,LR_LOADFROMFILE);pic=pict0;compare_pic=compare_pict0;FILE *fp;/读入record文件中的记录if(fp=fopen(Sourcerecord,ab+)
9、=NULL)MessageBox(NULL,不能打开record文件,可能被删除,请在Source中重新建立.,NULL);return false;else fread(&high3,sizeof(high3),1,fp);high4,sizeof(high4),1,fp);high5,sizeof(high5),1,fp);fclose(fp); MyPaint(); return TRUE;LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)PAINTSTRUCT ps;int bl
10、ock_num=0;/用于鼠标所指的块的编号,非NUM号 要区分switch (message) case WM_PAINT:hdc = BeginPaint(hWnd, &ps);MyPaint();EndPaint(hWnd, &break;case WM_COMMAND:/菜单命令switch(LOWORD(wParam)case ID_NEWGAME:fin=0;n=0;switch(line)case 3: new3=true;/读图后要重排图case 4: new4=true;case 5: new5=true;default:case ID_PIC0:/读入大图 /读入参照图 c
11、ase ID_PIC1:pic=pict1;compare_pic=compare_pict1;case ID_PIC2:pic=pict2;compare_pic=compare_pict2;case ID_PIC3:pic=pict3;compare_pic=compare_pict3;case ID_PIC4:pic=pict4;compare_pic=compare_pict4;case ID_PIC5:pic=pict5;compare_pic=compare_pict5;case ID_PIC6:pic=pict6;compare_pic=compare_pict6;case ID
12、_PIC7:pic=pict7;compare_pic=compare_pict7;case ID_PIC8:if(LoadImage(NULL,Sourcepicother.bmp,IMAGE_BITMAP,600,480,LR_LOADFROMFILE) /成功载入other.bmppic = (HBITMAP)LoadImage(NULL,IMAGE_BITMAP,600,480,LR_LOADFROMFILE);compare_pic=(HBITMAP)LoadImage(NULL,IMAGE_BITMAP,450,360,LR_LOADFROMFILE);else MessageBo
13、x(hWnd,pic文件夹中无other.bmp文件.说明 /未成功载入other.bmpcase ID_THREE:new3=true;new4=false;new5=false;line=3;/如果选难度三,则要重排图,不许四,五重排.难度设为三,标记未完成,n从0记数.case ID_FOUR:new3=false;new4=true;line=4;case ID_FIVE:new5=true;line=5;case ID_INTRODUCE:MessageBox(hWnd,鼠标点击移动,拼完整即胜利!nn如果想自添加图需要用BMP格式,文件名为other.bmp。并放入pic文件夹中.case ID_ABOUT:如发现BUG或有好的建议。请致信EMAIL:29648634。谢谢!nnt Special Thank 老婆-悦 对我的大力支持!nnttttt作者:高坤case ID_EXIT:DestroyWindow(hWnd);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1