public void Setumei(bool isSfen, StringBuilder syuturyoku) { // 初期局面を作成 Kyokumen ky2 = new Kyokumen(); int caret = 0; ky2.ParsePositionvalue(isSfen, SyokiKyokumenFen, ref caret, false, false, out string moves, syuturyoku); // 初期局面を出力 syuturyoku.AppendLine("初期局面"); Util_Information.Setumei_NingenGameYo(ky2, syuturyoku); int temeMade = 1; foreach (Move ss in this.SsList) { syuturyoku.Append("("); syuturyoku.Append(temeMade.ToString()); syuturyoku.Append(")"); ConvMove.AppendFenTo(isSfen, ss, syuturyoku); syuturyoku.Append(" "); temeMade++; } syuturyoku.AppendLine(); }
/// <summary> /// 読み筋を返すぜ☆(^~^) /// </summary> /// <param name="sentoNantemade">初期局面からのリンクリストなので、どの「図はn手まで」戻すか☆</param> /// <returns></returns> public void ScanYomisuji(bool isSfen, int sentoNantemade, StringBuilder syuturyoku) { // 先頭(投了、初期局面、図は0手まで)まで戻るぜ☆ Nanteme nanteme = this; for (; null != nanteme.Ittemae; nanteme = nanteme.Ittemae) { } // 先頭から今までの読み筋をつなげるぜ☆(^▽^) int zuhaNantemade = 0; // 図はn手まで for (; null != nanteme;// 一番最後まで回すぜ☆(^▽^) nanteme = nanteme.Ittego) { if (sentoNantemade <= zuhaNantemade) { // 「図はn手まで」の数字 syuturyoku.Append($"({zuhaNantemade})"); ConvMove.AppendFenTo(isSfen, nanteme.Move, syuturyoku); syuturyoku.Append(" "); // おまけ syuturyoku.Append($"{AbstractConvMoveType.Setumei(nanteme.MoveType)} "); } zuhaNantemade++; } }
public void AppendMovesTo(bool isSfen, StringBuilder syuturyoku) { foreach (Move ss in SsList) { ConvMove.AppendFenTo(isSfen, ss, syuturyoku); syuturyoku.Append(" "); } }
public void Setumei(bool isSfen, StringBuilder syuturyoku) { for (int i = 0; i < this.Size; i++) { ConvMove.AppendFenTo(isSfen, this.SasiteItiran[i], syuturyoku); if (i + 1 < this.Size) { syuturyoku.Append(" "); } } }
public static void Setumei(bool isSfen, string header, List <MoveKakucho> sslist, StringBuilder syuturyoku) { syuturyoku.AppendLine(header); syuturyoku.AppendLine("┌──────────┐"); foreach (MoveKakucho ss in sslist) { ConvMove.AppendFenTo(isSfen, ss.Move, syuturyoku); syuturyoku.AppendLine(); } syuturyoku.AppendLine("└──────────┘"); #if DEBUG MoveGenBunseki.Instance.Setumei(syuturyoku); #endif }
/// <summary> /// 定跡ファイル /// </summary> /// <returns></returns> public void ToContentsLine_NotUnity(bool isSfen, StringBuilder syuturyoku) { ConvMove.AppendFenTo(isSfen, this.Move, syuturyoku); syuturyoku.Append(" "); if (this.Ousyu == Move.Toryo) { syuturyoku.Append("none");// FIXME: toryo と none の区別に未対応 } else { ConvMove.AppendFenTo(isSfen, this.Ousyu, syuturyoku); } syuturyoku.Append(" "); syuturyoku.Append(((int)this.Hyokati).ToString());// enum型の変数名で出力されないように、int型に変換してから文字列にするぜ☆(^▽^) syuturyoku.Append(" "); syuturyoku.Append(this.Fukasa.ToString()); syuturyoku.Append(" "); syuturyoku.AppendLine(this.Version.ToString()); }
public void ToContents_NotUnity(bool isSfen, StringBuilder syuturyoku) { ConvMove.AppendFenTo(isSfen, Move, syuturyoku); syuturyoku.Append(" "); if (Ousyu == Move.Toryo) { syuturyoku.Append("none");// FIXME: toryo と none の区別に未対応 } else { ConvMove.AppendFenTo(isSfen, Ousyu, syuturyoku); } syuturyoku.Append(" "); syuturyoku.Append(Version.ToString()); syuturyoku.Append(" "); syuturyoku.Append(Kati.ToString()); syuturyoku.Append(" "); syuturyoku.Append(Hikiwake.ToString()); syuturyoku.Append(" "); syuturyoku.AppendLine(Make.ToString()); }
public void TusinYo(bool isSfen, StringBuilder syuturyoku) { // 初期局面を作成 Kyokumen ky2 = new Kyokumen(); int caret = 0; ky2.ParsePositionvalue(isSfen, SyokiKyokumenFen, ref caret, false, false, out string moves, syuturyoku); // 初期局面を出力 syuturyoku.Append("< kifu, 初期局面, "); ky2.TusinYo_Line(isSfen, syuturyoku); syuturyoku.Append("< kifu, move = "); int temeMade = 1; foreach (Move ss in this.SsList) { ConvMove.AppendFenTo(isSfen, ss, syuturyoku); syuturyoku.Append(" "); temeMade++; } syuturyoku.AppendLine(); }