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

📄 finalrole.h

📁 C语言大赛的平台。分为环境模块和策略模块。
💻 H
字号:
#pragma once

#include "../Strategy/Defs.h"

const unsigned long ROUND_OUT = 16; // 子进程超时限制

enum
{
	ROLE_STATE_NULL, // 尚未加载子程序
	ROLE_STATE_READY, // 初始化成功,等待 start
	ROLE_STATE_RUNNING, // 子程序运行中
	ROLE_STATE_FINISHED, // 子程序执行完毕,等待 setState
	ROLE_STATE_COMPLETED, // 子程序已完成任务
	ROLE_STATE_FAILED, // 子程序未能完成任务
	ROLE_STATE_BAD // 子程序故障
};

typedef void (*DEBUGFUNCTION)(char *message);

class FinalRole
{
	public:
		FinalRole(DEBUGFUNCTION debugFunction);
		virtual ~FinalRole(void);

		int init(wchar_t *fileName);
		int pause(void); // 挂起子程序
		int resume(void); // 恢复子程序
		void unInit(void);

		int start(void); // 向子程序发送 startSignal
		int getAction(unsigned char &action); // 取得子程序的决策
		int feedback(bool isQueenHere, unsigned char x0, unsigned char y0, unsigned char direction0,
				unsigned char x1, unsigned char y1, unsigned char direction1); // 向子程序发送反馈信息
		int setState(bool isCompleted); // 当接收到 Finish Signal 或出边界时调用,判断任务完成情况并终结子进程
		unsigned char getState(void);

	protected:
		void release(void);
		static DWORD WINAPI ThreadProc(LPVOID lParam);

	protected:
		HANDLE mhStdinRd, mhStdinWr, mhStdoutWr, mhStdoutRd;
		HANDLE mhProcess, mhThread, mhThreadProc;
		unsigned char mState;
		unsigned char mAction;
		unsigned char mRoundOut;
		DEBUGFUNCTION mDebugFunction;
};

⌨️ 快捷键说明

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