Skip to content

Repository files navigation

@mito-shogi/tsshogi-jsa

本ライブラリは、独自形式の棋譜データを、tsshogiのRecord型へとスマートに変換するためのものです。将棋の記録管理や解析を、より洗練された形で行いたい方におすすめです。

対応データ

  • 将棋連盟ライブ中継アプリ
  • 名人戦棋譜速報
    • 名人戦
    • 順位戦
  • 囲碁・将棋チャンネル
    • 女流王将戦
    • 銀河戦
サービス 棋戦 一覧 棋譜
将棋連盟ライブ中継アプリ 解説があるもののみ decodeBSAList importBSA
名人戦棋譜速報 名人戦/順位戦 decodeBIFList importBIF
囲碁・将棋チャンネル 女流王将戦/銀河戦 decodeIKFList importIKF

導入方法

GitHub Package Registryを利用しているため、事前に.npmrcの設定またはnpm loginが必要です。

# .npmrc
registry=https://npm.pkg.github.com/mito-shogi

インストールは以下のコマンドからお選びいただけます。

# npm
npm install @mito-shogi/tsshogi-jsa

# yarn
yarn add @mito-shogi/tsshogi-jsa

# pnpm
pnpm install @mito-shogi/tsshogi-jsa

# bun
bun add @mito-shogi/tsshogi-jsa

使い方

import { importJSA } from '@mito-shogi/tsshogi-jsa'
import { Record } from 'tsshogi'

const buffer: Buffer = Buffer.from(XXXXXX) // fetch等でArrayBufferを取得しておく
const record: Record | Error = importJSA(buffer)
if (record instanceof Error) return
// recordを使って処理

このようにして、バッファーをバイナリ形式の棋譜データをRecord型へ変換できます。

変換結果の例

棋戦:第13期竜王戦七番勝負第7局
対局日:2000/12/25
開始日時:2000/12/25 09:01:00
持ち時間:480
先手持ち時間:480
後手持ち時間:480
手数:101
終了日時:2000/12/26 09:01:00
場所:神奈川 鶴巻温泉 陣屋
先手:藤井 猛
後手:羽生 善治
手合割:平手
手数----指手---------消費時間--
   1 7六歩(77)   ( 0:00/00:00:00)
*藤井猛(ふじい・たけし)竜王は1970年9月29日生まれ。群馬県沼田市出身。1986年、西村一義九段門下で奨励会入会。1991年、四段。2000年、九段。
   2 3四歩(33)   ( 0:00/00:00:00)
*挑戦者の羽生善治(はぶ・よしはる)五冠は、1970年9月27日生まれ。埼玉県所沢市出身。1982年、二上達也九段門下で奨励会入会。1985年、四段。1994年、九段。
   3 6六歩(67)   ( 0:00/00:00:00)
*指す手は決まっていたのだろうが☗6六歩に4分の考慮。気合いの高まりを待っていたのか。
   4 8四歩(83)   ( 0:00/00:00:00)
*羽生は本シリーズ、藤井の四間飛車に対して、急戦系で3勝、左美濃1敗、地下鉄飛車1敗と、ここまで全て急戦で勝ってきている(他1局は藤井の三間飛車に急戦で負け)。最終局はどんな作戦に命運を託すのか。
   5 6八飛(28)   ( 0:00/00:00:00)
*藤井はやはり四間飛車。大一番、命運をたくすのはこれしかないだろう。
   6 6二銀(71)   ( 0:00/00:00:00)
*この二人は数カ月前の王座戦でもタイトルを争っている。その時藤井は全局四間飛車。対する羽生は穴熊模様で1勝1敗、ミレニアムで1敗、急戦で2勝と、やはり急戦で勝ち星を稼ぎ王座を防衛した。
   7 1六歩(17)   ( 0:00/00:00:00)
*四間飛車に革命を起こした藤井システムを象徴する手。玉の移動は後回しにして、相手の形を打診する。
   8 1四歩(13)   ( 0:00/00:00:00)
*羽生は少考6分端を受けた。当時の先崎学八段による観戦記には、意を決したような力強い手付きであった、と描写されている。
   9 3八銀(39)   ( 0:00/00:00:00)
*やはり居玉のままで駒組みを進める。
  10 4二玉(51)   ( 0:00/00:00:00)
*穴熊の可能性は低くなったが、左美濃、右四間、急戦など、様々な作戦の含みを残しつつ駒組みを進めている。
  11 7八銀(79)   ( 0:00/00:00:00)
  12 3二玉(42)   ( 0:00/00:00:00)
  13 6七銀(78)   ( 0:00/00:00:00)
  14 5二金(61)   ( 0:00/00:00:00)
  15 4八玉(59)   ( 0:00/00:00:00)
