文档介绍:推箱子程序设计与报告
2
程
序
设
计
与
实
验
报
告
设计内容:推箱子
姓名
3
aram // second message parameter
);//窗口过程函数原型
BOOL InitWindowsClass(HINSTANCE hInstance);//初始化窗口类
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);//初始化窗口
BOOL CALLBACK DlgProc(HWND hdlg,UINT message,WPARAM wParam,LPARAM lParam);//对话框过程函数
void Show_Image(HBITMAP bmap,int i,int j); //显示单张图片
void Draw_Map();//作图的函数
void Show_Map();//显示地图
void Get_Poision(Poision &poision);//人物在哪里的定位
void main()
{
PlaySound("E:\\", NULL, SND_FILENAME | SND_ASYNC);
}
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
hWnd=CreateWindow("joe","推箱子",WS_OVERLAPPEDWINDOW,450,200,325,372,NULL,NULL,hInstance,NULL);
if(!hWnd)
return FALSE;
SetTimer(hWnd, 1, 1, NULL);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
hInst=hInstance;
return TRUE;
}
地图的输出
13
void Show_Map()
{
int i,j;
for(i=0;i<10;i++)//1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地
for(j=0;j<10;j++)
if(Map[i][j]==1)
Show_Image(hBm_wall,32*j,32*i);
else if(Map[i][j]==2)
Show_Image(hBm_box,32*j,32*i);
else if(Map[i][j]==3)
Show_Image(hBm_people,32*j,32*i);
else if(Map[i][j]==4)
Show_Image(hBm_dirtion,32*j,32*i);
else if(Map[i][j]==0)
Show_Image(hBm_floor,32*j,32*i);
}
void Get_Poision(Poision &poision)
{
int i=0,j=0;
bool flag=FALSE;
=0,=0;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(Map[i][j]==3)
{
=i;
=j;
flag=TRUE;
break;
}
}
if(flag==TRUE)
break;
}
}
地图的编写
int Map4[10][10]={1,1,1,1,1,0,0,0,0,0, //1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地
15
1,3,0,0,1,0,0,0,0,0,
1,0,2,2,1,0,0,1,1,1,
1,0,2,0,1,0,0,1,4,1,
1,1,1,0,1,1,1,1,4,1,
0,1,1,0,0,0,0,0,4,1,
0,1,0,0,0,1,0,0,