public RO_Star(Playerside pside, SyElement masu, Komahaiyaku185 haiyaku) { this.startype = BoardItem.Koma; this.pside = pside; this.masu = masu; this.komasyurui = Util_Komahaiyaku184.Syurui(haiyaku); }
/// <summary> /// FIXME:使ってない? /// </summary> /// <param name="move"></param> /// <returns></returns> public static string ChangeMoveTo_KsString_ForLog(IMove move) { string moveInfo; RO_Star koma = Util_Starlightable.AsKoma(move.Now); moveInfo = Util_Komasyurui14.ToIchimoji(Util_Komahaiyaku184.Syurui(koma.Haiyaku)); return(moveInfo); }
/// <summary> /// 「▲7六歩」といった符号にして返します。 /// </summary> /// <param name="node">keyで指し手の指定、かつ、1つ前のノードに移動するのに使います。</param> /// <param name="kyokumenWrapper">現局面です。</param> /// <returns></returns> public static string ToMoveStrJsa( Node <IMove, KyokumenWrapper> node //KyokumenWrapper kyokumenWrapper ) { RO_Star koma = Util_Starlightable.AsKoma(((IMove)node.Key).LongTimeAgo); JsaFugoImpl jsaFugo = Array_JsaFugoCreator15.ItemMethods[(int)Util_Komahaiyaku184.Syurui(koma.Haiyaku)](node.Key, node.Value // kyokumenWrapper, ); //「▲2二角成」なら、馬(dst)ではなくて角(src)。 return(Util_Translator_JsaFugo.ToString_UseDou(jsaFugo, node)); }
public static string ChangeMoveTo_KsString_ForLog(IMove move, Playerside pside_genTeban) { string result; if (null == move) { result = "合法手はありません。"; goto gt_EndMethod; } RO_Star koma = Util_Starlightable.AsKoma(move.Now); // 指し手を「△歩」といった形で。 result = Util_Komasyurui14.ToNimoji(Util_Komahaiyaku184.Syurui(koma.Haiyaku), pside_genTeban); gt_EndMethod: return(result); }
public static Json_Val ToJsonVal(IMoveHalf light) { Json_Obj obj = new Json_Obj(); RO_Star koma = Util_Starlightable.AsKoma(light.Now); // プレイヤーサイド obj.Add(new Json_Prop("pside", Conv_Playerside.ToSankaku(koma.Pside)));// ▲△ // マス obj.Add(new Json_Prop("masu", Conv_SyElement.ToMasuNumber(koma.Masu)));// ▲△ // 駒の種類。歩、香、桂…。 obj.Add(new Json_Prop("syurui", Conv_Komasyurui.ToStr_Ichimoji(Util_Komahaiyaku184.Syurui(koma.Haiyaku))));// ▲△ return(obj); }
public static void Komamove1a_49Gui( out PieceType toSyurui, out IMoveHalf dst, Shape_BtnKoma btnKoma_Selected, Shape_BtnMasu btnMasu, MainGui_Csharp mainGui ) { // 駒の種類 if (mainGui.Naru) { // 成ります toSyurui = Util_Komasyurui14.NariCaseHandle[(int)Util_Komahaiyaku184.Syurui(Util_Starlightable.AsKoma(mainGui.Shape_PnlTaikyoku.MouseStarlightOrNull2.Now).Haiyaku)]; mainGui.SetNaruFlag(false); } else { // そのまま toSyurui = Util_Komahaiyaku184.Syurui(Util_Starlightable.AsKoma(mainGui.Shape_PnlTaikyoku.MouseStarlightOrNull2.Now).Haiyaku); } // 置く駒 { dst = new RO_Starlight( //btnKoma_Selected.Finger, new RO_Star( Util_Starlightable.AsKoma(mainGui.Model_Manual.GuiSkyConst.StarlightIndexOf(btnKoma_Selected.Finger).Now).Pside, btnMasu.Zahyo, toSyurui ) ); } //------------------------------------------------------------ // 「取った駒種類_巻戻し用」をクリアーします。 //------------------------------------------------------------ mainGui.Shape_PnlTaikyoku.MousePos_FoodKoma = null; }
/// <summary> /// ************************************************************************************************************************ /// HTML出力。(これは作者のホームページ用に書かれています) /// ************************************************************************************************************************ /// </summary> public static string CreateHtml(MainGui_Csharp mainGui) { StringBuilder sb = new StringBuilder(); sb.AppendLine("<div style=\"position:relative; left:0px; top:0px; border:solid 1px black; width:250px; height:180px;\">"); // 後手の持ち駒 sb.AppendLine(" <div style=\"position:absolute; left:0px; top:2px; width:30px;\">"); sb.AppendLine(" △後手"); sb.AppendLine(" <div style=\"margin-top:10px; width:30px;\">"); sb.Append(" "); SkyConst siteiSky = mainGui.Model_Manual.GuiSkyConst; siteiSky.Foreach_Starlights((Finger finger, IMoveHalf ml, ref bool toBreak) => { RO_Star koma = Util_Starlightable.AsKoma(ml.Now); if (Conv_SyElement.ToOkiba(koma.Masu) == Okiba.Gote_Komadai) { sb.Append(Util_Komasyurui14.Fugo[(int)Util_Komahaiyaku184.Syurui(koma.Haiyaku)]); } }); sb.AppendLine(" </div>"); sb.AppendLine(" </div>"); // 将棋盤 sb.AppendLine(" <div style=\"position:absolute; left:30px; top:2px; width:182px;\">"); sb.AppendLine(" <table>"); for (int dan = 1; dan <= 9; dan++) { sb.Append(" <tr>"); for (int suji = 9; 1 <= suji; suji--) { bool isSpace = true; siteiSky.Foreach_Starlights((Finger finger, IMoveHalf ml, ref bool toBreak) => { RO_Star koma2 = Util_Starlightable.AsKoma(ml.Now); int suji2; Util_MasuNum.TryMasuToSuji(koma2.Masu, out suji2); int dan2; Util_MasuNum.TryMasuToDan(koma2.Masu, out dan2); if ( Conv_SyElement.ToOkiba(koma2.Masu) == Okiba.ShogiBan && //盤上 suji2 == suji && dan2 == dan ) { if (Playerside.P2 == koma2.Pside) { sb.Append("<td><span class=\"koma2x\">"); sb.Append(Util_Komasyurui14.Fugo[(int)Util_Komahaiyaku184.Syurui(koma2.Haiyaku)]); sb.Append("</span></td>"); isSpace = false; } else { sb.Append("<td><span class=\"koma1x\">"); sb.Append(Util_Komasyurui14.Fugo[(int)Util_Komahaiyaku184.Syurui(koma2.Haiyaku)]); sb.Append("</span></td>"); isSpace = false; } } }); if (isSpace) { sb.Append("<td> </td>"); } } sb.AppendLine("</tr>"); } sb.AppendLine(" </table>"); sb.AppendLine(" </div>"); // 先手の持ち駒 sb.AppendLine(" <div style=\"position:absolute; left:215px; top:2px; width:30px;\">"); sb.AppendLine(" ▲先手"); sb.AppendLine(" <div style=\"margin-top:10px; width:30px;\">"); sb.Append(" "); siteiSky.Foreach_Starlights((Finger finger, IMoveHalf ml, ref bool toBreak) => { RO_Star koma = Util_Starlightable.AsKoma(ml.Now); if (Conv_SyElement.ToOkiba(koma.Masu) == Okiba.Sente_Komadai) { sb.Append(Util_Komasyurui14.Fugo[(int)Util_Komahaiyaku184.Syurui(koma.Haiyaku)]); } }); sb.AppendLine(" </div>"); sb.AppendLine(" </div>"); // sb.AppendLine("</div>"); return(sb.ToString()); }