Example #1
0
    // 駒移動処理
    public void MoveKomaObj(string name, int x, int y)
    {
        bool motigomaFlag = false;

        // 持ち駒の場合
        if (name.IndexOf(KomaConst.motigoma) > -1)
        {
            name = name.Replace(KomaConst.motigoma, "");
            MotigomaManager motigomaManager = MotigomaManager.Instance;
            motigomaManager.Minus(name);
            if (KomaFunction.isSelfKoma(name))
            {
                GameObject     obj = transform.Find("../Motigoma1").gameObject;
                MotigomaScript mSc = obj.GetComponent <MotigomaScript> ();
                mSc.RefreshKoma();
            }
            else
            {
                GameObject     obj = transform.Find("../Motigoma2").gameObject;
                MotigomaScript mSc = obj.GetComponent <MotigomaScript> ();
                mSc.RefreshKoma();
            }
            name = CreateKomaObj(name, x, y);
            MasuManager manager = MasuManager.Instance;
            manager.SetMasu(x, y, KomaFunction.GetKomaNameByObjName(name));
            manager.UpdMasuObjNameByXAndY(name, x, y);
            motigomaFlag = true;
        }
        GameObject gameObj = GameObject.Find(name);
        KomaScript sc      = gameObj.GetComponent <KomaScript> ();

        gameObj.transform.position = new Vector3(basex - per1x * x, basey - per1y * y, 2);
        // 持ち駒でない場合
        if (!motigomaFlag)
        {
            Debug.Log("motigomadenai " + name);
            execCheckGetEnemyKoma(name, x, y);
            execCheckNarigoma(name, x, y);
            // 移動前のマスを初期化
            MasuManager manager = MasuManager.Instance;
            manager.EmptyMasu(sc.x, sc.y);
            sc.x = x;
            sc.y = y;
            manager.SetMasu(x, y, KomaFunction.GetKomaNameByObjName(name));
            manager.UpdMasuObjNameByXAndY(name, x, y);
        }
    }
Example #2
0
    // 相手の駒を取ったか確認&実行時
    void execCheckGetEnemyKoma(string objName, int x, int y)
    {
        GameObject      gameObj  = GameObject.Find(objName);
        KomaScript      sc       = gameObj.GetComponent <KomaScript>();
        MasuManager     manager  = MasuManager.Instance;
        MasuInit        masu     = manager.GetMasu(x, y);
        MotigomaManager mManager = MotigomaManager.Instance;

        if (sc.selfFlag && masu.enemyFlag)
        {
            if (masu.komaName.Equals(KomaConst.komaOu2) || masu.komaName.Equals(KomaConst.komaGy2))
            {
                mManager.Plus(KomaConst.komaOu);
            }
            else if (masu.komaName.Equals(KomaConst.komaHi2) || masu.komaName.Equals(KomaConst.komaRy2))
            {
                mManager.Plus(KomaConst.komaHi);
            }
            else if (masu.komaName.Equals(KomaConst.komaKa2) || masu.komaName.Equals(KomaConst.komaUm2))
            {
                mManager.Plus(KomaConst.komaKa);
            }
            else if (masu.komaName.Equals(KomaConst.komaKi2))
            {
                mManager.Plus(KomaConst.komaKi);
            }
            else if (masu.komaName.Equals(KomaConst.komaGi2) || masu.komaName.Equals(KomaConst.komaNg2))
            {
                mManager.Plus(KomaConst.komaGi);
            }
            else if (masu.komaName.Equals(KomaConst.komaKe2) || masu.komaName.Equals(KomaConst.komaNk2))
            {
                mManager.Plus(KomaConst.komaKe);
            }
            else if (masu.komaName.Equals(KomaConst.komaKy2) || masu.komaName.Equals(KomaConst.komaNy2))
            {
                mManager.Plus(KomaConst.komaKy);
            }
            else if (masu.komaName.Equals(KomaConst.komaFu2) || masu.komaName.Equals(KomaConst.komaTo2))
            {
                mManager.Plus(KomaConst.komaFu);
            }
            GameObject     obj = transform.Find("../Motigoma1").gameObject;
            MotigomaScript mSc = obj.GetComponent <MotigomaScript>();
            mSc.RefreshKoma();
            DestroyKomaObj(masu.objName);
        }
        else if (sc.enemyFlag && masu.selfFlag)
        {
            if (masu.komaName.Equals(KomaConst.komaOu) || masu.komaName.Equals(KomaConst.komaGy))
            {
                mManager.Plus(KomaConst.komaOu2);
            }
            else if (masu.komaName.Equals(KomaConst.komaHi) || masu.komaName.Equals(KomaConst.komaRy))
            {
                mManager.Plus(KomaConst.komaHi2);
            }
            else if (masu.komaName.Equals(KomaConst.komaKa) || masu.komaName.Equals(KomaConst.komaUm))
            {
                mManager.Plus(KomaConst.komaKa2);
            }
            else if (masu.komaName.Equals(KomaConst.komaKi))
            {
                mManager.Plus(KomaConst.komaKi2);
            }
            else if (masu.komaName.Equals(KomaConst.komaGi) || masu.komaName.Equals(KomaConst.komaNg))
            {
                mManager.Plus(KomaConst.komaGi2);
            }
            else if (masu.komaName.Equals(KomaConst.komaKe) || masu.komaName.Equals(KomaConst.komaNk))
            {
                mManager.Plus(KomaConst.komaKe2);
            }
            else if (masu.komaName.Equals(KomaConst.komaKy) || masu.komaName.Equals(KomaConst.komaNy))
            {
                mManager.Plus(KomaConst.komaKy2);
            }
            else if (masu.komaName.Equals(KomaConst.komaFu) || masu.komaName.Equals(KomaConst.komaTo))
            {
                mManager.Plus(KomaConst.komaFu2);
            }
            GameObject     obj = transform.Find("../Motigoma2").gameObject;
            MotigomaScript mSc = obj.GetComponent <MotigomaScript>();
            mSc.RefreshKoma();
            DestroyKomaObj(masu.objName);
        }
    }
Example #3
0
    // 味方駒再描画
    void RefreshKoma1()
    {
        RefreshInit1();
        MotigomaManager manager = MotigomaManager.Instance;

        string[] komaNames =
        {
            KomaConst.komaOu,
            KomaConst.komaHi,
            KomaConst.komaKa,
            KomaConst.komaKi,
            KomaConst.komaGi,
            KomaConst.komaKe,
            KomaConst.komaKy,
            KomaConst.komaFu
        };
        int i = 0;

        foreach (string komaName in komaNames)
        {
            if (komaName.Equals(KomaConst.komaOu) && manager.ou >= 1)
            {
                createKomaObj(KomaConst.komaOu, i, manager.ou);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaHi) && manager.hi >= 1)
            {
                createKomaObj(KomaConst.komaHi, i, manager.hi);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaKa) && manager.ka >= 1)
            {
                createKomaObj(KomaConst.komaKa, i, manager.ka);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaKi) && manager.ki >= 1)
            {
                createKomaObj(KomaConst.komaKi, i, manager.ki);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaGi) && manager.gi >= 1)
            {
                createKomaObj(KomaConst.komaGi, i, manager.gi);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaKe) && manager.ke >= 1)
            {
                createKomaObj(KomaConst.komaKe, i, manager.ke);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaKy) && manager.ky >= 1)
            {
                createKomaObj(KomaConst.komaKy, i, manager.ky);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaFu) && manager.fu >= 1)
            {
                createKomaObj(KomaConst.komaFu, i, manager.fu);
                i++;
            }
        }
    }
