// フラッグ獲得解決のチェック private bool ProveFlag(Flag f) { if (f.IsProved) { return(false); } if (f.GetLength(Turn) < f.MaxNumber) { return(false); } ArrayList used = new ArrayList(); ICollection pl = f.GetCard(Turn); ICollection opp = f.GetCard(NextTurn); // 見えているカードのリストを作成 foreach (Flag it in flag) { used.AddRange(it.GetCard(0)); used.AddRange(it.GetCard(1)); } used.AddRange(graveyardStack); int winner = WinnerChecker.FlagWinner(pl, opp, used, f.MaxNumber, f.IsFog); if (winner == 0) { f.Prove(Turn); if (WinnerChecker.GameWinner(flag, Turn)) { phase = Defines.Phase.FinishGame; } return(true); } return(false); }
public GameMainForm() { // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); // TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。 LoadResources(); SetPoint(); WinnerChecker.Initialize(); }