<commit_before>#ifndef _GAME_H_
#define _GAME_H_

#include <nds.h>

#include <graphics.h>
#include <pad.h>
#include <woopsiarray.h>
#include <woopsistring.h>

#include "blankblockbmp.h"
#include "blockserver.h"
#include "gamefont.h"
#include "grid.h"
#include "gridrunner.h"
#include "hardware.h"
#include "menu.h"
#include "pausedbmp.h"
#include "singleplayercontroller.h"
#include "player1controller.h"
#include "player2controller.h"
#include "scroller.h"
#include "simianzombielogobmp.h"
#include "statsbackgroundbmp.h"
#include "aicontroller.h"
#include "soundplayer.h"
#include "twoplayerbgbmp.h"
#include "winnerbmp.h"

class Game {
public:

	enum GameType {
		GAME_TYPE_PRACTICE = 0,
		GAME_TYPE_EASY = 1,
		GAME_TYPE_MEDIUM = 2,
		GAME_TYPE_HARD = 3,
		GAME_TYPE_2_PLAYER = 4
	};

	Game();

	~Game();

	void main();

private:
	static const s32 HARD_AI_HESITATION = 0;
	static const s32 MEDIUM_AI_HESITATION = 2;
	static const s32 EASY_AI_HESITATION = 4;

	enum GameState {
		GAME_STATE_TITLE = 0,
		GAME_STATE_MENU = 1,
		GAME_STATE_ACTIVE = 2,
		GAME_STATE_PAUSED = 3,
		GAME_STATE_GAME_OVER = 4
	};

	void showText(s32 x, s32 y, s32 width, s32 height, const WoopsiGfx::WoopsiString& text);
	void clearScreens();
};

#endif<commit_msg>Added comments.<commit_after>#ifndef _GAME_H_
#define _GAME_H_

#include <nds.h>

#include <graphics.h>
#include <pad.h>
#include <woopsiarray.h>
#include <woopsistring.h>

#include "blankblockbmp.h"
#include "blockserver.h"
#include "gamefont.h"
#include "grid.h"
#include "gridrunner.h"
#include "hardware.h"
#include "menu.h"
#include "pausedbmp.h"
#include "singleplayercontroller.h"
#include "player1controller.h"
#include "player2controller.h"
#include "scroller.h"
#include "simianzombielogobmp.h"
#include "statsbackgroundbmp.h"
#include "aicontroller.h"
#include "soundplayer.h"
#include "twoplayerbgbmp.h"
#include "winnerbmp.h"

/**
 * Main game class.
 */
class Game {
public:

	/**
	 * List of all game types.
	 */
	enum GameType {
		GAME_TYPE_PRACTICE = 0,		/**< Single player. */
		GAME_TYPE_EASY = 1,			/**< Player vs easy CPU. */
		GAME_TYPE_MEDIUM = 2,		/**< Player vs medium CPU. */
		GAME_TYPE_HARD = 3,			/**< Player vs hard CPU. */
		GAME_TYPE_2_PLAYER = 4		/**< Player vs player. */
	};

	/**
	 * Constructor.
	 */
	Game();

	/**
	 * Destructor.
	 */
	~Game();

	/**
	 * Main game method.
	 */
	void main();

private:
	static const s32 HARD_AI_HESITATION = 0;		/**< Amount of hesitation by hard CPU. */
	static const s32 MEDIUM_AI_HESITATION = 2;		/**< Amount of hesitation by medium CPU. */
	static const s32 EASY_AI_HESITATION = 4;		/**< Amount of hesitation by easy CPU. */

	/**
	 * List of all possible states the game can be in.
	 */
	enum GameState {
		GAME_STATE_TITLE = 0,						/**< Title screen active. */
		GAME_STATE_MENU = 1,						/**< Menu screen active. */
		GAME_STATE_ACTIVE = 2,						/**< Game running. */
		GAME_STATE_PAUSED = 3,						/**< Game paused. */
		GAME_STATE_GAME_OVER = 4					/**< Game ended. */
	};

	/**
	 * Clears both DS screens to black.
	 */
	void clearScreens();

	// TODO: Delete this when title screen is in place.
	void showText(s32 x, s32 y, s32 width, s32 height, const WoopsiGfx::WoopsiString& text);
};

#endif
{'fraction_non_alphanumeric': 0.14188140329090346, 'fraction_numerical': 0.018627755355479666, 'mean_word_length': 3.8744326777609683, 'pattern_counts': {'":': 0, '<': 26, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4067297', 'n_tokens_mistral': 1415, 'n_tokens_neox': 1295, 'n_words': 309}