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

📄 finalcore.h

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

#include "FinalRole.h"

const unsigned long MAX_ROUND = 256; // 比赛长度限制
const unsigned long OFF_ROUND = 8; // 消隐长度

enum
{
	CORE_STATE_NULL, // 还未加载子程序
	CORE_STATE_READY, // 子程序加载完毕,等待 startGame
	CORE_STATE_RUNNING, // 比赛中
	CORE_STATE_DRAW, // 比赛完毕,平局
	CORE_STATE_1_WIN, // 比赛完毕, mpRole1 胜出
	CORE_STATE_2_WIN // 比赛完毕, mpRole2 胜出
	//CORE_STATE_BAD // 程序错误
};

class FinalCore
{
	public:
		FinalCore(DEBUGFUNCTION debugFunction = NULL);
		virtual ~FinalCore(void);

		void setMap(unsigned char index, unsigned char blank);
		void getMapInfo(bool map[8][4], unsigned char &index, unsigned char &destX, unsigned char &destY);
		void getQueenInfo(bool queen[8]);
		void debugOffQueen(unsigned char y);

		int initRoles(wchar_t *fileName1, wchar_t *fileName2); // 第二个参数可以为 NULL ,调试用

		int startGame(void);
		int switchRole(void); // 把CPU资源给另一个子程序
		unsigned char nextRound(unsigned long &round,
				unsigned char &action1, unsigned char &x1, unsigned char &y1, unsigned char &direction1,
				unsigned char &action2, unsigned char &x2, unsigned char &y2, unsigned char &direction2); // 返回值为 CORE_STATE_*

	protected:
		int actAction(unsigned char action, unsigned char &actionOld,
				unsigned char &x, unsigned char &y, unsigned char &direction); // 返回值为负数表示 Role 出界
		void release(void);

	protected:
		bool mMap[8][4];
		unsigned char mMapIndex;
		unsigned char mDestX, mDestY;
		unsigned char mQueen[8];

		unsigned long mRound;
		unsigned char mState;

		FinalRole *mpRole1, *mpRole2, *mpRoleActive;

		unsigned char mAction1, mAction2;
		unsigned char mX1, mY1, mX2, mY2;
		unsigned char mDirection1, mDirection2;

		DEBUGFUNCTION mDebugFunction;
};

⌨️ 快捷键说明

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