/// <summary> /// Clone()用のコンストラクタ /// </summary> /// <param name="players"></param> /// <param name="board"></param> /// <param name="timeSetting"></param> private GameSetting(PlayerSetting[] players, BoardSetting board, TimeSettings timeSettings, MiscSettings miscSettings) { Players = players; Board = board; TimeSettings = timeSettings; 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(), TimeSettings.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 = "あなた"; TimeSettings = new TimeSettings(); MiscSettings = new MiscSettings(); }