nounai.output(spaghetiThinking);

趣味と実益を兼ねて将棋プログラム(研究ツールなど)を作ってみたいと思う私の試行錯誤とか勉強したことを綴ってゆく予定です。 主目的はプログラミングの経験値稼ぎですが、コンピュータ将棋の製作も目指してみたいとも考えています。

CSAフォーマットの不備・不明瞭点についての考察

ここ最近はCSAファイルから構文木、抽象構文木を構成するプログラムを書いています。その過程で気づいた仕様のあいまいさとかについてのメモ。勘違いもあるかも。なおCSAの仕様はVer.2.2を参照しています。


続きを読む

インタプリタっぽいもののα版完成&内部形式について

一応、棋譜のメタ情報(プレイヤ名のみ)と棋譜本体部分を抽出することには成功しました。動いたことによって駒を取ったのか?王手か?みたいな部分は全くなのですが、一応棋譜学習を行う上での必要最低限にはかなり近づいたんじゃないかと思います。αを名乗れるクオリティかどうかは疑問ですけども。


続きを読む

棋譜インタプリタっぽいものについて、その後の考察

前回の続き的なこと。もうちょい実装にしても設計にしてもいい形があるように思うので。


続きを読む

【DesignPattern】【Interpreter?】棋譜のインタプリタに使えそうっぽいものを書いてみた【State】

なんかデザインパターンぽいことをしつつインタプリタを書こうと思ったので。正直自分でもあまり理解できてない気がする。書いたコードのメリットもいまいち掴みきれてない。Stateパターン、あとメソッドチェーンのテクニックを(適切かどうかは置いといて)使っています。Interpreterも練習してみたかったし一部のアイデアは今回のコードに盛り込んだつもりだけど、多分Interpreterにはなってないです。どっちかというとFacadeとかに近いのかもしれない。

なんかトリッキーにやろうとしてごちゃごちゃしてる感じ。


続きを読む

指定範囲行の表示[シェルスクリプト]

テキストの範囲表示をしたい場合はcat, head, tail の組み合わせを使う必要があります(正確には後ろの2つでいけますけど)。そういう時とかにパッとコマンド1つで表示してやりたいなって思いました。まあ簡単なんですけど。


続きを読む