*ここで玉を移動した。これは急戦を警戒している。穴熊や左美濃を警戒するなら☗4六歩や☗5八金左だが、急戦にこられたときにマイナスになる恐れがある。
  16 5四歩(53)   ( 0:00/00:00:00)
*まだ急戦と左美濃を天秤に掛けている。穴熊の可能性もなくなったわけではない。
  17 3九玉(48)   ( 0:00/00:00:00)
  18 5三銀(62)   ( 0:00/00:00:00)
*33分考えて右銀を☖5三銀と上がった。これで左銀を4二から5三へと繰り出していく形の左銀急戦は消えた。
  19 4六歩(47)   ( 0:00/00:00:00)
*左銀急戦が消えたのを見て、今度は穴熊、左美濃への警戒の手。序盤から細心の注意を払った手順が続く。
  20 7四歩(73)   ( 0:00/00:00:00)
*急戦を匂わせる手。当時の観戦記には、このあたりで二日目の勝負どころのような緊張感が漂っていた、とある。
  21 2八玉(39)   ( 0:00/00:00:00)
*☖7四歩を見て玉を上がった。右銀急戦に備えている。反面左美濃に対する玉頭戦が挑みにくくなる。
  22 8五歩(84)   ( 0:00/00:00:00)
*飛車先をここで決めた。そろそろ羽生の作戦が明らかになる。
  23 7七角(88)   ( 0:00/00:00:00)
  24 2四歩(23)   ( 0:00/00:00:00)
*羽生は左美濃を選択。ここまで急戦で勝ち星を稼いでいるが☗2八玉を見て、最後はこの形に命運を託す。
  25 5八金(69)   ( 0:00/00:00:00)
*じっくり43分の考慮で金を上がる。先の展開を考えたものか。
  26 2三玉(32)   ( 0:00/00:00:00)
*四間飛車に対する左美濃は、角筋を避けながら2三に玉を囲う形が一般的。別名天守閣美濃とも呼ばれる。
  27 3六歩(37)   ( 0:00/00:00:00)
  28 3二銀(31)   ( 0:00/00:00:00)
  29 2六歩(27)   ( 0:00/00:00:00)
*天守閣美濃の弱点は玉頭。銀冠から将来☗2五歩と攻める筋を狙っている。
  30 7二飛(82)   ( 0:00/00:00:00)
*49分の長考で☖7二飛。☖7五歩☗同歩☖6四銀の仕掛けを見せて揺さぶりを掛ける。
  31 7八飛(68)   ( 0:00/00:00:00)
*先の仕掛けに備えた。
  32 4四歩(43)   ( 0:00/00:00:00)
*☖4四歩は、☖4二銀~☖3三銀と4枚美濃に組もうという手。30手目で単に☖4四歩から4枚美濃を目指す手も考えられたが、その場合、☖4四歩に☗6五歩☖4三金☗4七金☖4二銀のように進んだとき、☗5六銀と6四の地点を狙われて、☖6二飛と受けるしかないのが少々不満。☖7二飛☗7八飛の交換を入れておけば、その筋がないため確実に4枚美濃に組める。
  33 4七金(58)   ( 0:00/00:00:00)
  34 4三金(52)   ( 0:00/00:00:00)
  35 3七桂(29)   ( 0:00/00:00:00)
  36 4二銀(53)   ( 0:00/00:00:00)
*☖6四銀と出て仕掛けを狙う手もあったが、後手番ではかなり難しいとされる。やはり銀は引いて4枚美濃の構想だった。
  37 8八飛(78)   ( 0:00/00:00:00)
*☖4二銀と引いたので☖7五歩の仕掛けに備える必要がなくなった。そこで飛車を8筋で活用する。後手が黙っていれば☗8六歩と仕掛けて先手良し。
  38 7三桂(81)   ( 0:00/00:00:00)
*33分の長考で☖7三桂。後手は☗8六歩に備える必要があったが、自然な☖8二飛は☗6五歩~☗5六歩~☗5五歩のような筋で☖同歩は☗5五角で先手良し。こうなると序盤の☖7四歩をとがめられた格好。そこで☖7三桂と少しひねった手で☗8六歩に備えた。
*ここで1日目が終了。次の一手が封じ手である。
  39 5六銀(67)   ( 0:00/00:00:00)
*封じ手は1時間26分の長考で☗5六銀。ここで☗8六歩と行くのは、☖8二飛☗8五歩☖同飛☗同飛に☖同桂が角に当たってまずい。☗5六歩は考えられ、じっくりとした戦いになりそう。本譜は積極的に攻勢を目指した手で、これぞ藤井システムの思想。激しい戦いになりそうだ。
  40 3三銀(42)   ( 0:00/00:00:00)
