📄 qiyuanview.cpp
字号:
// qiyuanView.cpp : implementation of the CQiyuanView class
//
#include "stdafx.h"
#include "qiyuan.h"
#include "qiyuanDoc.h"
#include "qiyuanView.h"
#include "UserSet.h"
#include "MapSet.h"
#include "WalkSet.h"
#include "m_Walk.h"
#include "RobotChoose.h"
#include "maze.h"
#include <stdio.h>
#include <stdlib.h>
#include "list_node1.h"
#include "m_list.h"
#include "MyCounter.h"
#include "UserSet.h"
#include "m_ArtificialMapChoose.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//extern void maze::Asearch(int a[][101],CPoint s_n,CPoint s_g)
/////////////////////////////////////////////////////////////////////////////
// CQiyuanView
IMPLEMENT_DYNCREATE(CQiyuanView, CView)
BEGIN_MESSAGE_MAP(CQiyuanView, CView)
//{{AFX_MSG_MAP(CQiyuanView)
ON_COMMAND(IDM_GameSet, OnNewGameSet)
ON_WM_ERASEBKGND()
ON_WM_KEYDOWN()
ON_WM_SIZE()
ON_COMMAND(ID_MENUITEM32773, OnAboutDialog)
ON_UPDATE_COMMAND_UI(ID_MENUITEM32773, OnUpdateAbout)
ON_WM_TIMER()
ON_COMMAND(ID_GameStart, OnGameStart)
ON_COMMAND(ID_GamePause, OnGamePause)
ON_COMMAND(ID_GameResume, OnGameResume)
ON_COMMAND(IDM_TEST, OnTest)
ON_COMMAND(ID_ChooseRobot, OnChooseRobot)
ON_WM_LBUTTONDBLCLK()
ON_WM_RBUTTONDBLCLK()
ON_WM_LBUTTONUP()
ON_COMMAND(IDM_GameSet, OnNewGameSet)
ON_WM_RBUTTONUP()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CQiyuanView construction/destruction
CQiyuanView::CQiyuanView()
{
// TODO: add construction code here
FirstGame=1;
FoundWayFlag=0;
GameEndFlag=0;
GameStartFlag=0;
GameEndFlag=0; //是否结束
GamePauseFlag=0;//是否暂停
GameResumeFlag=1;//是否继续
UserSpeed=5;
ArtificialMapFlag=0;//人工地图标记
ArtificialWalkFlag=0;//人工行走标记
m_Game=0;
OnTheEndFlag=0;
RobotNum=0;
int i,j;
ArtificialMaze[0].row=16;
ArtificialMaze[0].col=16;
ArtificialMaze[0].CarPos.x=ArtificialMaze[0].StartPos.x=1;
ArtificialMaze[0].CarPos.y=ArtificialMaze[0].StartPos.y=0;
ArtificialMaze[0].GoalPos.x=14;
ArtificialMaze[0].GoalPos.y=15;
ArtificialMaze[0].Road[0]=ArtificialMaze[0].StartPos;
ArtificialMaze[0].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a0[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//1
{1,0,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1},//2
{1,0,1,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1},//3
{1,0,1,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1},//4
{1,0,1,0,1,0,0,0,0,1,0,1,1,1,0,1,1,1},//5
{1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1},//6
{1,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1},//7
{1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1},//8
{1,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1},//9
{1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,1},//10
{1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1},//11
{1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,1,1,1},//12
{1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1},//13
{1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[0].MazeMap[i][j]=a0[i][j];
}
}
ArtificialMaze[1].row=16;
ArtificialMaze[1].col=16;
ArtificialMaze[1].CarPos.x=ArtificialMaze[1].StartPos.x=1;
ArtificialMaze[1].CarPos.y=ArtificialMaze[1].StartPos.y=0;
ArtificialMaze[1].GoalPos.x=14;
ArtificialMaze[1].GoalPos.y=15;
ArtificialMaze[1].Road[0]=ArtificialMaze[1].StartPos;
ArtificialMaze[1].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a1[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//1
{1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//2
{1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//3
{1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1},//4
{1,1,1,1,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//5
{1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//6
{1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//7
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//8
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//9
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//10
{1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//11
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//12
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//13
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[1].MazeMap[i][j]=a1[i][j];
}
}
ArtificialMaze[2].row=16;
ArtificialMaze[2].col=16;
ArtificialMaze[2].CarPos.x=ArtificialMaze[2].StartPos.x=1;
ArtificialMaze[2].CarPos.y=ArtificialMaze[2].StartPos.y=0;
ArtificialMaze[2].GoalPos.x=14;
ArtificialMaze[2].GoalPos.y=15;
ArtificialMaze[2].Road[0]=ArtificialMaze[2].StartPos;
ArtificialMaze[2].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a2[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,1},//1
{1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//2
{1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,1,1,1},//3
{1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1},//4
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,0,1,1,1},//5
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,0,1,1,1},//6
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,0,1,1,1},//7
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//8
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//9
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//10
{1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//11
{1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1},//12
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//13
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[2].MazeMap[i][j]=a2[i][j];
}
}
ArtificialMaze[3].row=16;
ArtificialMaze[3].col=16;
ArtificialMaze[3].CarPos.x=ArtificialMaze[3].StartPos.x=1;
ArtificialMaze[3].CarPos.y=ArtificialMaze[3].StartPos.y=0;
ArtificialMaze[3].GoalPos.x=14;
ArtificialMaze[3].GoalPos.y=15;
ArtificialMaze[3].Road[0]=ArtificialMaze[3].StartPos;
ArtificialMaze[3].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a3[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,1,0,0,1,1,0,1,1,0,0,0,0,1,1,1},//1
{1,0,0,1,0,0,1,1,0,1,1,0,1,1,0,1,1,1},//2
{1,0,0,1,0,0,1,1,0,1,1,0,1,1,0,1,1,1},//3
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//4
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//5
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//6
{1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1},//7
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1},//8
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//9
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//10
{1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//11
{1,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1},//12
{1,0,1,1,0,0,0,1,0,1,0,0,0,0,0,1,1,1},//13
{1,0,0,0,0,1,1,1,0,1,1,1,1,1,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[3].MazeMap[i][j]=a3[i][j];
}
}
ArtificialMaze[4].row=16;
ArtificialMaze[4].col=16;
ArtificialMaze[4].CarPos.x=ArtificialMaze[4].StartPos.x=1;
ArtificialMaze[4].CarPos.y=ArtificialMaze[4].StartPos.y=0;
ArtificialMaze[4].GoalPos.x=14;
ArtificialMaze[4].GoalPos.y=15;
ArtificialMaze[4].Road[0]=ArtificialMaze[4].StartPos;
ArtificialMaze[4].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a4[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//1
{1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//2
{1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//3
{1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1},//4
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//5
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//6
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//7
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//8
{1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1},//9
{1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1},//10
{1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//11
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//12
{1,1,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//13
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[4].MazeMap[i][j]=a4[i][j];
}
}
ArtificialMaze[5].row=16;
ArtificialMaze[5].col=16;
ArtificialMaze[5].CarPos.x=ArtificialMaze[5].StartPos.x=1;
ArtificialMaze[5].CarPos.y=ArtificialMaze[5].StartPos.y=0;
ArtificialMaze[5].GoalPos.x=14;
ArtificialMaze[5].GoalPos.y=15;
ArtificialMaze[5].Road[0]=ArtificialMaze[5].StartPos;
ArtificialMaze[5].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a5[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1},//1
{1,1,0,0,1,0,1,0,0,1,0,0,1,1,0,1,1,1},//2
{1,1,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,1},//3
{1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1},//4
{1,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,1,1},//5
{1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1},//6
{1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//7
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//8
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//9
{1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1},//10
{1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//11
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//12
{1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//13
{1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[5].MazeMap[i][j]=a5[i][j];
}
}
ArtificialMaze[6].row=16;
ArtificialMaze[6].col=16;
ArtificialMaze[6].CarPos.x=ArtificialMaze[6].StartPos.x=1;
ArtificialMaze[6].CarPos.y=ArtificialMaze[6].StartPos.y=0;
ArtificialMaze[6].GoalPos.x=14;
ArtificialMaze[6].GoalPos.y=15;
ArtificialMaze[6].Road[0]=ArtificialMaze[6].StartPos;
ArtificialMaze[6].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a6[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,1},//1
{1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,1,1,1},//2
{1,0,0,1,1,0,1,1,0,0,1,0,1,1,0,1,1,1},//3
{1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1},//4
{1,1,1,0,1,1,0,1,0,1,0,1,1,0,0,1,1,1},//5
{1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,1,1},//6
{1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//7
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//8
{1,0,1,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1},//9
{1,0,1,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1},//10
{1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//11
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//12
{1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//13
{1,0,1,0,0,0,1,1,0,1,1,0,0,1,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[6].MazeMap[i][j]=a6[i][j];
}
}
ArtificialMaze[7].row=16;
ArtificialMaze[7].col=16;
ArtificialMaze[7].CarPos.x=ArtificialMaze[7].StartPos.x=1;
ArtificialMaze[7].CarPos.y=ArtificialMaze[7].StartPos.y=0;
ArtificialMaze[7].GoalPos.x=14;
ArtificialMaze[7].GoalPos.y=15;
ArtificialMaze[7].Road[0]=ArtificialMaze[7].StartPos;
ArtificialMaze[7].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a7[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1},//1
{1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//2
{1,0,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,1},//3
{1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1},//4
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//5
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//6
{1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//7
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//8
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//9
{1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1},//10
{1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//11
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//12
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//13
{1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[7].MazeMap[i][j]=a7[i][j];
}
}
ArtificialMaze[8].row=16;
ArtificialMaze[8].col=16;
ArtificialMaze[8].CarPos.x=ArtificialMaze[8].StartPos.x=1;
ArtificialMaze[8].CarPos.y=ArtificialMaze[8].StartPos.y=0;
ArtificialMaze[8].GoalPos.x=14;
ArtificialMaze[8].GoalPos.y=15;
ArtificialMaze[8].Road[0]=ArtificialMaze[8].StartPos;
ArtificialMaze[8].name="人工迷宫";//{{1,2},{3,4},{5,6}};
int a8[MOSTNUM][MOSTNUM]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,1},//1
{1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//2
{1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//3
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//4
{1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//5
{1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//6
{1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1},//7
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},//8
{1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//9
{1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1},//10
{1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1},//11
{1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//12
{1,0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1},//13
{1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1},//14
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};//15
for(i=0;i<MOSTNUM;i++)
{ for(j=0;j<MOSTNUM;j++)
{
ArtificialMaze[8].MazeMap[i][j]=a8[i][j];
}
}
ArtificialMaze[9].row=16;
ArtificialMaze[9].col=16;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -