nounai.output(spaghetiThinking);

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

CSAのインタプリタ的なものを作ってみた

所要時間は3時間ほど。コードを書いては没書いては没という作業を繰り返して今に至ります。没コードを合わせると1週間くらいはゆうに費やしているような気がします。

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

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

【リバーシ】原始的にAI作ってみた

そろそろAIっぽいこともしてみようと思った次第。

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

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

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

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

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

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

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

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

MVCっぽい考察

前回、前々回の実装を通して、将棋をするための基盤(Model)部分の設計についてそれなり考えられるようになってきました。前回前々回にやってたことはMVCにおけるModel部分ですが、今回は盤の部分や駒の操作(Moveみたいなこと)についてです。MVCのVも絡んだ、…

【DesignPattern】 Decorator実装してみた in 将棋(2) 【Python】

前回の続きもの。同一方向への利きについてはループで走査可能となるようなやり方にしました。

将棋 de Decorator実装してみた

将棋関係のプログラミングで何か題材ないかなと思い、実装してみました。

Singletonの実装

だいぶうさんくさいけど実装してみた。欠陥コード。

81Dojoブログパーツの導入

最近は将棋ウォーズよりも81Dojoを使うことが多いです。なにより秒読みがあるのが嬉しいですよね。将棋ウォーズは持ち時間が短すぎて、どうしてもひらめきで指さざるを得ないので。 ときに、森下九段は米長先生の研究会で「10秒将棋は将棋が弱くなるからやり…

棋譜フォーマットについて[JSON]

このような棋譜フォーマットに関する提案を見つけました。基本的に知恵袋はあまり好きではないんですが、これに関しては非常に面白かったので取り上げてみます。

csaファイルの読み込み - 改行コードとか前段階的な処理とか

改行コードの判別+各行のふるい分け(バージョン/開始局面など)を簡易的に実装してみた。 OS標準の改行コードと、棋譜データ内で使用される改行コードは必ずしも同一ではない、ってことがちょっとやっかいですね。私がコード書いてる環境はLinux(改行=LF)…

【棋譜解析ねた】Interpreter pattern

少なくともcsaの読み込みで需要かありそう、とうことでWikipediaのInterpreterパターンのコード例をためしに実装してみた。 なんか、感想としては(逆ポーランドのおかげなのかもしれんけど、)こんなにあっさりインタプリタ実装できちゃっていいの?と言う…

棋譜アーカイブの月別分類

floodgateで入手できる棋譜はアーカイブされてて非常に利用しやすいです。日付ごと、対局者ごとにまとめられているのがありますが、リンクを1個1個クリックしていくのがあまりにめんどいので、ひとまず2012年、2011年分の1年区切りのアーカイブを落としてみ…

Bonanza 6.0 のビルドエラー

client以下のソースをmakeしたらエラーだった。

棋譜の収集とかフォーマットについて

棋譜を学習するにもまずは棋譜データ、あとそれを読み込むためのプログラムがないと始まらない。 棋譜の対象としては 棋譜でーたべーす floodgate 手元のボナンザに指させて地道に収集 自分が対戦して保管してる棋譜(およそ180局) 手元のボナンザを使って棋…

5/16(Thu) - 継承/インタフェースの使いどころについて

少しはオブジェクト指向の理解も始まりだした、かな?

5/11(Sat) - クラス設計についての考察

クラス設計について、ちょろっと考えたこと。

文献リンク[UI] No.1

リンク。 いもあらい。 - 将棋盤インタフェース。 NTTソフトウェア - Android向けアプリケーションのユーザインタフェース 1つ目はOO的思考がまだ身についてない私的には大いに参考になります。2つ目はAndroidって所に惹かれます。私のアンテナのドストライ…

AI製作についてのごにょごにょ

AI作る!とか言っても、何をすればいいやらわからない。AI界の全貌がよくわからないし、ほにゃらら探索がーとか言われても「?」って風にしか感じられません。 そんな私がなんとなしに考えてみたことなど。 主にC言語脳、時々オブジェクト指向脳でいこうと思…

HTML+JavaScript+jQueryで駒の利きを表示させてみた

そのまんま。 実装検討の一環として試作してみました。 クリックするとその駒の利きが黒く表示されます。 ただし、 実装に「敵の駒」「駒台」の概念がない 味方の駒を突き抜ける もう一回クリックしたからってキャンセル操作みたく動いたりはしない ↑よって…

KFEnd

実装レベルに近いお話。

継承について

継承について。 「内包」「外延」「機能」 これらの違いをわきまえて、正しい設計を行いましょう、という話ですが、未だ私にはまだよくわかりません。特に機能と外延の違い。ソフトウェアの話に持っていこうとすると途端に区別できなくなります。 orz

State【振る舞いについてのパターン】

振る舞い(behavior)に関するパターンの1つ、Stateについて。

はじめに。

このブログについて。