public void Go(string btime, string wtime, string byoyomi, string binc, string winc) { // ┏━━━━サンプル・プログラム━━━━┓ int latestTesumi = this.Game.Kifu.CountTesumi(this.Game.Kifu.CurNode); //現・手目済 this.PlayerInfo.Playerside = this.Game.Kifu.CountPside(latestTesumi); // 先後 //#if DEBUG // MessageBox.Show("["+latestTesumi+"]手目済 ["+this.owner.PlayerInfo.Playerside+"]の手番"); //#endif SkyConst src_Sky = this.Game.Kifu.NodeAt(latestTesumi).Value.ToKyokumenConst;//現局面 // + line Logger.Trace("将棋サーバー「" + latestTesumi + "手目、きふわらべ さんの手番ですよ!」 "); Result_Ajimi result_Ajimi = this.AjimiEngine.Ajimi(src_Sky); //------------------------------------------------------------ // わたしの手番のとき、王様が 将棋盤上からいなくなっていれば、投了します。 //------------------------------------------------------------ // // 将棋GUI『きふならべ』用☆ 将棋盤上に王さまがいないときに、本将棋で go コマンドが送られてくることは無いのでは☆? // switch (result_Ajimi) { case Result_Ajimi.Lost_SenteOh: // 先手の王さまが将棋盤上にいないとき☆ case Result_Ajimi.Lost_GoteOh: // または、後手の王さまが将棋盤上にいないとき☆ { //------------------------------------------------------------ // 投了 //------------------------------------------------------------ // // 図. // // log.txt // ┌──────────────────────────────────────── // ~ // │2014/08/02 2:36:21< bestmove resign // │ // // この将棋エンジンは、後手とします。 // 20手目、投了 を決め打ちで返します。 Playing.Send("bestmove resign"); //投了 } break; default: // どちらの王さまも、まだまだ健在だぜ☆! { //------------------------------------------------------------ // 指し手のチョイス //------------------------------------------------------------ bool enableLog = false; bool isHonshogi = true; // 指し手を決めます。 ShootingStarlightable bestMove = this.shogisasi.WA_Bestmove( enableLog, isHonshogi, this.Game.Kifu, this.PlayerInfo ); if (Util_Sky.isEnableSfen(bestMove)) { string sfenText = Util_Sky.ToSfenMoveText(bestMove); Logger.Trace("(Warabe)指し手のチョイス: bestmove=[" + sfenText + "]" + " 棋譜=" + KirokuGakari.ToJapaneseKifuText(this.Game.Kifu)); Playing.Send("bestmove " + sfenText); //指し手を送ります。 } else // 指し手がないときは、SFENが書けない☆ 投了だぜ☆ { Logger.Trace("(Warabe)指し手のチョイス: 指し手がないときは、SFENが書けない☆ 投了だぜ☆ww(>_<)" + " 棋譜=" + KirokuGakari.ToJapaneseKifuText(this.Game.Kifu)); // 投了w! Playing.Send("bestmove resign"); } } break; } // ┗━━━━サンプル・プログラム━━━━┛ }