*後手は4枚美濃が完成。
  41 2七銀(38)   ( 0:00/00:00:00)
*先手は銀冠を目指す。
  42 3一角(22)   ( 0:00/00:00:00)
  43 3八金(49)   ( 0:00/00:00:00)
*先手は銀冠が完成。後手も☖1二玉~☖2三銀~3二金とさらに固めたいが、☖1二玉☗6五歩☖2三銀のときに、☗8六歩☖同歩☗同角と仕掛けられ、以下☖8二飛に☗3一角成☖8八飛成☗4一馬の大捌きで先手良し。後手はここにきて指す手が難しい。
  44 9四歩(93)   ( 0:00/00:00:00)
*☗9五角と出る筋を消して、7二の飛車の動きを楽にした意味があるが、他に有効な手がないともいえる。
  45 6五歩(66)   ( 0:00/00:00:00)
*角筋を通して先手の陣形は理想形。後手が黙っていれば☗4五歩から攻めかかるのだろう。
  46 5五歩(54)   ( 0:00/00:00:00)
*先手の理想形からの仕掛けは許せない、とばかりに後手からついに動いた。ここまでの消費時間は☗4時間36分、☖5時間42分。藤井は本局、意識して終盤に時間を残したと後に語っている。
  47 同 角(77)   ( 0:00/00:00:00)
*☗同銀は☖6五桂なので当然☗同角。
  48 5四金(43)   ( 0:00/00:00:00)
*角を引けば☖6五桂と活用する狙い。
  49 4五歩(46)   ( 0:00/00:00:00)
*そこで先手も強く反発する。☖5五金と角を取るのは、☗同銀☖4五歩☗同桂で先手の調子が良さそうだ。
  50 同 歩(44)   ( 0:00/00:00:00)
*☗同桂は☖4四銀で角を引くと☖5五歩で押さえ込まれてしまいそう。
  51 6六角(55)   ( 0:00/00:00:00)
*同歩と取らせたのは大きな利かしとみて、じっと手を戻した。
  52 4四銀(33)   ( 0:00/00:00:00)
*4五の地点に数を足す。先手は次に☖5五歩と打たれてはいけない。
  53 4六歩打     ( 0:00/00:00:00)
*合わせ歩の手筋で☖5五歩には☗4五銀を用意。対して☖4六歩☗同金は先手の中央の勢力が厚くなりそう。
  54 2二角(31)   ( 0:00/00:00:00)
*そこで後手も応援を送る。盤の中央で大決戦になりそうだ。
  55 4五歩(46)   ( 0:00/00:00:00)
*ここまできたらどちらも後には戻れない。しばらくは一本道で手が進む。
  56 5五銀(44)   ( 0:00/00:00:00)
  57 同 銀(56)   ( 0:00/00:00:00)
  58 同 金(54)   ( 0:00/00:00:00)
  59 同 角(66)   ( 0:00/00:00:00)
  60 同 角(22)   ( 0:00/00:00:00)
  61 9八飛(88)   ( 0:00/00:00:00)
*☖5五銀からここまで一気に進んだ。角金交換の駒損の上に飛車が隠居してしまったが、藤井はこれで指せるとみていた。控室の棋士達をうならせたという素晴らしい大局観。
  62 8六歩(85)   ( 0:00/00:00:00)
*この突き捨てようとした歩が、後に重要な意味を持ってくる。
  63 2五歩(26)   ( 0:00/00:00:00)
*☖8六歩を緩手とみて猛攻を開始。対して☖8七歩成の攻め合いか、素直に☖同歩と取っておくか。
  64 同 歩(24)   ( 0:00/00:00:00)
*☖8七歩成の攻め合いは☗4八飛が幸便で指しにくかったか。
  65 5六金(47)   ( 0:00/00:00:00)
*玉が角に睨まれたままでは戦えない。玉の囲いは薄くなるが振り飛車らしい力強い金上がりで角を追う。
  66 2二角(55)   ( 0:00/00:00:00)
  67 4四歩(45)   ( 0:00/00:00:00)
*軽い突きだしで角を誘い出す。
  68 同 角(22)   ( 0:00/00:00:00)
  69 4五金(56)   ( 0:00/00:00:00)
*先手を取りながら金を繰り出し後手玉に迫る。このあたり当時の控室では、藤井がかなりいいのではとの評判だったという。確かに流れるような美しい手順だ。
  70 4二飛(72)   ( 0:00/00:00:00)
*角を逃げていたのでは☗4四歩と押さえ込まれてつらい。羽生は開き直って死中に活を見いだすような勝負手を放った。
  71 3四金(45)   ( 0:00/00:00:00)
*後の検討では、ここで☗4八飛と応援を送れば先手がハッキリ優勢だったとされている。しかし藤井は、より過激な手を選んだ。
  72 同 玉(23)   ( 0:00/00:00:00)
  73 4五銀打     ( 0:00/00:00:00)
*金を捨てて銀を打ちなおす。部分的にはものすごい損だが、手番を握り続けて寄せてしまえばいいという発想。
  74 2三玉(34)   ( 0:00/00:00:00)
*ここで☗3四金と打てば角を取り返せるが、手番が相手に渡るのが気に入らない。
  75 2四歩打     ( 0:00/00:00:00)
*そこでさらに攻め続ける。☖同玉なら今度こそ☗4四銀と角を取り☖同飛に☗3五角や☗3五金で攻めが続く。
  76 1二玉(23)   ( 0:00/00:00:00)
  77 2三金打     ( 0:00/00:00:00)
*厳しい攻めが続くが、攻めきれるかどうかはギリギリなところ。両者必死のせめぎ合い。
  78 同 銀(32)   ( 0:00/00:00:00)
  79 同 歩(24)   ( 0:00/00:00:00)
  80 同 玉(12)   ( 0:00/00:00:00)
  81 4三歩打     ( 0:00/00:00:00)
*☖同飛はもちろん☗3四銀打の王手飛車。
  82 5二飛(42)   ( 0:00/00:00:00)
  83 4四銀(45)   ( 0:00/00:00:00)
*攻めるだけ攻めてから角を取る。
  84 5七飛(52)   ( 0:00/00:00:00)
*寄せてみろ、と開き直った。
  85 2四銀打     ( 0:00/00:00:00)
*☖同玉は☗3五角の王手竜。決まったように見えるが。
  86 3四玉(23)   ( 0:00/00:00:00)
*対して玉を引くのは上から押さえられて寄ってしまう。しかし、ギリギリのこの手があった。
  87 3五銀(24)   ( 0:00/00:00:00)
  88 2三玉(34)   ( 0:00/00:00:00)
*ここで☗2四銀☖3四玉を繰り返すのは、連続王手の千日手で反則。先手はなにか手を変えなければいけない。
  89 4二角打     ( 0:00/00:00:00)
*控室でも誰も予想していなかったという角打ちで千日手を打開した。次に☗2四角成とされてはいけないので、☖同金と取るか、☖3三歩と受けるか。
  90 同 金(41)   ( 0:00/00:00:00)
*羽生は残り時間9分のうち4分を使って☖同金。
  91 同 歩(43)   ( 0:00/00:00:00)
*次に☗2五桂と跳ねられれば後手玉は受けなし。☖2二歩と受けても☗3三銀成から詰み、☖1二玉と早逃げしても☗2三歩で必死となる。
  92 6六角打     ( 0:00/00:00:00)
*いかにも羽生らしい、曲線的な攻防手。3三の地点に数を足して、詰み筋を防いでいる。☗2五桂なら☖2二歩と受けられ、先手玉も相当に怖い形。先手は出来れば桂を跳ねずに一歩を入手したい。
  93 8六歩(87)   ( 0:00/00:00:00)
*その貴重な一歩がここに落ちていた。31手前に突き捨てようとした歩が決め手になるとは、なんという運命のいたずら。
  94 1二玉(23)   ( 0:00/00:00:00)
*それでも羽生は諦めない。最後の2分を使って早逃げ。
  95 2四歩打     ( 0:00/00:00:00)
  96 2二金打     ( 0:00/00:00:00)
*懸命に粘る。
  97 4三銀(44)   ( 0:00/00:00:00)
*☗2三金からの詰めろ。後手はほぼ受けがない。
  98 3七飛成(57) ( 0:00/00:00:00)
*羽生は自玉は受けなしとみて、最後の突撃。
  99 同 金(38)   ( 0:00/00:00:00)
 100 3九角打     ( 0:00/00:00:00)
*一瞬ハッとする手だが。
 101 2九玉(28)   ( 0:00/00:00:00)
*この手を見て羽生が投了を告げた。消費時間は藤井7時間51分、羽生7時間59分。先手玉は9八の飛がよく利いており詰まない。後手玉は受けても一手一手の寄り。藤井は最強の相手を破り、史上初の竜王戦3連覇を達成した。終局後のインタビューでは、全身全霊を尽くした激闘を物語るかのように、藤井の声は震えていたという。
 102 投了         ( 0:00/00:00:00)

現在、使用しているライブラリがCSA形式にメタデータを埋め込んだ場合に対局開始時間等が正しく出力されないバグがあります

参考文献

ライセンス

MIT License

About

将棋連盟ライブ中継や名人戦棋譜速報などの独自形式棋譜を tsshogi の Record 型へ変換するライブラリ

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages