2009年5月8日金曜日

[CakePHP]規約メモ

●モデル

 モデルのクラス名は単数形でキャメル記法です。Person、BigPerson、ReallyBigPerson などは規約に合ったモデル名です。
 CakePHP のモデルに対応するテーブル名は、複数形でアンダースコア記法です。上記の例で言えば、テーブル名はそれぞれ、people、big_people、really_big_peopleとなります。


●コントローラ

 コントローラのクラス名は複数形でキャメル記法です。最後にControllerが付きます。PeopleController、BigPeopleController、ReallyBigPeopleControllerなどは規約に合ったコントローラ名です。
 コントローラ内のメソッドにアクセスするためのURL は、小文字とアンダースコアを用いるというのが規約であり、RedApplesController::go_pick アクションにアクセスするための正しい形式は /red_apples/go_pick となります。


●ビュー

 ビューのテンプレートファイルは、それを表示するコントローラの関数に合わせた、アンダースコア記法で名前が付きます。 例えば、PeopleControllerクラスのgetReady()関数は、ビューテンプレートとして、/app/views/people /get_ready.ctpを探すことになります。
 基本パターンは、 /app/views/コントローラ名/アンダースコア記法_関数名.ctpです。



例:
・データベースのテーブル: "people"
・モデルクラス: "Person"、 場所は /app/models/person.php
・コントローラクラス: "PeopleController"、 場所は /app/controllers/people_controller.php
・ビューのテンプレート、場所は /app/views/people/index.ctp





http://book.cakephp.org/ja/view/22/CakePHP-Conventions

javaでunsigned(符号なし整数)

javaにはunsignedがなくて不便!


●javaでunsignedの数値データを扱う方法
http://d.hatena.ne.jp/fujioka0729/20071220/1198121245

符号なしbyteをintのキャストする方法


●自分でunsignedintクラスを作る。






Integerクラスに符号なし整数とみなして比較するメソッドがあればいいのに。なんでないんだろ?

[オセロプログラム]定石実装

やっと定石実装できた。。。


http://www.es-cube.net/es-cube/reversi/sample/index.html


いつも通り上のページを参考にして作ったけど、cからjavaに移植するの結構つらい(自分の能力だと)。


unsignedがないし、メモリ管理がどうなってるかとかいまいち理解してないし。


だめだめですねぇ


まぁそれはそうと、定石があると思考時間が一気に削減できるからなんか快感(笑)


手動で定石を登録していくんだけど、オセロの定石なんかわからん。どこから持ってこようか。








・マルチスレッド化
・相手の探索中(入力待ち時間)に探索

2009年5月5日火曜日

オセロプログラムの作成

大学の研究室の課題としてオセロプログラムの作成があるから作ってみた。

http://www.es-cube.net/es-cube/reversi/sample/index.html

上のページを参考にしてjavaで実装した。

すごく丁寧な解説があって、よくまとまっていて、とても参考になります。



minMax探索やらnegaMax探索やらα-β探索といった定番の探索アルゴリズムで実装したけどそれなりに強い。

強化学習恐るべし・・・

プログラム作成の期日までにあと定石ぐらいは実装しよう。

当然だけど既に自分で作ったプログラムに自分で勝てない(笑)








・定石の実装
・マルチスレッド化
・相手が思考している間に探索