C 自制拼图游戏Word文档下载推荐.docx

上传人:b****6 文档编号:18751559 上传时间:2023-01-01 格式:DOCX 页数:30 大小:23.23KB
下载 相关 举报
C 自制拼图游戏Word文档下载推荐.docx_第1页
第1页 / 共30页
C 自制拼图游戏Word文档下载推荐.docx_第2页
第2页 / 共30页
C 自制拼图游戏Word文档下载推荐.docx_第3页
第3页 / 共30页
C 自制拼图游戏Word文档下载推荐.docx_第4页
第4页 / 共30页
C 自制拼图游戏Word文档下载推荐.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C 自制拼图游戏Word文档下载推荐.docx

《C 自制拼图游戏Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C 自制拼图游戏Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。

C 自制拼图游戏Word文档下载推荐.docx

intmouse_x,mouse_y,n=0,line=3,high3=100,high4=200,high5=300;

//鼠标XY移动步数难度记录

charstr[10]="

"

;

//字符串,显示步数和记录时用

boolfin=false,new3=true,new4=false,new5=false;

//完成难度三四五的重绘

structPoint

{

intx;

inty;

intnum;

}point[26];

//块

ATOMMyRegisterClass(HINSTANCEhInstance);

BOOLInitInstance(HINSTANCE,int);

LRESULTCALLBACK 

WndProc(HWND,UINT,WPARAM,LPARAM);

voidMyPaint();

//显示

voidChange_Block(intblock1,intblock2);

//交换两块的属性

voidSave();

//保存记录

voidGetPos();

//为重绘做的随机排列

intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow)

MSGmsg;

MyRegisterClass(hInstance);

if(!

InitInstance(hInstance,nCmdShow)) 

//如果实例化失败,退出

returnFALSE;

}

while(GetMessage(&

msg,NULL,0,0)) 

//消息循环,一直获取消息,直到消息返回值为假

TranslateMessage(&

msg);

//翻译消息

DispatchMessage(&

//将消息发到适当的对象上

returnmsg.wParam;

ATOMMyRegisterClass(HINSTANCEhInstance) 

//注册窗口类,通知你要建的窗口是什么样的.可以有多个,用类名来区分

WNDCLASSEXwcex;

//类名

wcex.cbSize=sizeof(WNDCLASSEX);

//类的长度 

cb...表示存储空间

wcex.style 

=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;

//窗口风格 

水平horizontal.垂直vertical.重画redraw

wcex.lpfnWndProc 

=(WNDPROC)WndProc;

//指向函数的一个指针指向WndProc

//LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

wcex.cbClsExtra 

=0;

//类变量占用的存储(cb表示存储空间的前缀)

wcex.cbWndExtra 

//实例变量占用的存储

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"

//该类名字的字符串 

lpsz长指针,以\0结束

wcex.hIconSm 

=NULL;

//

returnRegisterClassEx(&

wcex);

//定义完类的各个对象后注册

BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)

HWNDhWnd;

hInst=hInstance;

charfilename[30]="

hWnd=CreateWindow("

"

游戏窗口"

WS_OVERLAPPEDWINDOW&

~WS_MAXIMIZEBOX&

~WS_THICKFRAME,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,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,"

Source\\pic\\empty.bmp"

IMAGE_BITMAP,687,526,LR_LOADFROMFILE);

for(intm=0;

m<

=7;

m++)

sprintf(filename,"

Source\\pic\\pic%d.bmp"

m);

//读图,没什么好说的

pict[m]=(HBITMAP)LoadImage(hInstance,filename,IMAGE_BITMAP,600,480,LR_LOADFROMFILE);

compare_pict[m]=(HBITMAP)LoadImage(hInstance,filename,IMAGE_BITMAP,450,360,LR_LOADFROMFILE);

pic=pict[0];

compare_pic=compare_pict[0];

FILE*fp;

//读入record文件中的记录

if((fp=fopen("

Source\\record"

"

ab+"

))==NULL)

MessageBox(NULL,"

不能打开record文件,可能被删除,请在Source中重新建立."

"

NULL);

returnfalse;

else

fread(&

high3,sizeof(high3),1,fp);

high4,sizeof(high4),1,fp);

high5,sizeof(high5),1,fp);

fclose(fp);

MyPaint();

returnTRUE;

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

PAINTSTRUCTps;

intblock_num=0;

//用于鼠标所指的块的编号,非NUM号要区分

switch(message)

caseWM_PAINT:

hdc=BeginPaint(hWnd,&

ps);

MyPaint();

EndPaint(hWnd,&

break;

caseWM_COMMAND:

//菜单命令 

switch(LOWORD(wParam))

caseID_NEWGAME:

fin=0;

n=0;

switch(line)

case3:

new3=true;

//读图后要重排图

case4:

new4=true;

case5:

new5=true;

default:

caseID_PIC0:

//读入大图

//读入参照图

caseID_PIC1:

pic=pict[1];

compare_pic=compare_pict[1];

caseID_PIC2:

pic=pict[2];

compare_pic=compare_pict[2];

caseID_PIC3:

pic=pict[3];

compare_pic=compare_pict[3];

caseID_PIC4:

pic=pict[4];

compare_pic=compare_pict[4];

caseID_PIC5:

pic=pict[5];

compare_pic=compare_pict[5];

caseID_PIC6:

pic=pict[6];

compare_pic=compare_pict[6];

caseID_PIC7:

pic=pict[7];

compare_pic=compare_pict[7];

caseID_PIC8:

if(LoadImage(NULL,"

Source\\pic\\other.bmp"

IMAGE_BITMAP,600,480,LR_LOADFROMFILE)) 

//成功载入other.bmp

pic=(HBITMAP)LoadImage(NULL,"

IMAGE_BITMAP,600,480,LR_LOADFROMFILE);

compare_pic=(HBITMAP)LoadImage(NULL,"

IMAGE_BITMAP,450,360,LR_LOADFROMFILE);

elseMessageBox(hWnd,"

pic文件夹中无other.bmp文件."

说明"

//未成功载入other.bmp

caseID_THREE:

new3=true;

new4=false;

new5=false;

line=3;

//如果选难度三,则要重排图,不许四,五重排.难度设为三,标记未完成,n从0记数.

caseID_FOUR:

new3=false;

new4=true;

line=4;

caseID_FIVE:

new5=true;

line=5;

caseID_INTRODUCE:

MessageBox(hWnd,"

鼠标点击移动,拼完整即胜利!

\n\n如果想自添加图需要用BMP格式,文件名为other.bmp。

并放入pic文件夹中."

caseID_ABOUT:

如发现BUG或有好的建议。

请致信EMAIL:

29648634@。

谢谢!

\n\n\t 

SpecialThank老婆--悦对我的大力支持!

\n\n\t\t\t\t\t作者:

高坤"

caseID_EXIT:

DestroyWindow(hWnd);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1