Beispiel #1
0
        public static SyElement GetFirstMasuFromOkiba(Okiba okiba)
        {
            SyElement firstMasu;

            switch (okiba)
            {
            case Okiba.ShogiBan:
                firstMasu = Masu_Honshogi.Query_Basho(Masu_Honshogi.nban11_1一);    //[0]
                break;

            case Okiba.Sente_Komadai:
                firstMasu = Masu_Honshogi.Query_Basho(Masu_Honshogi.nsen01);    //[81]
                break;

            case Okiba.Gote_Komadai:
                firstMasu = Masu_Honshogi.Query_Basho(Masu_Honshogi.ngo01);    //[121]
                break;

            case Okiba.KomaBukuro:
                firstMasu = Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro01);    //[161];
                break;

            default:
                //エラー
                firstMasu = Masu_Honshogi.Query_Basho(Masu_Honshogi.nError);    // -1→[201];
                break;
            }

            return(firstMasu);
        }
Beispiel #2
0
        /// <summary>
        /// v(^▽^)v超能力『メナス』だぜ☆ 未来の脅威を予測し、可視化するぜ☆www
        /// </summary>
        public static void Menace(MainGui_Csharp mainGui)
        {
            if (0 < mainGui.Model_Manual.GuiTemezumi)
            {
                // 処理の順序が悪く、初回はうまく判定できない。
                SkyConst src_Sky = mainGui.Model_Manual.GuiSkyConst;


                //----------
                // 将棋盤上の駒
                //----------
                mainGui.RepaintRequest.SetFlag_RefreshRequest();

                // [クリアー]
                mainGui.Shape_PnlTaikyoku.Shogiban.ClearHMasu_KikiKomaList();

                // 全駒
                foreach (Finger figKoma in Finger_Honshogi.Items_KomaOnly)
                {
                    RO_Star koma = Util_Starlightable.AsKoma(src_Sky.StarlightIndexOf(figKoma).Now);


                    if (
                        Okiba.ShogiBan == Conv_SyElement.ToOkiba(koma.Masu)
                        &&
                        mainGui.Model_Manual.GuiPside != koma.Pside
                        )
                    {
                        // 駒の利き
                        SySet <SyElement> kikiZukei = Util_Sky_SyugoQuery.KomaKidou_Potential(figKoma, src_Sky);

                        IEnumerable <SyElement> kikiMasuList = kikiZukei.Elements;
                        foreach (SyElement masu in kikiMasuList)
                        {
                            // その枡に利いている駒のハンドルを追加
                            if (!Masu_Honshogi.IsErrorBasho(masu))
                            {
                                mainGui.Shape_PnlTaikyoku.Shogiban.HMasu_KikiKomaList[Conv_SyElement.ToMasuNumber(masu)].Add((int)figKoma);
                            }
                        }
                    }
                }
            }
        }
Beispiel #3
0
 /// <summary>
 /// ************************************************************************************************************************
 /// コンストラクターです。
 /// ************************************************************************************************************************
 /// </summary>
 /// <param name="okiba"></param>
 /// <param name="suji"></param>
 /// <param name="dan"></param>
 /// <param name="x"></param>
 /// <param name="y"></param>
 public Shape_BtnMasuImpl(IEngineConf engineConf, string widgetName)
     : base(engineConf, widgetName, 0, 0, 35, 35)
 {
     this.Zahyo = Masu_Honshogi.Query_Basho(Masu_Honshogi.nError);
 }
