예제 #1
0
        //マスのボタンを押したときの処理
        private void buttonSquare_Click(object sender, RoutedEventArgs e)
        {
            Button srcButton = (Button)e.Source;
            Image  square    = (Image)srcButton.Content;

            string btnName          = srcButton.Name;
            int    boardCoordinates = int.Parse(btnName.Replace("button", ""));

            int y = (boardCoordinates / 10) % 10; //boardCoordinatesの10の位の数 = 縦のマス数
            int x = boardCoordinates % 10;        //boardCoordinatesの1の位の数 = 横のマス数

            bool right     = false;
            bool left      = false;
            bool up        = false;
            bool down      = false;
            bool rightUp   = false;
            bool leftUp    = false;
            bool rightDown = false;
            bool leftDown  = false;

            //自分の石を置けるかどうかのチェック
            if (ReverseCheck.CheckTurnUpsideDown(y, x, boadList, ref right, ref left, ref up, ref down, ref rightUp, ref leftUp, ref rightDown, ref leftDown))
            {
                //盤の情報を変更する
                Reverse.ReverseStorns(y, x, boadList, right, left, up, down, rightUp, leftUp, rightDown, leftDown);
                //盤面を画面に反映する
                ReflectOnBoard();

                //相手の色がないとき、ゲーム終了処理を行う
                CheckOpponentColorExist();
                //緑のマスがないとき、ゲーム終了処理を行う
                CheckNoneColorExist();
                //ターンプレイヤーを交代する(相手のターンになる)
                ChangeTarn();
                //相手が置ける場所がないとき、パスする(次を自分のターンにする)
                if (!CheckCanPutStones())
                {
                    MessageBox.Show("置ける場所がありません。パスします。");
                    ChangeTarn();
                    //自分も置ける場所がないとき、ゲームを終了する
                    if (!CheckCanPutStones())
                    {
                        MessageBox.Show("両者置ける場所がありません。ゲーム終了です。");
                        GameEnd();
                    }
                }
            }
        }
예제 #2
0
 //自分が置ける場所がないかどうかを確認する
 private bool CheckCanPutStones()
 {
     for (int y = 1; y <= 8; y++)
     {
         for (int x = 1; x <= 8; x++)
         {
             if (boadList[y][x] == 1)//TODO: 統合
             {
                 if (ReverseCheck.CheckTurnUpsideDown(y, x, boadList))
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }