/// <summary> /// 持ち時間設定をそれぞれのプレイヤーに反映させる。 /// </summary> /// <param name="kifuTimeSettins"></param> public void SetKifuTimeSettings(KifuTimeSettings kifuTimeSettings) { foreach (var c in All.Colors()) { Player(c).KifuTimeSetting = kifuTimeSettings.Player(c); } }
/// <summary> /// Clone()用のコンストラクタ /// </summary> /// <param name="players"></param> /// <param name="board"></param> /// <param name="timeSetting"></param> private GameSetting(PlayerSetting[] players, BoardSetting board, KifuTimeSettings kifuTimeSettings, MiscSettings miscSettings) { Players = players; Board = board; KifuTimeSettings = kifuTimeSettings; MiscSettings = miscSettings; }
/// <summary> /// このインスタンスのClone() /// </summary> /// <returns></returns> public GameSetting Clone() { // premitive typeでないとMemberwiseClone()でClone()されないので自前でCloneする。 return(new GameSetting( new PlayerSetting[2] { Players[0].Clone(), Players[1].Clone() }, Board.Clone(), KifuTimeSettings.Clone(), MiscSettings.Clone() )); }
/// <summary> /// デフォルトコンストラクタ /// </summary> public GameSetting() { // 初回起動時などデシリアライズに失敗した時のためにデフォルト値をきちんと設定しておく。 Board = new BoardSetting(); Players = new PlayerSetting[2] { new PlayerSetting(), new PlayerSetting() }; // 先後入れ替えるので名前が「先手」「後手」がデフォルトだと紛らわしい。 // 名前を「わたし」と「あなた」にしとく。 Player(Color.BLACK).PlayerName = "わたし"; Player(Color.WHITE).PlayerName = "あなた"; KifuTimeSettings = new KifuTimeSettings(); MiscSettings = new MiscSettings(); }
/// <summary> /// 先手と後手のプレイヤーを入れ替える。 /// TimeSettingsのほうも入れ替える。 /// </summary> public void SwapPlayer() { Utility.Swap(ref Players[0], ref Players[1]); KifuTimeSettings.SwapPlayer(); }