Beispiel #4
0
        /// <summary>
        /// 駒を動かします(1)。マウスボタンが押下されたとき。
        ///
        /// 成る、成らない関連。
        ///
        /// </summary>
        public static void Komamove1a_50Srv(
            out bool torareruKomaAri,
            out RO_Star koma_Food_after,
            IMoveHalf dst,
            Finger fig_btnTumandeiruKoma,
            RO_Star foodee_koma,//取られる対象の駒
            Model_Manual model_Manual
            )
        {
            Finger btnKoma_Food_Koma;

            // 取られることになる駒のボタン
            btnKoma_Food_Koma = Util_Sky_FingersQuery.InMasuNow(model_Manual.GuiSkyConst, foodee_koma.Masu).ToFirst();
            if (Fingers.Error_1 == btnKoma_Food_Koma)
            {
                koma_Food_after   = null;
                torareruKomaAri   = false;
                btnKoma_Food_Koma = Fingers.Error_1;
                goto gt_EndBlock1;
            }
            else
            {
                //>>>>> 取る駒があったとき
                torareruKomaAri = true;
            }



            PieceType koma_Food_pre_Syurui = Util_Starlightable.AsKoma(model_Manual.GuiSkyConst.StarlightIndexOf(btnKoma_Food_Koma).Now).Komasyurui;


            // その駒は、駒置き場に移動させます。
            SyElement akiMasu;

            switch (foodee_koma.Pside)
            {
            case Playerside.P2:

                akiMasu = Util_IttesasuRoutine.GetKomadaiKomabukuroSpace(Okiba.Gote_Komadai, model_Manual.GuiSkyConst);
                if (!Masu_Honshogi.IsErrorBasho(akiMasu))
                {
                    // 駒台に空きスペースがありました。
                    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                    koma_Food_after = new RO_Star(
                        Playerside.P2,
                        akiMasu,    //駒台へ
                        Util_Komasyurui14.NarazuCaseHandle(koma_Food_pre_Syurui)
                        );
                }
                else
                {
                    // エラー: 駒台に空きスペースがありませんでした。
                    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

                    koma_Food_after = new RO_Star(
                        Playerside.P2,
                        Util_Masu10.OkibaSujiDanToMasu(
                            Okiba.Gote_Komadai,
                            Util_Koma.CTRL_NOTHING_PROPERTY_SUJI,
                            Util_Koma.CTRL_NOTHING_PROPERTY_DAN
                            ),
                        Util_Komasyurui14.NarazuCaseHandle(koma_Food_pre_Syurui)
                        );
                }

                break;

            case Playerside.P1:    //thru
            default:

                akiMasu = Util_IttesasuRoutine.GetKomadaiKomabukuroSpace(Okiba.Sente_Komadai, model_Manual.GuiSkyConst);
                if (!Masu_Honshogi.IsErrorBasho(akiMasu))
                {
                    // 駒台に空きスペースがありました。
                    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

                    koma_Food_after = new RO_Star(
                        Playerside.P1,
                        akiMasu,    //駒台へ
                        Util_Komasyurui14.NarazuCaseHandle(koma_Food_pre_Syurui)
                        );
                }
                else
                {
                    // エラー: 駒台に空きスペースがありませんでした。
                    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

                    koma_Food_after = new RO_Star(
                        Playerside.P1,
                        Util_Masu10.OkibaSujiDanToMasu(
                            Okiba.Sente_Komadai,
                            Util_Koma.CTRL_NOTHING_PROPERTY_SUJI,
                            Util_Koma.CTRL_NOTHING_PROPERTY_DAN
                            ),
                        Util_Komasyurui14.NarazuCaseHandle(koma_Food_pre_Syurui)
                        );
                }

                break;
            }



gt_EndBlock1:


            SkyConst sky2;

            if (btnKoma_Food_Koma != Fingers.Error_1)
            {
                //------------------------------
                // 取られる駒があった場合
                //------------------------------
                sky2 = SkyConst.NewInstance_OverwriteOrAdd_Light(
                    model_Manual.GuiSkyConst,
                    -1,    //そのまま
                           //
                           // 指した駒
                           //
                    fig_btnTumandeiruKoma,
                    dst,
                    //
                    // 取られた駒
                    //
                    btnKoma_Food_Koma,
                    new RO_Starlight(
                        koma_Food_after
                        )
                    );
            }
            else
            {
                //------------------------------
                // 取られる駒がなかった場合
                //------------------------------
                RO_Star movedKoma = Util_Starlightable.AsKoma(model_Manual.GuiSkyConst.StarlightIndexOf(fig_btnTumandeiruKoma).Now);

                sky2 = SkyConst.NewInstance_OverwriteOrAdd_Light(
                    model_Manual.GuiSkyConst,
                    -1,    //そのまま
                           //
                           // 指した駒
                           //
                    fig_btnTumandeiruKoma,
                    dst,
                    //
                    // 手得計算
                    //
                    movedKoma.Komasyurui,
                    0,
                    movedKoma.Masu
                    );
            }

            model_Manual.SetGuiSky(sky2);
            // ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
            // 棋譜は変更された。
            // ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
        }
