/////////////////////////////////////
// Maintenance program for MENACE DB
/////////////////////////////////////
#include	<conio.h>	//getch()使用の為
#include	<stdlib>	//srand()、rand()使用の為
#include	<iostream>	//cout、cin使用の為

#include	"CMENACEDB.h"

//メイン関数
int main(int argc, char **argv) {

	//変数宣言
	int g_num;		//読み込みデータ数
	int g_com = -1;	//コマンド
	int g_rec = -1;	//レコード番号
	int fwin = 0, swin = 0, flose = 0, slose = 0;	//先手、後手の勝利数と投了数
	CMENACEDB menace;
	//データ自動読み込み
	if(menace.BoardRead("MENACE.dat"))
		cout << "MENACEデータを読み込みました。" << endl;
	else {
		cout << "MENACEデータを読み込めません。終了します。" << endl;
		return 1;
	}
	cout << "MENACEのDBデータ数：" << (g_num = menace.DBSize()) << endl << endl;
	//メニューループ
	while(g_com != 5) {
		cout << ">>> メニュー <<<" << endl << "0. データ数" << endl << "1. データ表示（リスト）" << endl << "2. データ表示（レコード指定）" << endl << "3．重複チェック" << endl << "4. ソート" << endl << "5. 終了" << endl << endl;
		//コマンド入力
		while(g_com < 0 || g_com > 5)
			cin >> g_com;
		switch(g_com) {
		case 0:
			cout << "MENACEのDBデータ数：" << (g_num = menace.DBSize()) << endl << endl;
			g_com = -1;
			break;
		case 1:
			menace.DBList();
			g_com = -1;
			break;
		case 2:
			cout << "レコード番号を入力してください。" << endl;
			while(g_rec < 0 || g_rec >= g_num)
				cin >> g_rec;
			menace.DBShow(g_rec);
			cout << endl;
			g_rec = -1;
			g_com = -1;
			break;
		case 3:
			//登録データの重複チェック
			menace.CheckDup();
			cout << endl;
			g_com = -1;
			break;
		case 4:
			//登録データのソート
			menace.DBSort();
			cout << "登録データがソートされました。" << endl << endl;
			g_com = -1;
			break;
		default:	//== 5
			break;
		}
	}
	cout << endl << "<<現在のデータベースレコードの登録状況>>" << endl;
	menace.Count(fwin, swin, flose, slose);
	cout << "先手の勝ち：" << fwin << "回" << endl;
	cout << "後手の勝ち：" << swin << "回" << endl;
	cout << "先手の投了：" << flose << "回" << endl;
	cout << "後手の投了：" << slose << "回" << endl;
	cout << "データを上書きしますか？（Yes = 1, No = 2）" << endl;
	while(g_com < 1 || g_com > 2)
		cin >> g_com;
	if(g_com == 1)
		menace.BoardWrite("MENACE.dat");

	return 0;
}
