⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 吸尘机器人全覆盖算法仿真源码,希望对大家有用
💻 CPP
字号:

/*presented by cb*/
#include<iostream>
#include<fstream>
using namespace std;

#ifndef CONSOLE
#include"GraphicEngine.h"
#include"ABCSimulation.h"
#define WIN32_LEAN_AND_MEAN

BOOL ActiveApp;
ABCGraphic ag;
cBaseSprite bk1(1,424,424);
cBmpFileReader frame;
cBmpFileReader gray;


long CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstace,LPSTR lpCmdLine,int nShowCmd){
	MSG msg;HWND hwnd;WNDCLASS wc;
	static TCHAR name[]=TEXT("ABC Simulation");
	
	wc.style=CS_HREDRAW|CS_VREDRAW;
	wc.lpfnWndProc=WinProc;
	wc.cbClsExtra=wc.cbWndExtra=0;
	wc.hInstance=hInstance;
	wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
	wc.hCursor=LoadCursor(NULL,IDC_ARROW);
	wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
	wc.lpszMenuName=NULL;
	wc.lpszClassName=name;

	if(!RegisterClass(&wc)){
		MessageBox(NULL,TEXT("This program requires Windows NT."),name,MB_ICONERROR);
		return 0;
	}
	hwnd=CreateWindowEx(WS_EX_TOPMOST,name,name,
		WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MINIMIZE|WS_MAXIMIZEBOX,
		0/*CW_USEDEFAULT*/,0/*CW_USEDEFAULT*/,WINDOW_WIDTH2,
		                WINDOW_HEIGHT2,NULL,NULL,hInstance,NULL);
	ShowWindow(hwnd,nShowCmd);
	UpdateWindow(hwnd);
	SetFocus(hwnd);
	//ShowCursor(FALSE);
	

	ag.BeWindowed(hwnd);
	ag.CreateSurfaces();
	ag.ButtonsLoad("picture\\tile.bmp",0,4);
	cBmpFileReader gray2;
	gray2.load("picture\\gray.bmp");

    try{
		frame.load("picture\\BK2.bmp");
		gray.load("picture\\background2.bmp");
		gray.draw(ag.m_lpSecondarySurface,138,138,0,0);
		bk1.CreateSurface(ag);
		bk1.SetColorkey(RGB(255,255,255));
		bk1.load(frame,0,0,0);
		bk1.draw(ag.m_lpSecondarySurface,0,0,0);
	}catch(cgError e){
		MessageBox(GetActiveWindow(),e.errmessage.c_str(),e.errmessage2.c_str(),MB_ICONERROR);
		}
        ag.VP1Load("picture\\tile.bmp","map\\testmap.map");
		ag.VP2Load();
		ag.VP3Load();
        ag.DrawToBackSurface(ag.lpVideoport1,12,8);
        ag.DisplayButtons();
	while(TRUE)
		if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)){
			if(!GetMessage(&msg,NULL,0,0))return msg.wParam;
			TranslateMessage(&msg);DispatchMessage(&msg);
		}else {
			if(!ActiveApp) WaitMessage();
			else{
				ag.PageFlip(hwnd);
				ag.RobotMove();
				ag.VP2Load();
				try{
				gray2.draw(ag.lpVideoport3,235,313,0,0);
				ag.DrawToBackSurface(ag.lpVideoport3,433,220);
				}catch(cgError e){
					MessageBox(GetActiveWindow(),e.errmessage.c_str(),e.errmessage2.c_str(),MB_ICONERROR);
					PostQuitMessage(0);
				}
				ag.VP3Load();
				ag.DrawToBackSurface(ag.lpVideoport2,433,9);
				ag.DrawToBackSurface(ag.lpVideoport1,12,8);
                
				
				}
		}
}

long CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
		ofstream out("map\\error.txt");
//		static cGraphicEngine cg;
		POINT pttemp;
	
	switch(message){
    case WM_ACTIVATEAPP:
		ActiveApp=wParam;
		return 0;
	case WM_CREATE:
		
		return 0;
	case WM_KEYDOWN:
		switch(wParam){
		case VK_ESCAPE:
			PostQuitMessage(0);
			break;
		}
		return 0;
	case WM_CHAR:
		switch(wParam){
		case 'a':
			break;
		case 'b':
		  break;
		case 'c':			
			break;
		}
        return 0;
	case WM_LBUTTONDOWN:
		pttemp.x=LOWORD(lParam);
		pttemp.y=HIWORD(lParam);
		ag.MenuLButtonDown(hwnd,pttemp);
        return 0;
	case WM_LBUTTONUP:
		pttemp.x=LOWORD(lParam);
		pttemp.y=HIWORD(lParam);
		ag.MenuLButtonUp(hwnd,pttemp);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return DefWindowProc(hwnd,message,wParam,lParam);
}
#endif
#ifdef CONSOLE
#include"GraphicEngine.h"


int main(){
	MAP map;
	int **ppt;
	map.map_read("map\\testmap.map");
	ofstream out("map\\result.txt");
	cout<<map.width()<<endl;
	cout<<map.height()<<endl;
	ppt=map.getMapPt();
	for(int i=0;i<map.height();i++){
		for(int j=0;j<map.width();j++)
			out<<ppt[i][j];
		out<<endl;
	}
	cout<<ppt[101][0]<<endl;
	cout<<ppt[101][101]<<endl;
    cout<<1/4<<":"<<5%4<<endl;	
	return 0;
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -