sgfファイル(囲碁)の中身を変更したい…してほしいんですが
囲碁の盤面の棋譜のファイルという物なんですが…
その事はどうでもいいんですが、
さっそくなんですが、sgfファイルの中身は↓
_____________________________
(;
GM[1]SZ[9]
PB[Human]
PW[GNU Go 3.6]
DT[2008-12-05]
RE[W+6.5]
KM[6.5]TM[]RU[Japanese]PC[]EV[]GN[]AP[CgfGoBan 1.04]
C[Time 0:12,0:00]
C[Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz]
C['T' means thinking time per a move.]
;B[cc]T[ 2];W[gg]T[ 0];B[cg]T[ 2];W[gc]T[ 0];B[ec]T[ 0];W[eg]T[ 0]
;B[de]T[ 8];W[ge]T[ 0])
_______________________________
というものなんです。(OSはXPです。メモ帳で開くと↑のように表示されます。)
これを以下のように変換して表示したいんです。(メモ帳で開く)
________________________________
+++++++++
+++++++++
++@+@+O++
+++++++++
+++@++O++
+++++++++
++@+O+O++
+++++++++
+++++++++
________________________________
(都合上↑のファイルを囲碁ファイルと呼びます)
どういう事かというと、sgfファイルの
;B[cc]T[ 2];W[gg]T[ 0];B[cg]T[ 2];W[gc]T[ 0];B[ec]T[ 0];W[eg]T[ 0]
;B[de]T[ 8];W[ge]T[ 0])
と書かれている行が囲碁ファイルに関連します。
例えばB[cc]は@が左上から右に向かって3番目、左上から下に向かって3番目
です。つまり、+++という事になります。
+++
++@
つまり、座標で考えると(3,3)は(c、c)という事です。
他の例だとW[ge]→座標で考えると(7、5)で(g、e)という事です。
+++++++
+++++++
+++++++
+++++++
++++++O
となります。このようにして
;B[cc]T[ 2];W[gg]T[ 0];B[cg]T[ 2];W[gc]T[ 0];B[ec]T[ 0];W[eg]T[ 0]
;B[de]T[ 8];W[ge]T[ 0])
を
+++++++++
+++++++++
++@+@+O++
+++++++++
+++@++O++
+++++++++
++@+O+O++
+++++++++
+++++++++
となるんです。
流れはこんな感じです。
java言語でこのように読み込んだsgfファイルを別のファイルで囲碁ファイルとして作成するプログラムがほしいんです。
出来れば作っていただいてソースを公開してほしいです。
厚かましいとは思いますが、どうぞよろしくお願いします。
お礼
回答ありがとうございます。 どういうわけか、「碁助」では、このSGFファイルは開けませんでした。 現在「彩」を使っていますが、棋譜は開けますが、ジャヴァを使用した問題同様には再現できません。 仕方ないのでしょうか。