📄 wmazeview.cpp
字号:
// WMazeView.cpp : implementation of the CWMazeView class
//
#include "stdafx.h"
#include "WMaze.h"
#include"headfile.h"
#include "WMazeDoc.h"
#include "WMazeView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWMazeView
IMPLEMENT_DYNCREATE(CWMazeView, CView)
BEGIN_MESSAGE_MAP(CWMazeView, CView)
//{{AFX_MSG_MAP(CWMazeView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWMazeView construction/destruction
CWMazeView::CWMazeView()
{
// TODO: add construction code here
srand((unsigned)time(NULL));
int random=0;
for(int i=0;i<42;i++){
for(int j=0;j<42;j++){
random=(int)(((float)rand() / (float)RAND_MAX) * 16) ;
Creat_Maze[i][j]=random;
}
}
}
CWMazeView::~CWMazeView()
{
}
BOOL CWMazeView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CWMazeView drawing
void CWMazeView::Creat_Maze1(CClientDC &dc){
CPen pen(PS_SOLID,1,RGB(255,0,255));
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
int LINEX=0;
int LINEY=0;
for(int i=0;i<40;i++){
for(int j=0;j<40;j++){
LINEX=(int)(((float)rand() / (float)RAND_MAX) * 7 );
LINEY=(int)(((float)rand() / (float)RAND_MAX) * 7 );
if(LINEX<4){
dc.MoveTo(HEAD+LSIZE*i,HEAD+LSIZE*j);
dc.LineTo(HEAD+LSIZE+LSIZE*i,HEAD+LSIZE*j);
}
else{
dc.MoveTo(HEAD+LSIZE*i,HEAD+LSIZE*j);
dc.LineTo(HEAD+LSIZE+LSIZE*i,HEAD+LSIZE*j);
}
if(LINEY<3){
dc.MoveTo(HEAD+LSIZE*i,HEAD+LSIZE*j);
dc.LineTo(HEAD+LSIZE*i,HEAD+LSIZE*j+LSIZE);
}
else{
dc.MoveTo(HEAD+LSIZE*i,HEAD+LSIZE*j);
dc.LineTo(HEAD+LSIZE*i,HEAD+LSIZE*j+LSIZE);
}
}
}
dc.Rectangle(HEAD,HEAD,HEAD+LSIZE+LSIZE*39,HEAD+LSIZE+LSIZE*39);
}
void CWMazeView::Creat_Maze2(CClientDC &dc){
CPen pen(PS_SOLID,1,RGB(128,0,128));
CPen pen2(PS_SOLID,1,RGB(0,0,0));
// dc.SelectObject(&pen);
// dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
int a,b,c,d;
int random=0;
for(int i=0;i<40;i++){
for(int j=0;j<40;j++){
random=(int)(((float)rand() / (float)RAND_MAX) * 5 );
switch (random){
case 0:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*LSIZE,HEAD+j*LSIZE,HEAD+LSIZE+LSIZE*i,
HEAD+LSIZE+LSIZE*j);
break;
case 1:
for(a=0,b=0,c=0,d=0;a+b+d+c!=1;){
a=(int)(((float)rand() / (float)RAND_MAX) * 2 );
b=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
c=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
d=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
}
// setcolor(a*5);
a==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE);
// setcolor(b*5);
b==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE,HEAD+j*LSIZE+LSIZE);
// setcolor(c*5);
c==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE+LSIZE);
// setcolor(d*5);
d==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE+LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE+LSIZE);
break;
case 2:
for(a=0,b=0,c=0,d=0;a+b+d+c!=2;){
a=(int)(((float)rand() / (float)RAND_MAX) * 2 );
b=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
c=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
d=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
}
// setcolor(a*5);
a==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE);
// setcolor(b*5);
b==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE,HEAD+j*LSIZE+LSIZE);
// setcolor(c*5);
c==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE+LSIZE);
// setcolor(d*5);
d==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE+LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE+LSIZE);
break;
case 3:
for(a=0,b=0,c=0,d=0;a+b+d+c!=2;){
a=(int)(((float)rand() / (float)RAND_MAX) * 2 );
b=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
c=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
d=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
}
// setcolor(a*5);
a==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE);
// setcolor(b*5);
b==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE,HEAD+j*LSIZE+LSIZE);
// setcolor(c*5);
c==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE+LSIZE);
// setcolor(d*5);
d==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*LSIZE,HEAD+j*LSIZE+LSIZE);
dc.LineTo(HEAD+i*LSIZE+LSIZE,HEAD+j*LSIZE+LSIZE);
break;
default:
// setcolor(5);
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*LSIZE,HEAD+j*LSIZE,HEAD+LSIZE+LSIZE*i,
HEAD+LSIZE+LSIZE*j);
break;
}
}
}
// setcolor(5);
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD,HEAD,HEAD+LSIZE+LSIZE*39,HEAD+LSIZE+LSIZE*39);
}
void CWMazeView::Creat_Maze3(CClientDC &dc){
CPen pen(PS_SOLID,1,RGB(128,0,128));
CPen pen2(PS_SOLID,1,RGB(0,0,0));
int a,b,c,d;
int random=0;
for(int i=0;i<42;i++){
for(int j=0;j<42;j++){
random=(int)(((float)rand() / (float)RAND_MAX) * 5 );
switch (random){
case 0:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
break;
case 1:
for(a=0,b=0,c=0,d=0;a+b+d+c!=1;){
a=(int)(((float)rand() / (float)RAND_MAX) * 2 );
b=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
c=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
d=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
}
a==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
b==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
c==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
d==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
break;
case 2:
for(a=0,b=0,c=0,d=0;a+b+d+c!=2;){
a=(int)(((float)rand() / (float)RAND_MAX) * 2 );
b=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
c=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
d=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
}
a==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
b==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
c==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
d==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
break;
case 3:
for(a=0,b=0,c=0,d=0;a+b+d+c!=3;){
a=(int)(((float)rand() / (float)RAND_MAX) * 2 );
b=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
c=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
d=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
}
a==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
b==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
c==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
d==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
break;
case 4:
for(a=0,b=0,c=0,d=0;a+b+d+c!=4;){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -