C++推箱子(船长推塔救美人)

来源:互联网 发布:移动云mas无效mac 编辑:程序博客网 时间:2024/05/16 01:17
GameApp.cpp// GameApp.cpp: implementation of the GameApp class.////////////////////////////////////////////////////////////////////////#include "game.h"#include "GameApp.h"#include "GameWnd.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////GameApp theapp;BOOL GameApp::InitInstance(){m_pMainWnd=new GameWnd;m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();return true;}GameApp::GameApp(){}GameApp::~GameApp(){}// GameWnd.cpp : implementation file////#include "stdafx.h"#include#include "game.h"#include "GameWnd.h"#include #pragma comment(lib,"winmm.lib")#include "resource.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// GameWndIMPLEMENT_DYNCREATE(GameWnd, CFrameWnd)int maze[9][9]={ //遇到1是墙,2是入口,3是出口,0是路1,1,1,1,1,1,2,1,1, 1,0,0,0,0,0,0,0,1,1,0,4,3,3,0,4,0,1,1,0,0,5,3,5,3,0,1,//maze[3][3]maze[3][5]maze[5][3]maze[5][5]1,0,3,3,7,3,3,0,1,1,0,3,5,3,5,0,0,1,1,0,4,0,3,3,4,0,1, 1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1 }; //开辟8*8的矩阵int temp[9][9]={ //遇到1是墙,2是入口,3是出口,0是路1,1,1,1,1,1,2,1,1, 1,0,0,0,0,0,0,0,1,1,0,4,3,3,0,4,0,1,1,0,0,5,3,5,3,0,1,1,0,3,3,7,3,3,0,1,1,0,3,5,3,5,0,0,1,1,0,4,0,3,3,4,0,1, 1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1 }; int maze1[7][7]={ //遇到1是墙,2是入口,3是出口,0是路1,1,1,1,1,1,1, 1,5,0,5,0,5,1,1,0,4,4,4,0,1,1,5,4,2,4,5,1,1,0,4,4,4,0,1,1,5,0,5,0,5,1,1,1,1,1,1,1,1,}; int temp1[7][7]={ //遇到1是墙,2是入口,3是出口,0是路1,1,1,1,1,1,1, 1,5,0,5,0,5,1,1,0,4,4,4,0,1,//maze[1][1]maze[1][3]maze[1][5]maze[3][1]maze[3][5]maze[5][1]maze[5][3]maze[5][5]1,5,4,2,4,5,1,1,0,4,4,4,0,1,1,5,0,5,0,5,1,1,1,1,1,1,1,1,}; int maze2[9][9]={ 1,1,1,1,1,1,1,1,1,1,1,1,1,5,0,0,2,1,1,0,0,4,4,4,0,0,1,1,5,1,1,5,1,1,5,1,1,0,0,0,4,0,0,0,1,1,0,0,4,5,1,0,1,1,1,1,1,1,0,0,0,1,1,1,8,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,};int temp2[9][9]={ 1,1,1,1,1,1,1,1,1,1,1,1,1,5,0,0,2,1,1,0,0,4,4,4,0,0,1,1,5,1,1,5,1,1,5,1,1,0,0,0,4,0,0,0,1,1,0,0,4,5,1,0,1,1,1,1,1,1,0,0,0,1,1,1,8,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,};int count=0;int m,n;int leave=-1;int leap=-1;int flag=-1;int turn=0;GameWnd::GameWnd(){Create(NULL,"推箱子");mciSendString("play 音乐3.mp3",0,0,0);this->SetWindowPos(0,250,20,794,692,0);person =new CBitmap;wall =new CBitmap;road = new CBitmap;xz =new CBitmap;lufu = new CBitmap;daole = new CBitmap;si = new CBitmap;mdc =new CDC;start= new CBitmap;begin= new CBitmap;ta=new CBitmap;hanbing=new CBitmap;jieshu =new CBitmap;CMenu menu;menu.LoadMenu(IDR_MENU1);this->SetMenu(&menu);CClientDC dc(this);//给当前窗口定义mdc->CreateCompatibleDC(&dc);//为当前窗口开辟临时缓冲区dir=1;index=1;Invalidate();}int a=0;int h,k;GameWnd::~GameWnd(){}BEGIN_MESSAGE_MAP(GameWnd, CFrameWnd)//{{AFX_MSG_MAP(GameWnd)ON_WM_PAINT()ON_WM_KEYDOWN()ON_WM_CREATE()ON_COMMAND(ID_HELP, OnHelp)ON_COMMAND(ID_ONE, OnOne)ON_WM_LBUTTONDOWN()ON_COMMAND(ID_y1, Ony1)ON_COMMAND(ID_y2, Ony2)ON_COMMAND(ID_TWO, OnTwo)ON_COMMAND(ID_THREE, OnThree)ON_WM_MOUSEMOVE()ON_COMMAND(ID_y3, Ony3)ON_COMMAND(ID_dd, Ondd)//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// GameWnd message handlersvoid GameWnd::OnPaint() { CPaintDC dc(this); if(turn==0) { flag=0; start->m_hObject=LoadImage(NULL,"进入游戏.bmp",IMAGE_BITMAP,788,635,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(start); dc.BitBlt(0,0,788,635,mdc,0,0,SRCCOPY); //把内存中的图片送到窗口上,0,0代表整个图片 a=1; } if(leap==0) { flag=0; start->m_hObject=LoadImage(NULL,"船长1.bmp",IMAGE_BITMAP,788,635,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(start); dc.BitBlt(0,0,788,635,mdc,0,0,SRCCOPY); start->m_hObject=LoadImage(NULL,"第一关.bmp",IMAGE_BITMAP,180,55,LR_LOADFROMFILE); //装载图片 mdc->SelectObject(start); dc.BitBlt(310,515,600,600,mdc,0,0,SRCCOPY); //把内存中的图片送到窗口上,0,0代表整个图片 } if(leap==1) { if(a==1) { mciSendString("stop 音乐3.mp3",0,0,0); //f->m_hObject=LoadImage(NULL,"船长1.bmp",IMAGE_BITMAP,788,635,LR_LOADFROMFILE);//装载图片 //mdc->SelectObject(f); //dc.BitBlt(0,0,788,635,mdc,0,0,SRCCOPY); // device context for painting for(int i=0;i<9;i++) { for(int j=0;j<9 j="" mcisendstring="" play="" 1="" mp3="" 0="" 0="" 0="" mcisendstring="" play="" mp3="" 0="" 0="" 0="" if="" maze="" i="" j="" 0="" road-="">m_hObject=LoadImage(NULL,"路.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(road); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze[i][j]==1) { wall->m_hObject=LoadImage(NULL,"红色的墙.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(wall); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze[i][j]==2) { m=i; n=j; CString FileName; FileName.Format("%d.%d.bmp",dir,index); person->m_hObject=LoadImage(NULL,FileName,IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(person); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze[i][j]==3) { lufu->m_hObject=LoadImage(NULL,"grass.bmp", IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(lufu); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze[i][j]==4) { xz->m_hObject=LoadImage(NULL,"推塔.bmp", IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(xz); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze[i][j]==5) { daole->m_hObject=LoadImage(NULL,"daole.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(daole); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze[i][j]==6) { si->m_hObject=LoadImage(NULL,"house.bmp", IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(si); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze[i][j]==7) {ta->m_hObject=LoadImage(NULL,"红色塔.bmp", IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(ta); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } } } } } if(a==2) { if(flag==1) { begin->m_hObject=LoadImage(NULL,"船长2.bmp",IMAGE_BITMAP,790,650,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(begin); dc.BitBlt(0,0,790,650,mdc,0,0,SRCCOPY); //把内存中的图片送到窗口上,0,0代表整个图片 start->m_hObject=LoadImage(NULL,"第二关.bmp",IMAGE_BITMAP,180,55,LR_LOADFROMFILE); //装载图片 mdc->SelectObject(start); dc.BitBlt(310,515,600,600,mdc,0,0,SRCCOPY); //把内存中的图片送到窗口上,0,0代表整个图片 //mciSendString("play 即刻出发.mp3",0,0,0); } if(flag==2) { // device context for painting for(int i=0;i<7;i++) { for(int j=0;j<7 j="" if="" maze1="" i="" j="" 0="" road-="">m_hObject=LoadImage(NULL,"路.bmp",IMAGE_BITMAP,111,90,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(road); dc.BitBlt(j*111,i*90,111,90,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze1[i][j]==1) { wall->m_hObject=LoadImage(NULL,"红色的墙.bmp",IMAGE_BITMAP,111,90,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(wall); dc.BitBlt(j*111,i*90,111,90,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze1[i][j]==2) { m=i; n=j; CString FileName; FileName.Format("%d.%d.bmp",dir,index); person->m_hObject=LoadImage(NULL,FileName,IMAGE_BITMAP,111,90,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(person); dc.BitBlt(j*111,i*90,112,90,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze1[i][j]==4) { xz->m_hObject=LoadImage(NULL,"23.bmp",IMAGE_BITMAP,111,90,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(xz); dc.BitBlt(j*111,i*90,111,90,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze1[i][j]==5) { daole->m_hObject=LoadImage(NULL,"daole.bmp",IMAGE_BITMAP,111,90,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(daole); dc.BitBlt(j*111,i*90,111,90,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze1[i][j]==6) { si->m_hObject=LoadImage(NULL,"house.bmp",IMAGE_BITMAP,111,90,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(si); dc.BitBlt(j*111,i*90,111,90,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } } } } }if(a==3){ if(leave==2) { begin->m_hObject=LoadImage(NULL,"第三关船长.bmp",IMAGE_BITMAP,790,650,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(begin); dc.BitBlt(0,0,790,650,mdc,0,0,SRCCOPY); //把内存中的图片送到窗口上,0,0代表整个图片 start->m_hObject=LoadImage(NULL,"第三关.bmp",IMAGE_BITMAP,180,55,LR_LOADFROMFILE); //装载图片 mdc->SelectObject(start); dc.BitBlt(310,515,600,600,mdc,0,0,SRCCOPY); //把内存中的图片送到窗口上,0,0代表整个图片 //mciSendString("play 即刻出发.mp3",0,0,0); } if(leave==3) { // device context for painting for(int i=0;i<9;i++) { for(int j=0;j<9 j="" if="" maze2="" i="" j="" 0="" road-="">m_hObject=LoadImage(NULL,"路.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(road); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze2[i][j]==1) { wall->m_hObject=LoadImage(NULL,"红色的墙.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(wall); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze2[i][j]==2) { m=i; n=j; CString FileName; FileName.Format("%d.%d.bmp",dir,index); person->m_hObject=LoadImage(NULL,FileName,IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(person); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze2[i][j]==4) { xz->m_hObject=LoadImage(NULL,"23.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(xz); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze2[i][j]==5) { daole->m_hObject=LoadImage(NULL,"daole.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(daole); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze2[i][j]==6) { si->m_hObject=LoadImage(NULL,"house.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(si); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } if(maze2[i][j]==8) {hanbing->m_hObject=LoadImage(NULL,"hanbing.bmp",IMAGE_BITMAP,86,70,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(hanbing); dc.BitBlt(j*86,i*70,86,70,mdc,0,0,SRCCOPY);//把内存中的图片送到窗口上,0,0代表整个图片 } } } } } if(a==4) { if(leave==3)// flag=0; { jieshu->m_hObject=LoadImage(NULL,"寒冰.bmp",IMAGE_BITMAP,788,635,LR_LOADFROMFILE);//装载图片 mdc->SelectObject(jieshu); dc.BitBlt(0,0,788,635,mdc,0,0,SRCCOPY); } }}// TODO: Add your message handler code here// Do not call CFrameWnd::OnPaint() for painting messagesvoid GameWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) {CPaintDC dc(this);if(a==1){switch (nChar){case VK_DOWN:dir=1;index++;if(index==5){index=1;}if(maze[m+1][n]==0){maze[m+1][n]=2;maze[m][n]=0;}if(maze[m+1][n]==4&&maze[m+2][n]==0){maze[m+1][n]=2;maze[m][n]=0;maze[m+2][n]=4;}if(maze[m+2][n]==5&&maze[m+1][n]==4){maze[m+1][n]=2;maze[m][n]=0;maze[m+2][n]=6;}Invalidate();break;case VK_LEFT:dir=2;index++;if(index==5){index=1;}if(maze[m][n-1]==0){maze[m][n-1]=2;maze[m][n]=0;}if(maze[m][n-1]==4&&maze[m][n-2]==0){maze[m][n-1]=2;maze[m][n]=0;maze[m][n-2]=4;}if(maze[m][n-2]==5&&maze[m][n-1]==4){maze[m][n-1]=2;maze[m][n]=0;maze[m][n-2]=6;}Invalidate();break;case VK_RIGHT:dir=3;index++;if(index==5){index=1;}if(maze[m][n+1]==5){maze[m][n+1]=2;maze[m][n]=0;}if(maze[m][n+1]==0){maze[m][n+1]=2;maze[m][n]=0;}if(maze[m][n+1]==4&&maze[m][n+2]==0){maze[m][n+1]=2;maze[m][n]=0;maze[m][n+2]=4;}if(maze[m][n+2]==5&&maze[m][n+1]==4){maze[m][n+1]=2;maze[m][n]=0;maze[m][n+2]=6;}Invalidate();break;case VK_UP:dir=4;index++;if(index==5){index=1;}if(maze[m-1][n]==0){maze[m-1][n]=2;maze[m][n]=0;}if(maze[m-1][n]==4&&maze[m-2][n]==0){maze[m-1][n]=2;maze[m][n]=0;maze[m-2][n]=4;}if(maze[m-2][n]==5&&maze[m-1][n]==4){maze[m-1][n]=2;maze[m][n]=0;maze[m-2][n]=6;}Invalidate();break;}// TODO: Add your message handler code here and/or call defaultif(maze[3][3]==6&&maze[3][5]==6&&maze[5][3]==6&&maze[5][5]==6){CPaintDC dc(this); // device context for painting mciSendString("stop 音乐1.mp3",0,0,0); mciSendString("play 音乐2.mp3",0,0,0);for(int i=0;i<7;i++){for(int j=0;j<7 j="" maze1="" i="" j="" temp1="" i="" j="" lufu-="">m_hObject=LoadImage(NULL,"lufu.bmp",IMAGE_BITMAP,500,500,LR_LOADFROMFILE);//装载图片 //mdc->SelectObject(lufu); //dc.BitBlt(0,0,500,500,mdc,0,0,SRCCOPY); //MessageBox("恭喜你过关!!!","3",count); a=2; Invalidate();}CFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags); }if(a==2){switch (nChar){case VK_DOWN:dir=1;index++;if(index==5){index=1;}if(maze1[m+1][n]==0||maze1[m+1][n]==5)//a[1][3]a[1][8]maze[8][1]maze[8][8]{maze1[m+1][n]=2;maze1[m][n]=0;}if(maze1[m+1][n]==4&&maze1[m+2][n]==0){maze1[m+1][n]=2;maze1[m][n]=0;maze1[m+2][n]=4;}if(maze1[m+2][n]==5&&maze1[m+1][n]==4){maze1[m+1][n]=2;maze1[m][n]=0;maze1[m+2][n]=6;} if(maze1[m+1][n]==6&&maze1[m+2][n]!=1)//maze[1][1]maze[1][3]maze[1][5]maze[3][1]maze[3][5]maze[5][1]maze[5][3]maze[5][5]{maze1[m][n]=0;maze1[m+1][n]=2;maze1[m+2][n]=4;}if(maze1[1][1]==0)maze1[1][1]=5;if(maze1[1][3]==0)maze1[1][3]=5;if(maze1[1][5]==0)maze1[1][5]=5;if(maze1[3][1]==0)maze1[3][1]=5;if(maze1[3][5]==0)maze1[3][5]=5; if(maze1[5][1]==0)maze1[5][1]=5;if(maze1[5][3]==0)maze1[5][3]=5;if(maze1[5][5]==0)maze1[5][5]=5;Invalidate();break;case VK_LEFT:dir=2;index++;if(index==5){index=1;}if(maze1[m][n-1]==0||maze1[m][n-1]==5){maze1[m][n-1]=2;maze1[m][n]=0;}if(maze1[m][n-1]==4&&maze1[m][n-2]==0){maze1[m][n-1]=2;maze1[m][n]=0;maze1[m][n-2]=4;}if(maze1[m][n-2]==5&&maze1[m][n-1]==4){maze1[m][n-1]=2;maze1[m][n]=0;maze1[m][n-2]=6;}if(maze1[m][n-1]==6&&maze1[m][n-2]!=1){maze1[m][n]=0;maze1[m][n-1]=2;maze1[m][n-2]=4;}if(maze1[1][1]==0)maze1[1][1]=5;if(maze1[1][3]==0)maze1[1][3]=5;if(maze1[1][5]==0)maze1[1][5]=5;if(maze1[3][1]==0)maze1[3][1]=5;if(maze1[3][5]==0)maze1[3][5]=5; if(maze1[5][1]==0)maze1[5][1]=5;if(maze1[5][3]==0)maze1[5][3]=5;if(maze1[5][5]==0)maze1[5][5]=5;Invalidate();break;case VK_RIGHT:dir=3;index++;if(index==5){index=1;}if(maze1[m][n+1]==0||maze1[m][n+1]==5){maze1[m][n+1]=2;maze1[m][n]=0;}if(maze1[m][n+1]==4&&maze1[m][n+2]==0){maze1[m][n+1]=2;maze1[m][n]=0;maze1[m][n+2]=4;}if(maze1[m][n+2]==5&&maze1[m][n+1]==4){maze1[m][n+1]=2;maze1[m][n]=0;maze1[m][n+2]=6;}if(maze1[m][n+1]==6&&maze1[m][n+2]!=1){maze1[m][n]=0;maze1[m][n+1]=2;maze1[m][n+2]=4;}if(maze1[1][1]==0)maze1[1][1]=5;if(maze1[1][3]==0)maze1[1][3]=5;if(maze1[1][5]==0)maze1[1][5]=5;if(maze1[3][1]==0)maze1[3][1]=5;if(maze1[3][5]==0)maze1[3][5]=5; if(maze1[5][1]==0)maze1[5][1]=5;if(maze1[5][3]==0)maze1[5][3]=5;if(maze1[5][5]==0)maze1[5][5]=5;Invalidate();break;case VK_UP:dir=4;index++;if(index==5){index=1;}if(maze1[m-1][n]==0||maze1[m-1][n]==5){maze1[m-1][n]=2;maze1[m][n]=0;}if(maze1[m-1][n]==4&&maze1[m-2][n]==0){maze1[m-1][n]=2;maze1[m][n]=0;maze1[m-2][n]=4;}if(maze1[m-2][n]==5&&maze1[m-1][n]==4){maze1[m-1][n]=2;maze1[m][n]=0;maze1[m-2][n]=6;}if(maze1[m-1][n]==6&&maze1[m-2][n]!=1){ maze1[m][n]=0;maze1[m-1][n]=2;maze1[m-2][n]=4;}if(maze1[1][1]==0)maze1[1][1]=5;if(maze1[1][3]==0)maze1[1][3]=5;if(maze1[1][5]==0)maze1[1][5]=5;if(maze1[3][1]==0)maze1[3][1]=5;if(maze1[3][5]==0)maze1[3][5]=5; if(maze1[5][1]==0)maze1[5][1]=5;if(maze1[5][3]==0)maze1[5][3]=5;if(maze1[5][5]==0)maze1[5][5]=5;Invalidate();break;}// TODO: Add your message handler code here and/or call defaultCFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags);if(maze1[1][1]==6&&maze1[1][3]==6&&maze1[1][5]==6&&maze1[3][1]==6&&maze1[3][5]==6&&maze1[5][1]==6&&maze1[5][3]==6&&maze1[5][5]==6){//for(int i=0;i<10;i++)//{// for(int j=0;j<10 j="" maze2="" i="" j="" temp2="" i="" j="" mcisendstring="" stop="" mp3="" 0="" 0="" 0="" mcisendstring="" stop="" mp3="" 0="" 0="" 0="" mcisendstring="" stop="" 2="" mp3="" 0="" 0="" 0="" mcisendstring="" play="" 4="" mp3="" 0="" 0="" 0="" cpaintdc="" dc="" this="" device="" context="" for="" painting="" mcisendstring="" play="" mp3="" 0="" 0="" 0="" lufu-="">m_hObject=LoadImage(NULL,"lufu.bmp",IMAGE_BITMAP,500,500,LR_LOADFROMFILE);//装载图片//mdc->SelectObject(lufu);//dc.BitBlt(0,0,500,500,mdc,0,0,SRCCOPY);a=3;Invalidate(); } }if(a==3){switch (nChar){case VK_DOWN:dir=1;index++;if(index==5){index=1;}if((maze2[m+1][n]==0&&maze2[m+1][n]!=4)||maze2[m+1][n]==5)//a[1][3]a[1][8]maze[8][1]maze[8][8]{maze2[m+1][n]=2;maze2[m][n]=0;}if(maze2[m+1][n]==4&&maze2[m+2][n]==0){maze2[m+1][n]=2;maze2[m][n]=0;maze2[m+2][n]=4;}if(maze2[m+2][n]==5&&maze2[m+1][n]==4){maze2[m+1][n]=2;maze2[m][n]=0;maze2[m+2][n]=6;} if(maze2[m+1][n]==6&&maze2[m+2][n]!=1)//maze[1][1]maze[1][3]maze[1][5]maze[3][1]maze[3][5]maze[5][1]maze[5][3]maze[5][5]{maze2[m][n]=0;maze2[m+1][n]=2;maze2[m+2][n]=4;}if(maze2[1][4]==0)maze2[1][4]=5;if(maze2[3][1]==0)maze2[3][1]=5;if(maze2[3][4]==0)maze2[3][4]=5;if(maze2[5][4]==0)maze2[5][4]=5;if(maze2[3][7]==0)maze2[3][7]=5;Invalidate();break;case VK_LEFT:dir=2;index++;if(index==5){index=1;}if((maze2[m][n-1]==0&&maze2[m][n-1]!=4)||maze2[m][n-1]==5){maze2[m][n-1]=2;maze2[m][n]=0;}if(maze2[m][n-1]==4&&maze2[m][n-2]==0){maze2[m][n-1]=2;maze2[m][n]=0;maze2[m][n-2]=4;}if(maze2[m][n-2]==5&&maze2[m][n-1]==4){maze2[m][n-1]=2;maze2[m][n]=0;maze2[m][n-2]=6;}if(maze2[m][n-1]==6&&maze2[m][n-2]!=1){maze2[m][n]=0;maze2[m][n-1]=2;maze2[m][n-2]=4;}if(maze2[1][4]==0)maze2[1][4]=5;if(maze2[3][1]==0)maze2[3][1]=5;if(maze2[3][4]==0)maze2[3][4]=5;if(maze2[5][4]==0)maze2[5][4]=5;if(maze2[3][7]==0)maze2[3][7]=5;Invalidate();break;case VK_RIGHT:dir=3;index++;if(index==5){index=1;}if((maze2[m][n+1]==0&&maze2[m][n+1]!=4)||maze2[m][n+1]==5){maze2[m][n+1]=2;maze2[m][n]=0;}if(maze2[m][n+1]==4&&maze2[m][n+2]==0){maze2[m][n+1]=2;maze2[m][n]=0;maze2[m][n+2]=4;}if(maze2[m][n+2]==5&&maze2[m][n+1]==4){maze2[m][n+1]=2;maze2[m][n]=0;maze2[m][n+2]=6;}if(maze2[m][n+1]==6&&maze2[m][n+2]!=1){maze2[m][n]=0;maze2[m][n+1]=2;maze2[m][n+2]=4;}if(maze2[1][4]==0)maze2[1][4]=5;if(maze2[3][1]==0)maze2[3][1]=5;if(maze2[3][4]==0)maze2[3][4]=5;if(maze2[5][4]==0)maze2[5][4]=5;if(maze2[3][7]==0)maze2[3][7]=5;Invalidate();break;case VK_UP:dir=4;index++;if(index==5){index=1;}if((maze2[m-1][n]==0&&maze2[m-1][n]!=4)||maze2[m-1][n]==5){maze2[m-1][n]=2;maze2[m][n]=0;}if(maze2[m-1][n]==4&&maze2[m-2][n]==0){maze2[m-1][n]=2;maze2[m][n]=0;maze2[m-2][n]=4;}if(maze2[m-2][n]==5&&maze2[m-1][n]==4){maze2[m-1][n]=2;maze2[m][n]=0;maze2[m-2][n]=6;}if(maze2[m-1][n]==6&&maze2[m-2][n]!=1){ maze2[m][n]=0;maze2[m-1][n]=2;maze2[m-2][n]=4;}if(maze2[1][4]==0)maze2[1][4]=5;if(maze2[3][1]==0)maze2[3][1]=5;if(maze2[3][4]==0)maze2[3][4]=5;if(maze2[5][4]==0)maze2[5][4]=5;if(maze2[3][7]==0)maze2[3][7]=5;Invalidate();break;}// TODO: Add your message handler code here and/or call defaultCFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags);if(maze2[1][4]==6&&maze2[3][1]==6&&maze2[3][4]==6&&maze2[3][7]==6&&maze2[5][4]==6){//CPaintDC dc(this); // device context for painting//mciSendString("play 即刻出发.mp3",0,0,0);//lufu->m_hObject=LoadImage(NULL,"lufu.bmp",IMAGE_BITMAP,500,500,LR_LOADFROMFILE);//装载图片//mdc->SelectObject(lufu);//dc.BitBlt(0,0,500,500,mdc,0,0,SRCCOPY);//Invalidate();a=4; } }}int GameWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;CMenu menu;menu.LoadMenu(IDR_MENU1);SetMenu(&menu);menu.Detach();// TODO: Add your specialized creation code herereturn 0;}void GameWnd::OnHelp() {MessageBox("按上下左右箭头操纵人物推动水晶到指定位置即可过关");// TODO: Add your command handler code here}void GameWnd::OnOne() {MessageBox("第一关");Invalidate();for(int i=0;i<9;i++){for(int j=0;j<9 j="" maze="" i="" j="" temp="" i="" j="" leave="0;" leap="0;" flag="0;" a="1;" todo:="" add="" your="" command="" handler="" code="" here="" void="" gamewnd::onlbuttondown="" uint="" nflags="" cpoint="" point="" if="" point="" x="">310&&(point.x)<490 point="" y="">475&&(point.y)<530){leap++; //左键按下开始游戏// TODO: Add your message handler code here and/or call defaultflag++;turn++;leave++;}Invalidate();CFrameWnd::OnLButtonDown(nFlags, point);}void GameWnd::Ony1() {mciSendString("stop 音乐1.mp3",0,0,0);mciSendString("stop 音乐2.mp3",0,0,0); mciSendString("stop 音乐3.mp3",0,0,0); mciSendString("stop 音乐4.mp3",0,0,0); mciSendString("stop 苦咖啡.mp3",0,0,0); //mciSendString("stop 即刻出发.mp3",0,0,0); mciSendString("play 即刻出发.mp3",0,0,0);Invalidate(); // TODO: Add your command handler code here}void GameWnd::Ony2() {mciSendString("stop 音乐1.mp3",0,0,0);mciSendString("stop 音乐2.mp3",0,0,0); mciSendString("stop 音乐3.mp3",0,0,0); mciSendString("stop 音乐4.mp3",0,0,0); mciSendString("stop 即刻出发.mp3",0,0,0);//mciSendString("stop 进入音乐.mp3",0,0,0);mciSendString("play 苦咖啡.mp3",0,0,0);Invalidate();// TODO: Add your command handler code here}void GameWnd::OnTwo() {MessageBox("第二关");Invalidate();for(int i=0;i<7;i++){for(int j=0;j<7;j++){maze1[i][j]=temp1[i][j];}} leave=1; leap=1; flag=1;a=2;// TODO: Add your command handler code here}void GameWnd::OnThree() {MessageBox("第三关");Invalidate();for(int i=0;i<9;i++){for(int j=0;j<9 j="" maze2="" i="" j="" temp2="" i="" j="" leave="2;" leap="2;" flag="2;" a="3;" todo:="" add="" your="" command="" handler="" code="" here="" void="" gamewnd::onmousemove="" uint="" nflags="" cpoint="" point="" if="" point="" x="">310&&(point.x)<490 point="" y="">475&&(point.y)<530){}// TODO: Add your message handler code here and/or call defaultCFrameWnd::OnMouseMove(nFlags, point);}//DEL void GameWnd::Oncount() //DEL {//DEL cout<<count<<endl;// TODO: Add your command handler code here//DEL //DEL }//DEL void GameWnd::Onm3() //DEL {//DEL // TODO: Add your command handler code here//DEL //DEL }//DEL void GameWnd::Onb1() //DEL {//DEL // TODO: Add your command handler code here//DEL //DEL }void GameWnd::Ony3() { mciSendString("stop 音乐1.mp3",0,0,0);mciSendString("stop 音乐2.mp3",0,0,0); mciSendString("stop 音乐3.mp3",0,0,0);mciSendString("stop 音乐4.mp3",0,0,0); mciSendString("stop 苦咖啡.mp3",0,0,0); mciSendString("stop 即刻出发.mp3",0,0,0);mciSendString("play NULL.mp3",0,0,0); // TODO: Add your command handler code here}//DEL void GameWnd::Onexit() //DEL {//DEL exit(1); // TODO: Add your command handler code here//DEL //DEL }void GameWnd::Ondd() {exit(1);// TODO: Add your command handler code here}
原创粉丝点击