Beispiel #5
0
        /// <summary>
        /// 指し手一覧を、リストボックスに表示します。
        /// </summary>
        /// <param name="uc_Main"></param>
        public static void ShowMoveList(
            LearningData learningData,
            Uc_Main uc_Main
            )
        {
            //
            // まず、リストを空っぽにします。
            //
            uc_Main.LstMove.Items.Clear();

            Playerside firstPside = Playerside.P1;
            KifuTree   kifu1      = new KifuTreeImpl(
                new KifuNodeImpl(
                    Util_Sky258A.RootMove,
                    new KyokumenWrapper(SkyConst.NewInstance(
                                            Util_SkyWriter.New_Hirate(firstPside),
                                            0  //初期局面は 0手済み。
                                            )) //日本の符号読取時
                    )
                );
            //kifu1.AssertPside(kifu1.CurNode, "ShowMoveList",logTag);

            List <CsaKifuMove> moveList = learningData.CsaKifu.MoveList;

            foreach (CsaKifuMove csaMove in moveList)
            {
                // 開始局面
                SkyConst kaisi_Sky = kifu1.CurNode.Value.KyokumenConst;

                //
                // csaMove を データ指し手 に変換するには?
                //
                IMove nextMove;
                {
                    Playerside pside = UtilCsaMove.ToPside(csaMove);

                    // 元位置
                    SyElement srcMasu = UtilCsaMove.ToSrcMasu(csaMove);
                    Finger    figSrcKoma;
                    if (Masu_Honshogi.IsErrorBasho(srcMasu))// 駒台の "00" かも。
                    {
                        //駒台の駒。
                        PieceType utuKomasyurui = Util_Komasyurui14.NarazuCaseHandle(UtilCsaMove.ToKomasyurui(csaMove));// 打つ駒の種類。

                        Okiba komadai;
                        switch (pside)
                        {
                        case Playerside.P1: komadai = Okiba.Sente_Komadai; break;

                        case Playerside.P2: komadai = Okiba.Gote_Komadai; break;

                        default: komadai = Okiba.Empty; break;
                        }

                        figSrcKoma = Util_Sky_FingersQuery.InOkibaPsideKomasyuruiNow(kaisi_Sky, komadai, pside, utuKomasyurui).ToFirst();
                    }
                    else
                    {
                        // 盤上の駒。
                        figSrcKoma = Util_Sky_FingerQuery.InMasuNow(kaisi_Sky, pside, srcMasu);
                    }
                    RO_Star srcKoma = Util_Starlightable.AsKoma(kaisi_Sky.StarlightIndexOf(figSrcKoma).Now);

                    // 先位置
                    SyElement dstMasu     = UtilCsaMove.ToDstMasu(csaMove);
                    Finger    figFoodKoma = Util_Sky_FingerQuery.InShogibanMasuNow(kaisi_Sky, pside, dstMasu);
                    PieceType foodKomasyurui;
                    if (figFoodKoma == Fingers.Error_1)
                    {
                        // 駒のない枡
                        foodKomasyurui = PieceType.None;//取った駒無し。
                    }
                    else
                    {
                        // 駒のある枡
                        foodKomasyurui = Util_Starlightable.AsKoma(kaisi_Sky.StarlightIndexOf(figFoodKoma).Now).Komasyurui;//取った駒有り。
                    }
                    IMoveSource dstKoma = new RO_Star(
                        pside,
                        dstMasu,
                        UtilCsaMove.ToKomasyurui(csaMove)
                        );

                    nextMove = new RO_Starbeam(
                        srcKoma,       // 移動元
                        dstKoma,       // 移動先
                        foodKomasyurui ////取った駒
                        );
                }

                {
                    //----------------------------------------
                    // 一手指したい。
                    //----------------------------------------
                    //
                    //↓↓一手指し
                    IttesasuResult ittesasuResult;
                    Util_IttesasuRoutine.Before1(
                        new IttesasuArgImpl(
                            kifu1.CurNode.Value,
                            ((KifuNode)kifu1.CurNode).Value.KyokumenConst.KaisiPside,
                            nextMove,
                            kifu1.CurNode.Value.KyokumenConst.Temezumi + 1//1手進める
                            ),
                        out ittesasuResult,
                        //kifu1,//診断用
                        "Utli_LearningViews#ShowMoveList"
                        );
                    Debug.Assert(ittesasuResult.Get_SyuryoNode_OrNull != null, "ittesasuResult.Get_SyuryoNode_OrNull がヌル☆?!");
                    Util_IttesasuRoutine.Before2(
                        ref ittesasuResult
                        );
                    //
                    //次ノートを追加します。次ノードを、これからのカレントとします。
                    //
                    //kifu1.AssertChildPside(kifu1.CurNode.Value.ToKyokumenConst.KaisiPside, ittesasuResult.Get_SyuryoNode_OrNull.Value.ToKyokumenConst.KaisiPside);
                    Util_IttesasuRoutine.After3_ChangeCurrent(
                        kifu1,
                        ConvMoveStrSfen.ToMoveStrSfen(ittesasuResult.Get_SyuryoNode_OrNull.Key),// nextMoveStr,
                        ittesasuResult.Get_SyuryoNode_OrNull
                        );
                    // これで、棋譜ツリーに、構造変更があったはず。
                    //↑↑一手指し
                }


                string sfen;
                if (kifu1.CurNode.IsRoot())
                {
                    sfen = UtilCsaMove.ToSfen(csaMove, null);
                }
                else
                {
                    sfen = UtilCsaMove.ToSfen(csaMove, kifu1.CurNode.GetParentNode().Value.KyokumenConst);
                }
                HonpuMoveListItemImpl listItem = new HonpuMoveListItemImpl(csaMove, sfen);
                uc_Main.LstMove.Items.Add(listItem);
            }

            //----------------------------------------
            // ソート
            //----------------------------------------
            //List<MoveListItemImpl> list = new List<MoveListItemImpl>();
            //list.Sort((MoveListItemImpl a, MoveListItemImpl b) =>
            //{
            //    return a - b;
            //});
        }
