UnityとPhotonで対戦型ボードゲーム「犬猫将棋」を作成したい(6):飛車の動きを考える

犬猫将棋ソースコード、素材、遊べるリンクはこちら

今回は飛車です。縦のラインと横のラインに動けるということは、マスの規則性を考えると、駒の現在地から、5で割った時の余りが一緒のマスと、-1したときに商が一緒のマスは動けるマスということになりそうです。

  else if (Naru == false && Shu == 2)//飛車の場合
        {
            if (masuHandler.masuNum == 26 || masuHandler.masuNum == 0)
            {
                int i;
                for (i = 16; i < 26; i++)
                {
                    Masu[i].GetComponent<BoxCollider2D>().enabled = false;
                    Masu[i].GetComponent<MeshRenderer>().enabled = false;
                }
            }
            else
            {
                int i;
                for (i = 1; i < 26; i++)
                {
                    if(masuHandler.masuNum % 5 == 0)
                    {
                        if (masuHandler.masuNum / 5 == (i + 5) / 5 || masuHandler.masuNum % 5 == i % 5)
                        {
                            Masu[i].GetComponent<BoxCollider2D>().enabled = false;
                            Masu[i].GetComponent<MeshRenderer>().enabled = false;
                        }
                    }
                    else
                    {
                        if (masuHandler.masuNum / 5 == (i - 1) / 5 || masuHandler.masuNum % 5 == i % 5)
                        {
                            Masu[i].GetComponent<BoxCollider2D>().enabled = false;
                            Masu[i].GetComponent<MeshRenderer>().enabled = false;
                        }
                    }
                }
            }

ただし、右端に駒がいるときは繰り上がりがあるので、-1してあげないといけませんね。そこだけ場合わけをしてあげました。飛車は思ったより簡単に場合分け出来ました。次回は角です。これはかなり大変になりそうです。

おすすめの記事