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

📄 interface.cpp

📁 华中师范大学汉口分校机器人足球源代码. 运行平台Robot Soccer v1.5a
💻 CPP
字号:
#include <windows.h>
#include "InterFace.h"
#include "Strategy.h"

BOOL APIENTRY DllMain( HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{    
    return TRUE;
}

extern "C" STRATEGY_API void Create ( Environment *env )
{
}

extern "C" STRATEGY_API void Destroy ( Environment *env )
{
}

extern "C" STRATEGY_API void Strategy ( Environment *env )
{
	int testInt = 100;
	int nIndex  = 0;

	switch (env->gameState)
	{
		case 0:
			{
				Position( &env->home[0], 70,70);
				// 缺省情况下的策略
				// 三个机器人进行追逐对方的策略

//				MoonFollowOpponent ( &env->home [1], &env->opponent [2] );
//				MoonFollowOpponent ( &env->home [2], &env->opponent [3] );
//				MoonFollowOpponent ( &env->home [3], &env->opponent [4] );
				
				// 第四个抢球
//				MoonAttack ( &env->home [4], env );
				// 守门员守门
//				Goalie1 ( &env->home [0], env );

			}				
			break;

		case FREE_BALL:
			{
				// 跟随对方机器人
				MoonFollowOpponent ( &env->home [1], &env->opponent [2] );
				MoonFollowOpponent ( &env->home [2], &env->opponent [3] );
				MoonFollowOpponent ( &env->home [3], &env->opponent [4] );

				// 抢球
				MoonAttack ( &env->home [4], env );

				// 守门员守门
				Goalie1 ( &env->home [0], env );
			}
			break;

		case PLACE_KICK:
			{
				// 发生坠球时的策略
				// 由二号小车发球
				MoonAttack ( &env->home [2], env );
			}			
			break;	
			
		case PENALTY_KICK:

			// 发生罚球时的策略
			switch (env->whosBall)
			{
				case ANYONES_BALL:
					MoonAttack ( &env->home [1], env );
					break;
				case BLUE_BALL:
					MoonAttack ( &env->home [4], env );
					break;
				case YELLOW_BALL:
					MoonAttack ( &env->home [0], env );
					break;
			}
			break;

		case FREE_KICK:
			{
				// 保存对方机器人的相关坐标
				FILE * pDebugFile = NULL; 
				pDebugFile = fopen("debugfile.txt", "a"); 
				
				for( nIndex = 0; nIndex < PLAYERS_PER_SIDE; nIndex++ ) 
				{
					fprintf( pDebugFile, "robot: %d x: %f y: %f z: %f \n", 
						nIndex, env->opponent[nIndex].pos.x, 
						env->opponent[nIndex].pos.y, 
						env->opponent[nIndex].pos.z ); 
				}		
				
				fclose(pDebugFile); 

				// 发生任意球时的策略
				MoonAttack ( &env->home [0], env );
			}
			break;

		case GOAL_KICK:
			{
				// 发生点球时的策略
				MoonAttack ( &env->home [0], env );
			}			
			break;
  }
}

⌨️ 快捷键说明

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