先日のAbemaTVトーナメント大将戦の第二局である。
絶叫実況の藤森五段のリュウジンケンなる謎ワードが飛び出した場面。
竜神拳はこの漢字で合ってますか?
— 48 (@bleu48) 2020年4月18日
思いつきで言ってるだけですけど、イメージはそれでした。あんまり意味ないんですよ。笑
— 藤森哲也 (@tetsu_59) 2020年4月18日
王手で打った飛車を自陣に引くことで手渡しなしで強化する技ですね。
今回自玉近傍に竜を作ると再定義してみました。
# CSAファイルから指定する局面だけ抜き出す # 2020.4.21 竜神拳ポジションの検索 import shogi import shogi.CSA import argparse from tqdm import tqdm # read all kifu def read_kifu(kifu_list_file, output_file): f = open(kifu_list_file, 'r') fout = open(output_file, 'wt') for line in tqdm(f.readlines()): filepath = line.rstrip('\r\n') # print(filepath) # kifu = shogi.CSA.Parser.parse_file(filepath, encoding='utf-8')[0] kifu = shogi.CSA.Parser.parse_file(filepath)[0] board = shogi.Board() flag1 = 0 rsq = 0 for i, move in enumerate(kifu['moves']): board.push_usi(move) if shogi.Move.from_usi(move).drop_piece_type==shogi.ROOK and board.is_check(): # 王手で飛車を打つ flag1 = i rsq = shogi.Move.from_usi(move).to_square # 打った駒の位置 if flag1 + 2 == i and shogi.Move.from_usi(move).from_square == rsq: # その二手後 sq = shogi.Move.from_usi(move).to_square # 動いた先 ksq = board.king_squares[board.turn ^1] # 自玉の位置 if board.piece_type_at(sq)==shogi.PROM_ROOK and -3<shogi.rank_index(sq)-shogi.rank_index(ksq)<3 and -3<shogi.file_index(sq)-shogi.file_index(ksq)<3: print(filepath,i+1,file=fout) f.close() fout.close() return if __name__ == "__main__": parser = argparse.ArgumentParser(description='CSA 2 Checkout') parser.add_argument('kifu_list', type=str, help='kifu list') parser.add_argument('out_file', type=str, help='output file name') args = parser.parse_args() read_kifu(args.kifu_list, args.out_file)
floodgateで検索したところ2017年の75242棋譜中390回,2018年は47813棋譜中329回,2019年は106410棋譜中794回発生していることが分かりました。そんだけ