Example #4
0
    // lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL
    // lnsgksnl/1r5b1/pppp1ppp/9/9/9/PPPPP1PPP/1B7/LNSGKGSNL
    // lnsgkgP+nl/1r5b1/pppppp1pp/9/9/9/PPPPPP1PP/1B5R1/LNSGKGSNL
    public string GetSfen()
    {
        string line     = "";
        int    emptyCnt = 0;

        for (int y = 1; y <= 9; y++)
        {
            for (int x = 9; x >= 1; x--)
            {
                MasuInit masu = komas [x + "-" + y];
                if (masu.exists && emptyCnt > 0)
                {
                    line    += emptyCnt;
                    emptyCnt = 0;
                }
                if (masu.komaName.Equals(KomaConst.komaFu))
                {
                    line += "P";
                }
                else if (masu.komaName.Equals(KomaConst.komaKy))
                {
                    line += "L";
                }
                else if (masu.komaName.Equals(KomaConst.komaKe))
                {
                    line += "N";
                }
                else if (masu.komaName.Equals(KomaConst.komaGi))
                {
                    line += "S";
                }
                else if (masu.komaName.Equals(KomaConst.komaKi))
                {
                    line += "G";
                }
                else if (masu.komaName.Equals(KomaConst.komaKa))
                {
                    line += "B";
                }
                else if (masu.komaName.Equals(KomaConst.komaHi))
                {
                    line += "R";
                }
                else if (masu.komaName.Equals(KomaConst.komaOu) || masu.komaName.Equals(KomaConst.komaGy))
                {
                    line += "K";
                }
                else if (masu.komaName.Equals(KomaConst.komaFu2))
                {
                    line += "p";
                }
                else if (masu.komaName.Equals(KomaConst.komaKy2))
                {
                    line += "l";
                }
                else if (masu.komaName.Equals(KomaConst.komaKe2))
                {
                    line += "n";
                }
                else if (masu.komaName.Equals(KomaConst.komaGi2))
                {
                    line += "s";
                }
                else if (masu.komaName.Equals(KomaConst.komaKi2))
                {
                    line += "g";
                }
                else if (masu.komaName.Equals(KomaConst.komaKa2))
                {
                    line += "b";
                }
                else if (masu.komaName.Equals(KomaConst.komaHi2))
                {
                    line += "r";
                }
                else if (masu.komaName.Equals(KomaConst.komaOu2) || masu.komaName.Equals(KomaConst.komaGy2))
                {
                    line += "k";
                }
                else if (masu.komaName.Equals(KomaConst.komaTo))
                {
                    line += "P+";
                }
                else if (masu.komaName.Equals(KomaConst.komaNy))
                {
                    line += "L+";
                }
                else if (masu.komaName.Equals(KomaConst.komaNk))
                {
                    line += "N+";
                }
                else if (masu.komaName.Equals(KomaConst.komaNg))
                {
                    line += "S+";
                }
                else if (masu.komaName.Equals(KomaConst.komaUm))
                {
                    line += "B+";
                }
                else if (masu.komaName.Equals(KomaConst.komaRy))
                {
                    line += "R+";
                }
                else if (masu.komaName.Equals(KomaConst.komaTo2))
                {
                    line += "p+";
                }
                else if (masu.komaName.Equals(KomaConst.komaNy2))
                {
                    line += "l+";
                }
                else if (masu.komaName.Equals(KomaConst.komaNk2))
                {
                    line += "n+";
                }
                else if (masu.komaName.Equals(KomaConst.komaNg2))
                {
                    line += "s+";
                }
                else if (masu.komaName.Equals(KomaConst.komaUm2))
                {
                    line += "b+";
                }
                else if (masu.komaName.Equals(KomaConst.komaRy2))
                {
                    line += "r+";
                }
                else if (!masu.exists)
                {
                    emptyCnt++;
                }
            }
            if (emptyCnt > 0)
            {
                line    += emptyCnt;
                emptyCnt = 0;
            }
            if (y < 9)
            {
                line += "/";
            }
        }
        MotigomaManager manager  = MotigomaManager.Instance;
        string          motigoma = manager.GetSfen();

        return("sfen " + line + " w " + motigoma + " 1");
    }
Example #5
0
    // 敵駒再描画
    void RefreshKoma2()
    {
        RefreshInit2();
        MotigomaManager manager = MotigomaManager.Instance;

        string[] komaNames =
        {
            KomaConst.komaOu2,
            KomaConst.komaHi2,
            KomaConst.komaKa2,
            KomaConst.komaKi2,
            KomaConst.komaGi2,
            KomaConst.komaKe2,
            KomaConst.komaKy2,
            KomaConst.komaFu2
        };
        int i = 0;

        foreach (string komaName in komaNames)
        {
            if (komaName.Equals(KomaConst.komaOu2) && manager.ou2 >= 1)
            {
                createKomaObj(KomaConst.komaOu2, i, manager.ou2);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaHi2) && manager.hi2 >= 1)
            {
                createKomaObj(KomaConst.komaHi2, i, manager.hi2);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaKa2) && manager.ka2 >= 1)
            {
                createKomaObj(KomaConst.komaKa2, i, manager.ka2);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaKi2) && manager.ki2 >= 1)
            {
                createKomaObj(KomaConst.komaKi2, i, manager.ki2);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaGi2) && manager.gi2 >= 1)
            {
                createKomaObj(KomaConst.komaGi2, i, manager.gi2);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaKe2) && manager.ke2 >= 1)
            {
                createKomaObj(KomaConst.komaKe2, i, manager.ke2);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaKy2) && manager.ky2 >= 1)
            {
                createKomaObj(KomaConst.komaKy2, i, manager.ky2);
                i++;
            }
            else if (komaName.Equals(KomaConst.komaFu2) && manager.fu2 >= 1)
            {
                createKomaObj(KomaConst.komaFu2, i, manager.fu2);
                i++;
            }
        }
    }