public bool ParseDoMove(out Move out_move) { // コンソールからのキー入力を解析するぜ☆(^▽^) int caret = this.caret; int oldCaret = this.caret; Util_String.TobasuTangoToMatubiKuhaku(this.commandline, ref caret, "do "); // うしろに続く文字は☆(^▽^) if (!LisPlay.MatchFenMove(PureSettei.fenSyurui, this.commandline, ref caret, out out_move)) { this.caret = oldCaret; //String2 str = new String2Impl(); //str.Append("指し手のパースに失敗だぜ☆(^~^)! #鷺 commandline=["); //str.Append(commandline); //str.Append("] caret=["); //str.Append(caret); //str.Append("]"); //syuturyoku.AppendLine(str.ToContents()); //Util_Machine.Flush(); //throw new Exception(str.ToContents()); return(false); } // do コマンドだった場合☆ this.caret = caret; this.CommentCommandline();// コマンドの誤発動防止 return(true); }
public static bool TryMoveCmd2(out Move out_move, string line) { // うしろに続く文字は☆(^▽^) int caret = 0; Util_String.TobasuTangoToMatubiKuhaku(line, ref caret, "move "); string line2 = line.Substring(caret).Trim(); // move 912 といった数字かどうか☆(^~^) int ssSuji; if (int.TryParse(line2, out ssSuji)) { out_move = (Move)ssSuji; return(true); } // 数字でなければ、 move B2B3 といった文字列か☆(^~^) if (!LisPlay.MatchFenMove(PureSettei.fenSyurui, line, ref caret, out out_move)) { out_move = Move.Toryo; return(false); } return(true); }
/// <summary> /// 1手作るぜ☆(^~^) /// </summary> public static void CreateMove(string dfen, out Move out_move) { int caret = 0; if (!LisPlay.MatchFenMove(PureSettei.fenSyurui, dfen, ref caret, out out_move)) { out_move = Move.Toryo;//エラー } }
/// <summary> /// moves 以降の符号を指定しろだぜ☆(^~^) /// 「手目」は最後まで進んでしまうぜ☆(^~^) /// </summary> /// <param name="moves"></param> public static void Tukurinaosi_RemakeKifuByMoves(string moves) { PureMemory.mvs_endTeme = 0; string[] fugoItiran = moves.Split(' '); foreach (string fugo in fugoItiran) { int caret = 0; Move move; if (!LisPlay.MatchFenMove(PureSettei.fenSyurui, fugo, ref caret, out move)) { throw new System.Exception($"指し手のパースエラー fugo=[{ fugo }]"); } //MoveSeiseiAccessor.AddKifu( // move, // MoveType.N00_Karappo, // Komasyurui.Yososu // FIXME: 取られた駒も調べたい // ); PureMemory.mvs_ssAr[PureMemory.mvs_endTeme] = move; PureMemory.mvs_endTeme++; } }