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

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

?? vcdll.cpp

?? 一個C編寫的足球機器人比賽程序
?? CPP
字號:
//////////////////////////////////////////////////////////////////////////
// DUT 5vs5 RoboCup Team DLL FrameWork 2
// Specified Edition for M$ Visual C++
//
// Please don't modify any definition given by the DUT RoboCup Competition Committee.
// This is not compatible with the server of earlier version.
//
// Visit IUSI website(http://tianwei.dlut.edu.cn) to gain more details.
// Technology support E-Mail: brton.rei@gmail.com,guangbincui@gmail.com
//////////////////////////////////////////////////////////////////////////

// 注意:函數體的內容可以根據自己的需要改變
// 例如你在DLL中要使用OOP技術,你完全可以重寫初始化和存儲部分
// 但是請務必保持所有給定接口(函數)的聲明部分

// 另:如果在VC++中出現如下編譯問題 
// unexpected end of file while looking for precompiled header directive
// 請在Project->Settings->C/C++->Category->Precompiled Headers頁
// 選擇Not using precompiled headers

#include <windows.h>
#include "CppConst.h"
#include "vcdll.h"
#include "Geometry.h"
#include "Worldmodel.h"

// 以下兩項名稱中請勿使用圓括號"("和")"

// 球隊的名稱,請勿超過10個漢字(20個ASCII字符),否則多余部分會被忽略
#define  CTEAMNAME 	         "球隊名字";  
// 作者的姓名,請勿超過7個漢字(14個ASCII字符),否則多余部分會被忽略
#define  CTEAMAUTHORS        "作者名字";  

MatchState		matchState;
RobotState		teamAState[5];
OpsState		teamBState[5];
BallState		ballState;
RobotState		*pMyTeam;
OpsState		*pOpsTeam;
int 			myTeamNo;
bool			bTransform;
int				iTime = 0;
WorldModel		WM;
BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    return TRUE;
}


//////////////////////////////////////////////////////////////////////////
// 初始化球隊信息
//////////////////////////////////////////////////////////////////////////
__declspec( dllexport ) void _stdcall initdll(int initTeamNo)
{
	myTeamNo = initTeamNo;
    pMyTeam = teamAState;
	pOpsTeam = teamBState;
	if(1 == initTeamNo) 
    {
		bTransform = false;
	} 
    else 
    {
		bTransform = true;
	}
	iTime = 0;
}

//////////////////////////////////////////////////////////////////////////
// 比賽信息
//////////////////////////////////////////////////////////////////////////
__declspec( dllexport ) void _stdcall tellmatchstate(MatchState ams,
                                                     RobotState atmAs[5], 
													 OpsState atmBs[5], 
                                                     BallState abs)
{
	memcpy(&matchState, &ams, sizeof(MatchState));
	memcpy(teamAState, atmAs, sizeof(RobotState)*5);
	memcpy(teamBState, atmBs, sizeof(OpsState)*5);
	memcpy(&ballState, &abs, sizeof(BallState));
	
	WM.ball.setPosition(VecPosition(ballState.pos.x,ballState.pos.y));
	WM.ball.setVelocity(VecPosition(ballState.vel.x,ballState.vel.y));

	for(int i = 0 ; i < 5 ; i ++)
	{
		WM.ownRobots[i].setPosition(VecPosition(pMyTeam[i].pos.x,pMyTeam[i].pos.y));
		WM.ownRobots[i].setVelocity(VecPosition(pMyTeam[i].vel.x,pMyTeam[i].vel.y));
		WM.ownRobots[i].SetDirection(pMyTeam[i].dir);
		WM.ownRobots[i].SetStamina(Stamina(pMyTeam[i].sta,pMyTeam[i].eff,pMyTeam[i].rec));
	}
	/*
	if(bTransform)
	{
		for(int i = 0 ; i < 5 ; i ++)
		{
			teamAState[i].dir  += 180.0;
			while( teamAState[i].dir > 180.0  ) teamAState[i].dir -= 360.0;
			while( teamAState[i].dir < -180.0 ) teamAState[i].dir += 360.0;
			teamAState[i].pos.x = CFLDLEN   - teamAState[i].pos.x;
			teamAState[i].pos.y = CFLDWIDTH - teamAState[i].pos.y;
			teamAState[i].vel.x = - teamAState[i].vel.x;
			teamAState[i].vel.y = - teamAState[i].vel.y;
			teamBState[i].dir  += 180.0;
			while( teamBState[i].dir > 180.0  ) teamBState[i].dir -= 360.0;
			while( teamBState[i].dir < -180.0 ) teamBState[i].dir += 360.0;
			teamBState[i].pos.x = CFLDLEN   - teamBState[i].pos.x;
			teamBState[i].pos.y = CFLDWIDTH - teamBState[i].pos.y;
			teamBState[i].vel.x = - teamBState[i].vel.x;
			teamBState[i].vel.y = - teamBState[i].vel.y;
		}		
	}*/
}

//////////////////////////////////////////////////////////////////////////
// 取得球隊的名稱
//////////////////////////////////////////////////////////////////////////
__declspec( dllexport ) char* _stdcall teamname()
{
	return CTEAMNAME;
}

//////////////////////////////////////////////////////////////////////////
// 取得球隊的作者名
//////////////////////////////////////////////////////////////////////////
__declspec( dllexport ) char* _stdcall teamauthor()
{
	return CTEAMAUTHORS;
}

//////////////////////////////////////////////////////////////////////////
// 設定球員的動作
//////////////////////////////////////////////////////////////////////////
__declspec( dllexport ) void _stdcall setaction(TCommand * pMyCMD)
{
	
	iTime++;	
	if((iTime%8) != 0 || true)
	{
			if(iTime%5 == 0)
			{
				for(int i=1; i< 5; i++)
				{
					pMyCMD[i].CommandType = Com_Turn;
					pMyCMD[i].ComParam0   = cos(iTime) * 180;
				}
			}
			else
			{
				for(int i=1; i< 5; i++)
				{
					pMyCMD[i].CommandType = Com_Dash;	
					pMyCMD[i].ComParam0   = cos(iTime) * 20;
				}
			}
	}
	else
	{
			for(int i=1; i< 5; i++)
			{
				pMyCMD[i].CommandType = Com_Kick;
				pMyCMD[i].ComParam0   = 0;
				pMyCMD[i].ComParam1   = 100;
			}
	}
	double tempdir =fabs(atan((ballState.pos.y - pMyTeam[4].pos.y)/(ballState.pos.x - pMyTeam[4].pos.x))-pMyTeam[4].dir*3.1415927/180.0);


	if(getDistBetween(ballState.pos,pMyTeam[0].pos) < CCATCHABLEMARGIN)
	{
		pMyCMD[0].CommandType = Com_Catch;
	}
	else
	{
		pMyCMD[0].CommandType = Com_Stay;
	}
	
	int    tempTime = 100;
	VecPosition tempPos = WM.ball.getPosition();
	ObjectT tempObject = WM.getFastestInSetTo(OBJECT_SET_TEAMMATES_NO_GOALIE,&tempPos,WM.ball.getVelocity(),CBALLDECAY,&tempTime);
	if(tempObject != O_Unknow)
	{
		AngDeg tempDir = WM.ownRobots[tempObject-1].getDirection();
		pMyCMD[tempObject-1] = WM.predictCommandToMoveToPos(tempObject,tempPos,100,&WM.ownRobots[tempObject-1].getPosition(),
			&WM.ownRobots[tempObject-1].getVelocity(),&tempDir);
	}
	for (int i = 1 ; i < 5 ; i++ )
	{
		if(getDistBetween(ballState.pos,pMyTeam[i].pos) < 1.0)
		{
			pMyCMD[i].CommandType = Com_Kick;
			pMyCMD[i].ComParam0   = cos(iTime) * 90;
			pMyCMD[i].ComParam1   = 100;
		}
		
	}
	/*
    (*pMyCMD)[0].ifResetMovement=1;
    (*pMyCMD)[0].targetV=CMAXV;
    (*pMyCMD)[0].targetX=pOpsTeam[3].x;
    (*pMyCMD)[0].targetY=pOpsTeam[3].y;
	*/
}

//////////////////////////////////////////////////////////////////////////
// 退出動態鏈接庫,回收資源
//////////////////////////////////////////////////////////////////////////
__declspec( dllexport ) void _stdcall exitdll()
{
    // 如果有動態分配的內存,請在此釋放
}


double getDistBetween(const Vector & pos1, const Vector & pos2)
{
    double tmp1 = (pos1.x - pos2.x);
    double tmp2 = (pos1.y - pos2.y);
    return sqrt(tmp1*tmp1 + tmp2*tmp2);
}



















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
石原莉奈在线亚洲二区| 精品久久久久久久久久久久包黑料| 国产日韩精品久久久| 黄色小说综合网站| xfplay精品久久| 国产精品一二三四| 亚洲欧洲av在线| 欧亚一区二区三区| 日韩国产精品大片| 久久久精品国产99久久精品芒果| 波多野结衣在线一区| 亚洲精品中文字幕在线观看| 欧美日韩国产一区| 国产一区二区三区免费| 国产精品情趣视频| 精品视频在线免费看| 极品销魂美女一区二区三区| 欧美激情一区二区三区| 91精彩视频在线观看| 蜜臀av一区二区在线观看| 国产人伦精品一区二区| 在线亚洲免费视频| 久久99蜜桃精品| 国产精品久久久久久久久免费桃花| 在线欧美日韩精品| 久久99国产精品久久99果冻传媒| 国产精品久久久久久久第一福利| 欧美日韩成人综合| 国产福利一区在线| 亚洲一区二区三区四区不卡| 日韩欧美一二三四区| 99在线精品一区二区三区| 日产国产高清一区二区三区| 国产精品萝li| 欧美一区二区在线免费观看| 成人国产精品视频| 男男成人高潮片免费网站| 亚洲欧洲成人精品av97| 欧美精品一区二区久久久| 色婷婷久久久综合中文字幕| 精久久久久久久久久久| 亚洲午夜久久久久| 国产精品美女久久久久高潮| 欧美va亚洲va在线观看蝴蝶网| 在线一区二区三区四区五区| 国产精品88av| 免费成人av资源网| 亚洲国产你懂的| 国产精品久久777777| 精品日韩一区二区三区| 欧美日韩一区二区欧美激情| 成人黄色一级视频| 国产精品一级片| 极品美女销魂一区二区三区| 亚洲超碰精品一区二区| 一区二区三区在线观看欧美| 国产欧美中文在线| 久久久久久久久伊人| 精品理论电影在线| 91精品国产91热久久久做人人| 91国在线观看| 99久久免费国产| 丁香激情综合国产| 国产成人在线视频播放| 狠狠色狠狠色合久久伊人| 免费成人小视频| 麻豆精品视频在线观看免费| 日韩精品乱码av一区二区| 亚洲国产精品久久不卡毛片| 一区二区三区鲁丝不卡| 一区二区三区在线视频观看58| 综合分类小说区另类春色亚洲小说欧美 | 日韩高清一级片| 一区二区三区中文字幕电影 | 欧美视频中文字幕| 色av综合在线| 在线观看一区二区精品视频| 欧美在线啊v一区| 欧美日韩精品三区| 欧美人与z0zoxxxx视频| 欧美日韩www| 欧美一区二区三区色| 日韩女优视频免费观看| 精品久久久久久最新网址| 欧美xxxx老人做受| 国产亚洲欧美在线| 国产精品成人免费精品自在线观看| 中文字幕第一区综合| 1024亚洲合集| 亚洲天堂成人网| 亚洲综合在线视频| 青青草97国产精品免费观看 | 国产视频一区在线播放| 国产精品毛片久久久久久| 亚洲日本在线观看| 亚洲国产一区视频| 久久电影网站中文字幕| 国产成人在线视频免费播放| 91视视频在线观看入口直接观看www| 色婷婷综合视频在线观看| 欧美日韩在线精品一区二区三区激情| 777午夜精品视频在线播放| 日韩久久久精品| 国产精品色在线| 一区2区3区在线看| 激情偷乱视频一区二区三区| 99久久精品国产一区二区三区 | 午夜精品久久久久久| 韩国理伦片一区二区三区在线播放 | 国产女人水真多18毛片18精品视频 | 九九国产精品视频| www.激情成人| 欧美一区二区免费观在线| 国产日本欧美一区二区| 一区二区三区欧美久久| 久久99国内精品| 色综合天天性综合| 精品久久久久久久久久久久包黑料 | 国产日韩欧美在线一区| 亚洲激情图片一区| 国产一区二区三区精品视频| 色爱区综合激月婷婷| www欧美成人18+| 亚洲欧美一区二区三区国产精品| 日韩一区精品字幕| aaa国产一区| 91精品国产乱码| 一区二区三区在线观看视频| 国产精品白丝jk黑袜喷水| 欧美三电影在线| 欧美韩日一区二区三区| 日韩综合在线视频| 99久久精品国产导航| 在线亚洲人成电影网站色www| 久久久一区二区| 奇米影视一区二区三区| 色先锋资源久久综合| 国产午夜亚洲精品午夜鲁丝片 | 亚洲视频每日更新| 国产一区二区在线免费观看| 欧美亚洲免费在线一区| 中文字幕在线免费不卡| 国产一区免费电影| 欧美一区日韩一区| 爽好久久久欧美精品| 色婷婷综合中文久久一本| 欧美韩国日本一区| 国产精品自拍三区| 精品区一区二区| 奇米色一区二区| 7777精品伊人久久久大香线蕉经典版下载| 国产精品福利电影一区二区三区四区| 国产在线观看一区二区| 日韩免费高清视频| 人妖欧美一区二区| 欧美一区二区高清| 视频一区视频二区中文字幕| 欧美性受xxxx| 亚洲电影一级黄| 在线观看日韩电影| 亚洲一区二区三区激情| 色哟哟精品一区| 亚洲午夜免费视频| 欧美日韩一二区| 午夜精品一区二区三区电影天堂| 在线国产电影不卡| 亚洲制服丝袜一区| 欧洲精品一区二区| 天天综合色天天综合色h| 欧美日韩电影在线| 轻轻草成人在线| 日韩欧美国产电影| 国产一区二区三区在线观看免费| 久久综合久久99| 国产成人久久精品77777最新版本| 久久久噜噜噜久久中文字幕色伊伊 | 欧美日韩亚洲不卡| 婷婷中文字幕综合| 日韩午夜在线观看| 精品亚洲成av人在线观看| 国产亚洲综合av| 99久久99久久免费精品蜜臀| 亚洲欧美一区二区三区久本道91| 91成人免费在线视频| 亚洲高清免费视频| 日韩欧美久久久| 国产成a人无v码亚洲福利| 成人欧美一区二区三区在线播放| 日韩写真欧美这视频| 久久成人综合网| 久久久久久电影| 色综合天天天天做夜夜夜夜做| 一区二区三区精品| 欧美一区二区播放| 国产91富婆露脸刺激对白| 亚洲欧美视频在线观看| 欧美日本一区二区| 国产精品正在播放| 亚洲色图另类专区| 51精品视频一区二区三区|