亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? winmain.cpp

?? 通過人工智能算法快速實現神經網絡識別
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//---------------------------------------------------------------------------
/*
Book:           AI for Game Developers
Authors:        David M. Bourg & Glenn Seemann
Example:        Pattern movement in continuous environments, Chapter 3
*/
//---------------------------------------------------------------------------
// Windows Header Files:
#include <windows.h>
#include <windef.h>
#include <commctrl.h>
#include <commdlg.h>
#include <wingdi.h> 

// C RunTime Header Files:
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <stdio.h>
#include <math.h>

// Local Header Files:
#include "resource.h"
#include "winmain.h"


// Defines:
#define	APPNAME	"AI Ch2 Demo"

// Forward declarations for non-window related functions
void	DrawLineToDC(HDC hdc, int h1, int v1, int h2, int v2, int thk, COLORREF clr);
void	DrawRectangleToDC(HDC hdc, RECT *r, int thk, COLORREF borderCLR, COLORREF fillCLR);
void	DrawEllipseToDC(HDC hdc, RECT *r, int thk, COLORREF clr);
void	DrawStringToDC(HDC hdc, int x, int y, LPCSTR lpszString, int size, int ptsz);
void	CreateBackBuffer(void);
void	DeleteBackBuffer(void);



// Forward declarations for window related functions
LRESULT CALLBACK DemoDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK DefaultWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);


BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);



// Window related global variables
HINSTANCE		hinst; 
HWND			hMainWindow;
RECT			MainWindowRect;
HDC				BackBufferDC;
HBITMAP			hBackBuffer;
LPBITMAPINFO	lpBackBufferBitmapInfo;
bool			Initialized = false;
int				nShowCmd;

/*HINSTANCE	hInst; // current instance
int			nShowCmd; // current show command	
char		szAppName[] = APPNAME; // The name of this application
char		szTitle[]   = APPNAME; // The title bar text
HWND		hTheMainWindow;
*/

// globals

bool	ShowTrails;
bool	ShowVectors;
bool	BasicChase;
bool	BasicEvade;
bool	InterceptChase;
bool	PotentialChase;
bool	Patrol;
bool	ZigZag;


// Forward declarations for non-window related functions
void	InitializeVariables(void);
void	DrawTopView(HDC hdc, RECT *r);
void	DrawLine(HDC hdc, int h1, int v1, int h2, int v2, int thk, COLORREF clr);
void	DrawRectangle(HDC hdc, RECT *r, int thk, COLORREF clr);
void	DrawString(HDC hdc, int x, int y, LPCSTR lpszString, int size, int ptsz);

extern	void UpdateSimulation(void);
extern	bool Initialize(void);

//----------------------------------------------------------------------------------------------------//
// This is the applications "main" function. Note that I'm not using a message loop here
// since there is no main window. All I do is display a dialog box immediately upon startup
// and let the dialog handler take care of the messages.
//----------------------------------------------------------------------------------------------------//
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
//----------------------------------------------------------------------------------------------------//
{	

	MSG msg;
	HANDLE hAccelTable;		

	if (!hPrevInstance) {
		// Perform instance initialization:
		if (!InitApplication(hInstance)) {
			return (FALSE);
		}
	}

	// Perform application initialization:	
	if (!InitInstance(hInstance, nCmdShow)) {
		return (FALSE);
	}

	hAccelTable = LoadAccelerators (hInstance, APPNAME);

	// Main message loop:
	while (1) {		

		while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
			if (msg.message == WM_QUIT) {
				return msg.wParam;
			}
			TranslateMessage(&msg);
			DispatchMessage(&msg);			
		}
		
		if(Initialized)
			UpdateSimulation();

	}

	return (msg.wParam);

	lpCmdLine; // This will prevent 'unused formal parameter' warnings



}


BOOL InitApplication(HINSTANCE hInstance)
{
    WNDCLASS  wc;
    HWND      hwnd;

    hwnd = FindWindow (APPNAME, NULL);
    if (hwnd) {
        if (IsIconic(hwnd)) {
            ShowWindow(hwnd, SW_RESTORE);
        }
        SetForegroundWindow (hwnd);

        return FALSE;
        }

        wc.style         = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
        wc.lpfnWndProc   = (WNDPROC)WndProc;
        wc.cbClsExtra    = 0;
        wc.cbWndExtra    = 0;
        wc.hInstance     = hInstance;
        wc.hIcon         = NULL;//LoadIcon (hInstance, MAKEINTRESOURCE(IDI_MAINICON));
        wc.hCursor       = LoadCursor(NULL, IDC_ARROW);//NULL
        wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);//(HBRUSH)(COLOR_WINDOW+1);

		wc.lpszMenuName = MAKEINTRESOURCE(IDR_MAINMENU);
		
		wc.lpszClassName = APPNAME;
        
		return RegisterClass(&wc);
}


BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{			
	hinst = hInstance;
	nShowCmd = nCmdShow;	

	MainWindowRect.left = 0;
	MainWindowRect.top = 0;
	MainWindowRect.right = _WINWIDTH;
	MainWindowRect.bottom = _WINHEIGHT;
 
	hMainWindow = CreateWindow(	APPNAME, 
								APPNAME,
								WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
								0, 0, _WINWIDTH, _WINHEIGHT,
								NULL, NULL, hinst, NULL);
			
	// create back buffer
	CreateBackBuffer();

	ShowWindow(hMainWindow, nCmdShow);
    UpdateWindow(hMainWindow);

	Initialized = Initialize();

	return (TRUE);
}


LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	
	int			wmId, wmEvent;   		
	BOOL		validmenu = FALSE;	
	int			selection =0;
	PAINTSTRUCT			ps;
	HDC			pDC;
	WPARAM		key;
	int			w, h;
	UINT		state;
	
	switch (message) {

		case WM_CREATE:
			ShowTrails = true;
			ShowVectors = false;
			BasicChase = false;
			BasicEvade = false;
			InterceptChase = false;
			PotentialChase = false;
			Patrol = false;
			ZigZag = true;
			break;

		case WM_ACTIVATE:
			state = ShowTrails ? MF_CHECKED:MF_UNCHECKED;
			CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_SHOWTRAILS, state);
			
			state = ShowVectors ? MF_CHECKED:MF_UNCHECKED;
			CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_SHOWVECTORS, state);
			
			state = BasicChase ? MF_CHECKED:MF_UNCHECKED;
			CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_BASICCHASE, state);

			state = BasicEvade ? MF_CHECKED:MF_UNCHECKED;
			CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_BASICEVADE, state);

			state = InterceptChase ? MF_CHECKED:MF_UNCHECKED;
			CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_INTERCEPT, state);

			state = PotentialChase ? MF_CHECKED:MF_UNCHECKED;
			CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_POTENTIALCHASE, state);

			state = Patrol ? MF_CHECKED:MF_UNCHECKED;
			CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_SQUAREPATROL, state);

			state = ZigZag ? MF_CHECKED:MF_UNCHECKED;
			CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_ZIGZAG, state);

			break;

		case WM_COMMAND:
			wmId    = LOWORD(wParam); 
			wmEvent = HIWORD(wParam); 
			
			switch(wmId) {

				case ID_CLOSEMENU:
					DeleteBackBuffer();
					PostQuitMessage(0);
					break;

				case ID_OPTIONS_SHOWTRAILS:
					ShowTrails = !ShowTrails;
					state = ShowTrails ? MF_CHECKED:MF_UNCHECKED;
					CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_SHOWTRAILS, state);
					break;

				case ID_OPTIONS_SHOWVECTORS:
					ShowVectors = !ShowVectors;
					state = ShowVectors ? MF_CHECKED:MF_UNCHECKED;
					CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_SHOWVECTORS, state);					
					break;

				case ID_OPTIONS_BASICCHASE:
					BasicChase = !BasicChase;
					state = BasicChase ? MF_CHECKED:MF_UNCHECKED;
					CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_BASICCHASE, state);

					if(BasicEvade)
					{
						BasicEvade = false;
						CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_BASICEVADE, MF_UNCHECKED);
					}

					if(InterceptChase)
					{
						InterceptChase = false;
						CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_INTERCEPT, MF_UNCHECKED);
					}

					break;

				case ID_OPTIONS_BASICEVADE:
					BasicEvade = !BasicEvade;
					state = BasicEvade ? MF_CHECKED:MF_UNCHECKED;
					CheckMenuItem(GetMenu(hMainWindow), ID_OPTIONS_BASICEVADE, state);
					
					if(BasicChase)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色菇凉天天综合网| 91精品欧美久久久久久动漫 | 欧美日韩中文字幕一区| 欧美一区二区观看视频| 国产精品高潮久久久久无| 天堂午夜影视日韩欧美一区二区| 狠狠色综合播放一区二区| 91老师片黄在线观看| 欧美美女一区二区| 中文文精品字幕一区二区| 秋霞午夜鲁丝一区二区老狼| 91小视频在线观看| 久久久国产午夜精品| 日韩不卡一区二区三区 | 国产成人鲁色资源国产91色综| 色综合中文综合网| 97精品国产露脸对白| 久久久久久久精| 日本91福利区| 在线观看一区日韩| 最新国产の精品合集bt伙计| 国产一区二区福利| 日韩一二三四区| 日韩精品福利网| 91福利在线免费观看| 亚洲精品乱码久久久久久久久| 美女高潮久久久| 欧美一级一级性生活免费录像| 一区二区三区免费| 色先锋久久av资源部| 欧美国产精品一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区| 91蝌蚪国产九色| 亚洲人成在线播放网站岛国| 成人性视频网站| 国产精品久久影院| 99久久精品一区| 中文字幕一区二区三区在线播放 | 亚洲乱码中文字幕| 91色乱码一区二区三区| 中文字幕综合网| 99视频精品在线| 亚洲人成精品久久久久久| 9i在线看片成人免费| 综合激情成人伊人| 色8久久精品久久久久久蜜| 亚洲九九爱视频| 欧美色综合影院| 亚洲成人激情社区| 欧美一区二区三区视频在线| 捆绑变态av一区二区三区| 日韩一区二区三区三四区视频在线观看 | 国产欧美精品一区二区三区四区| 激情都市一区二区| 国产欧美日韩激情| 色又黄又爽网站www久久| 亚洲影视资源网| 欧美一级片在线看| 国产东北露脸精品视频| 亚洲三级在线看| 欧美日韩精品一区二区三区| 免费观看成人av| 欧美国产综合一区二区| aaa亚洲精品| 日韩av不卡在线观看| 久久品道一品道久久精品| av在线播放成人| 偷拍自拍另类欧美| 久久久精品国产免费观看同学| 不卡的av在线| 日本在线不卡视频| 久久九九久久九九| 91久久精品国产91性色tv| 秋霞午夜av一区二区三区| 欧美韩日一区二区三区四区| 欧美在线观看视频一区二区三区| 日本91福利区| 亚洲乱码国产乱码精品精可以看 | 成人毛片视频在线观看| 亚洲成av人在线观看| 精品卡一卡二卡三卡四在线| 91视频观看免费| 看电影不卡的网站| 亚洲综合丝袜美腿| 久久久久国产精品厨房| 欧美三级电影在线看| 床上的激情91.| 日本欧美一区二区在线观看| 日韩毛片一二三区| 久久综合资源网| 欧美日韩国产影片| 91色九色蝌蚪| 成人免费看黄yyy456| 美女视频黄 久久| 一区二区三区不卡视频在线观看| 久久精品视频网| 日韩片之四级片| 欧美丝袜丝交足nylons图片| 成人av免费观看| 精品无人区卡一卡二卡三乱码免费卡| 一区二区三区免费在线观看| 国产精品久久久久影视| 久久久久国产精品麻豆| 欧美电影免费观看高清完整版在线观看| 91丨九色丨蝌蚪富婆spa| 国产成人精品影视| 精品无人码麻豆乱码1区2区 | 色婷婷综合视频在线观看| 国产99久久久精品| 国产乱子伦视频一区二区三区| 欧美aaaaaa午夜精品| 亚洲国产精品一区二区久久| 伊人夜夜躁av伊人久久| 中文字幕在线不卡国产视频| 国产喷白浆一区二区三区| 精品99999| 精品国产免费人成电影在线观看四季 | 精品国产电影一区二区| 日韩女优电影在线观看| 日韩一卡二卡三卡国产欧美| 7799精品视频| 日韩欧美中文字幕一区| 日韩一区二区三区电影| 91精品综合久久久久久| 日韩一区二区三区高清免费看看| 欧美一区二区久久| 亚洲精品在线三区| 国产视频不卡一区| 亚洲欧洲av色图| 一区二区日韩av| 日韩精品电影在线| 国产呦精品一区二区三区网站| 国产资源精品在线观看| 国产99久久久久| 91麻豆swag| 制服丝袜激情欧洲亚洲| 精品国一区二区三区| 亚洲国产成人私人影院tom| 国产精品美女一区二区三区| 亚洲欧美激情小说另类| 午夜精品久久久久影视| 久久精品999| 国产精品一区二区久久不卡| jizz一区二区| 在线观看av不卡| 日韩女优电影在线观看| 国产精品丝袜一区| 亚洲国产日韩a在线播放性色| 秋霞午夜av一区二区三区| 国产在线不卡一卡二卡三卡四卡| 成人福利电影精品一区二区在线观看| 91久久线看在观草草青青| 7777精品久久久大香线蕉| 久久久一区二区| 亚洲影院在线观看| 国产盗摄精品一区二区三区在线| av福利精品导航| 制服丝袜亚洲播放| 亚洲婷婷综合色高清在线| 日韩在线a电影| 成人黄色在线网站| 51精品视频一区二区三区| 欧美激情在线一区二区三区| 婷婷国产v国产偷v亚洲高清| 国产精品白丝jk黑袜喷水| 欧美性色黄大片| 久久久久成人黄色影片| 亚洲成在人线免费| 成人av集中营| 久久香蕉国产线看观看99| 亚洲一区二区三区三| 国产iv一区二区三区| 欧美日本一区二区在线观看| 国产精品久久久久久久第一福利| 男男gaygay亚洲| 欧美午夜精品久久久| 国产精品污污网站在线观看| 蜜臀a∨国产成人精品| 91福利视频网站| 国产精品乱人伦中文| 久久精品国产99国产精品| 欧美高清视频www夜色资源网| 国产精品激情偷乱一区二区∴| 卡一卡二国产精品 | 免费人成精品欧美精品| 日本电影欧美片| 亚洲天天做日日做天天谢日日欢 | 久久国产精品第一页| 欧美理论在线播放| 亚洲一区二区精品视频| heyzo一本久久综合| 国产欧美va欧美不卡在线| 久久9热精品视频| 在线播放日韩导航| 亚洲成人综合视频| 在线观看一区二区视频| 亚洲最新视频在线观看| 久久综合色之久久综合| 男女视频一区二区| 日韩精品一区二区在线|