Beispiel #6
0
        /// <summary>
        /// ************************************************************************************************************************
        /// 将棋盤の上の駒を、全て駒袋に移動します。 [クリアー]
        /// ************************************************************************************************************************
        /// </summary>
        public static void ClearKifu(MainGui_Csharp mainGui, RepaintRequest repaintRequest)
        {
            mainGui.Link_Server.Model_Taikyoku.Kifu.Clear();// 棋譜を空っぽにします。

            SkyBuffer buffer_Sky = new SkyBuffer(mainGui.Model_Manual.GuiSkyConst);

            int figKoma;

            // 先手
            figKoma = (int)Finger_Honshogi.SenteOh;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(/*figKoma,*/ new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro01), PieceType.K))); //先手王
            figKoma = (int)Finger_Honshogi.GoteOh;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro02), PieceType.K)));              //後手王

            figKoma = (int)Finger_Honshogi.Hi1;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro03), PieceType.R))); //飛
            figKoma = (int)Finger_Honshogi.Hi2;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro04), PieceType.R)));

            figKoma = (int)Finger_Honshogi.Kaku1;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro05), PieceType.B))); //角
            figKoma = (int)Finger_Honshogi.Kaku2;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro06), PieceType.B)));

            figKoma = (int)Finger_Honshogi.Kin1;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro07), PieceType.G))); //金
            figKoma = (int)Finger_Honshogi.Kin2;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro08), PieceType.G)));
            figKoma = (int)Finger_Honshogi.Kin3;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro09), PieceType.G)));
            figKoma = (int)Finger_Honshogi.Kin4;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro10), PieceType.G)));

            figKoma = (int)Finger_Honshogi.Gin1;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro11), PieceType.S))); //銀
            figKoma = (int)Finger_Honshogi.Gin2;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro12), PieceType.S)));
            figKoma = (int)Finger_Honshogi.Gin3;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro13), PieceType.S)));
            figKoma = (int)Finger_Honshogi.Gin4;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro14), PieceType.S)));

            figKoma = (int)Finger_Honshogi.Kei1;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro15), PieceType.N))); //桂
            figKoma = (int)Finger_Honshogi.Kei2;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro16), PieceType.N)));
            figKoma = (int)Finger_Honshogi.Kei3;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro17), PieceType.N)));
            figKoma = (int)Finger_Honshogi.Kei4;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro18), PieceType.N)));

            figKoma = (int)Finger_Honshogi.Kyo1;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro19), PieceType.L))); //香
            figKoma = (int)Finger_Honshogi.Kyo2;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro20), PieceType.L)));
            figKoma = (int)Finger_Honshogi.Kyo3;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro21), PieceType.L)));
            figKoma = (int)Finger_Honshogi.Kyo4;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro22), PieceType.L)));

            figKoma = (int)Finger_Honshogi.Fu1;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro23), PieceType.P))); //歩
            figKoma = (int)Finger_Honshogi.Fu2;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro24), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu3;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro25), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu4;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro26), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu5;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro27), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu6;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro28), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu7;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro29), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu8;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro30), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu9;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P1, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro31), PieceType.P)));

            figKoma = (int)Finger_Honshogi.Fu10;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro32), PieceType.P))); //歩
            figKoma = (int)Finger_Honshogi.Fu11;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro33), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu12;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro34), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu13;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro35), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu14;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro36), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu15;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro37), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu16;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro38), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu17;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro39), PieceType.P)));
            figKoma = (int)Finger_Honshogi.Fu18;
            buffer_Sky.PutOverwriteOrAdd_Starlight(figKoma, new RO_Starlight(new RO_Star(Playerside.P2, Masu_Honshogi.Query_Basho(Masu_Honshogi.nfukuro40), PieceType.P)));


            {
                KifuNode newNode = new KifuNodeImpl(
                    Util_Sky258A.RootMove,        //ルートなので
                    new KyokumenWrapper(SkyConst.NewInstance(
                                            buffer_Sky,
                                            0//空っぽに戻すので、 0手済みに変更。
                                            ))
                    );

                string jsaFugoStr;
                Util_Functions_Server.SetCurNode_Srv(
                    mainGui.Link_Server.Model_Taikyoku,
                    mainGui.Model_Manual,
                    newNode,
                    out jsaFugoStr);
                repaintRequest.SetFlag_RefreshRequest();

                mainGui.Link_Server.Model_Taikyoku.Kifu.SetProperty(Word_KifuTree.PropName_Startpos, "9/9/9/9/9/9/9/9/9 b K1R1B1G2S2N2L2P9 k1r1b1g2s2n2l2p9 1");
            }
        }