2008/01/06

Core2Duoならいけるかも

昨年末新しくPCを買った。
機種は、FMV-DESKPOWER CE55XNのカスタム版。
CPUは、Core(TM)2 Duoプロセッサー E6600(2.4GHz)なのだが、この機種なら、期待値型評価関数で割と複雑な3向聴でも実用的な速度(2秒)で演算可能なようだ。
これならば、将棋ソフトのように考慮時間のLimitを設ける形でCPUの速度にあわせた強さ調整が可能だろう。


ってことは、頑張れば、人間が太刀打ちできない領域までいけそうな気がしてきた。

| | コメント (7) | トラックバック (0)

2007/01/31

実行あるのみ

いろいろ先の不安を考えちゃって作業が止まってしまうのは私の悪い癖だな。
やってみるしかないじゃないか>私。
やってみて結果が出れば其れが悪い結果だったとしても改善点がわかるし。
まずは、いまのままで仕掛けの攻防のアルゴリズムを組み立ててみよう。

* * * *
さて、昨日はざっと流し読みしただけだった「超入門科学する麻雀」をじっくり読んでる。結構面白い。本質的な部分はあまり前作と変わらないけど、対談形式の記事やマンガなどがありずっと読みやすい。(私のような麻雀のアルゴリズムを考えている人間にとっては前作の方がありがたいけど。)

そしてある意味一番面白いのが前作に対するプロたちのコメント。
なんていうか、実にヒトゴトで受身なコメントが多いのががっかり。アマチュアが研究してプロが感想を書いてるんじゃどうしょうもないだろう。本来プロたちがやるべき領域じゃないのかな。クイタンなしのデータだから役に立たないと思うならクイタンアリのデータを集めて自分なりの考えで集計してみればいいじゃないか。私にだって出来るんだからプロに出来ないはずはないでしょう。

| | コメント (3) | トラックバック (0)

2006/09/10

TurboC++

BorlandのTurbo C++が無料公開されていたのでダウンロードしてみる。

この麻雀ゲームのプログラムは、あまり開発環境に依存する固有機能を使ってないこともありSTLのヘッダーファイルを1行追加するだけで問題なく移行出来た。


TurboC++はBorland Developper Studioで統合された各言語の開発環境を言語ごとにパッケージ化したものらしい。VCLの拡張性が無いことを除けば無料版でも問題なく使える機能を含んでいる。あまり使い込んでないけど、リファクタリングとかコードガードの機能も含んでいるようだし、Delphi 6 Personalのときにあった商用利用禁止のライセンス的制限も無くかなりよい感じ。
エディタなどの雰囲気的がVisual Studio 2005に近づいたのも個人的には好印象。

以下の点はちょっと気になるけど大筋いい感じ。
- エディタで関数を畳んで表示しなくする機能がバグってる。
- Visual stdioの商品版とは違いリソースエディタが無い(borlandは昔から無いけど)
- クラスをツリー表示する部分ウィンドウが毎回ノードを畳んで表示するので毎回開きなおす必要がありうっとうしい。

特にエディタは使いやすくなっている印象。今後はこちらに完全移行するつもり。


なおC#は.Netの2.0に対応していない&Visual Studioと比較して特別よい点が無いのでVisual Stuioを使ったほうが良さげです。

| | コメント (2) | トラックバック (0)

2006/05/18

ドラ、裏ドラの件

指摘いただいたドラと裏ドラの件プログラムを見直しましたが問題は無いと思います。
プログラム的にはドラと裏ドラが同じかどうかで処理を切り分けるようなことはしていません。また、テストしてみましたが下記の画像のようにドラ裏ドラを役にリストしてます。
Reach2


おそらくは、リーチをかけていなかったシーンで勘違いをされたのではないでしょうか?まったり麻雀はリーチをかけていなくても裏ドラが何であったのかをダイアログに表示しますのでそれで勘違いしたものと思います。
(これはこれで問題だとは思いますが)

もしまた再現するようでしたら連絡をお願いします。

| | コメント (7) | トラックバック (0)

2006/04/16

捨て牌のデータ解析中

結構単純な方法で解析してる。
だいぶ、評価方法の方向性が見えてきた。心配していたより、ずっと誤差が少ない。これなら何とかなるかも。

ところで、なぜか東風ランキング、私のデータが更新されない。なんでだろう。まあ、ランキングで目立つようなRじゃないからたいした問題じゃないけど。

| | コメント (0) | トラックバック (0)

2006/04/12

脱線して

ちょっと脱線して、はてなブックマークで自分に合うエントリを見つけるスクリプト書いてみる。
きっかけは、■[Web][はてな] はてなブックマークがイマイチな理由を読んだから。

自分と同じエントリをブックマークしている人のブックマークRSSを集めて、ポイントをつけてランキングを作ってみた。
結論はダメダメ。ポイントのつけ方を色々変えてみたけど、一人の人のエントリに依存しまくる結果になるか、普通の注目エントリと代わり映えしない結果になるかのどちらかだった。敗因はRSSだと最近の20エントリしか取れないことだと思う。
RSSではなくて通常のWEBページからデータを集めて、もっと古いデータまで見たら上手くいくのかもしれない。でもあまりデータ増やしすぎるとDOS攻撃してるようになっちゃうんでそれはそれで問題だろうな。
残念だけどボツだなこれは。

| | コメント (0) | トラックバック (0)

行き詰まり中

あんまり、細かく状況を分けてしまうとどうしてもデータが不足する。ある程度のところで妥協が必要になりそう。

それと、仮に鳴きの防御を強化したときに全体的に硬くなりすぎてゲームとして面白くなくなってしまうのが多少心配。対リーチのベタオリ判断のときも感じていたんだけど、ほんのちょっと押し引き判断の基準をずらすとゲームの印象がガラリと変わるんで正直怖い。

でも、出来上がる前に心配しても仕方ないか……
まずは作り上げて、それから試し打ちして考えよう。

| | コメント (0) | トラックバック (0)

2006/04/09

フリテンの件

コメントいただいた、フリテンの件テストしてみましたが、問題がないように思えます。
現在公開している版でテストしてみましたが、問題なくロンできてます。プログラムの仕組み上特定のパターンだけダメってのも考えにくいです。もし再現するようでしたらまた連絡をお願いします。

Furiten


| | コメント (0) | トラックバック (0)

2006/04/01

面子さらしの時の和了点数集計終了

一面子だけ鳴いて、和了したのときの点数を(子のロン和了に換算して)集計した。
カンドラがめくれてるときは面倒なので集計からはずして、

1. 老頭|中張|役牌|連風牌|役牌|オタ風|
2. ポン|チー
3. さらした面子にドラ有り|ドラなし

上のパターンの組み合わせで分類して集計した。条件わけが多くなっちゃって、私が持ってるデータでは数がやっぱちょっと足りないんで信憑性に乏しいのが残念。まあ大体、普段東風荘打っていて、感じてたとおりの数字だった。
 例えば、オタ風からポンしたときの和了点数は高いんじゃないかと感じてたけど、やっぱり高かった。ダブ南をポンしたときの点数よりも高いとまでは思ってなかったけど。
もちろん、コレだけでどうこう言えるほど麻雀は簡単じゃない。たとけば、どの道高い手には混一が絡むことが多くて、連風牌鳴いてる染め手っぽい相手には警戒度が強いからそもそも上がれないってのもあるだろうし。


| | コメント (0) | トラックバック (0)

2006/03/30

K&Rの弊害

綺麗なプログラムを書くのは難しい。
そもそも、綺麗の基準が人によって違ったりする。時々、つまらない違いで喧嘩になったりもする。
つまらない例の最たるものが、インデント、{のぶら下げ方、と2単語のつなげ方(fooBarかfoo_barか)、カッコの前後の空白。
これらは別にどのように書いたところで、統計的にバグの数に違いがないという結果が出てる。チームで統一さえ取れてれば別にたいした問題ではないんだけど、どいつもこいつも自分の感情だけでギャーギャーわめく。案外科学的じゃないんだなソフトウェア業界って奴は。

他にも、Cの場合で意外とケンカになるのが、K&R発祥のいかにもCっぽい書き方
例えば、こんなのとか

if ( (fp = fopen("file.txt", "r")) != NULL ){

こんなの
while (*p++ = *q++);

K&Rはそもそも、Cの特徴を際立たせるため他の言語(COBOLとかPascalとか)と違う部分を強調した書き方をしてる。「Cではこんな書き方も出来るんだよ」という例を載せているのであって、「こういう書き方が優れている」と言ってるわけではない。それなのに、聖書であるK&Rがこう書いてるからと、思考停止して受け入れる原理主義者が実に多い。

ま、私なんかがとやかく言ったところでK&Rの権威にかなうわけでもなし、もう、どうしようもないくらいに広まっちゃってるんで、ある程度は受け入れるしかないんだけど。

2006/3/30 追記:
トラックバックでご指摘を受けたので追記。

K&RはCのリファレンス的な本であって、綺麗なプログラムを書くための本ではない。文法の例のために載せているサンプルコードもあり、妄信して真似すべきではない。

では、どうしたらいいのか?
簡単な話だ。綺麗なプログラムを書くための文献を参考にすればよい。
プロの人ならば、職場でコーディング規約が決まっているだろうから、多少自分の考えとは違っていても、まずはそれに従うべき。

一般書籍なら、取り合えずお勧めは「Code Complete」。分厚すぎるので「通勤通学時間=勉強時間」な人には持ち運びがつらいけど、それ以外は文句ない。


 

「センス・オブ・プログラミング」もお勧めできる。文体がすごく読みやすい。
今日、本屋で見つけて衝動買いしたんだけれども、偶然にも、細かい違いで宗教論争はすべきではないとか、上記の2つの例題とモロに同じものが載っていた。

Java専門だと 「超図解 Javaルールブック 」がある。立ち読みしただけだけれど、こちらは若干初心者向けな印象。各ページの見出しが一部不適切と感じたのと誤字が目立ったが、Amazonでの評価は悪くない。

 

| | コメント (0)

より以前の記事一覧