« 2011年11月 | トップページ | 2012年1月 »

2011/12/31

2011年の天鳳成績

2011年の天鳳の成績は以下でした。
2011tenhou
※特上の東風戦と東南戦の成績が混じってます。

 東風荘時代も含めネット麻雀では毎年昨年度の成績を上回る成績をずっと残してきたのですが、2011年は昨年成績を下回ってしまいました。

 12月に入るまで麻雀の打ち方を意識的に変える工夫をしてきませんでしたので、この成績に終わったのはある意味必然なのかもしれません。

 今の打ち方のままでは、仮にまた鳳凰卓に行けたとしても、到底鳳凰卓に定着できないことは明白なので、何か大きく打ち方を変えなければいけないと思い、12月に入ってから試行錯誤を繰り返してきましたが、かえって成績は悪化しているのが現状で、何をどう変えれば良いか掴みきれずにいます。放銃率が高いのは明白なのですが、どうやって放銃率を下げていくべきかが見つからずに悩んだまま年末を迎えた感じです。

2012年は、鳳凰卓の観戦の回数を増やして自分と上級者の打ち方の違いを見つけ出し、新しい打ち方の基準を探すことと、一打一打丁寧に打つことを心掛けて、成績向上につなげていこうと思います。

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

2011/12/29

またいつものこと

マルチコア対応用の探索処理部を作成中です。
まずは、試しに将棋やオセロなどのmin-max探索のように比較的単純な探索処理を実験的に作ってみて、いけそうだと感触がつかめたので、本格的に麻雀用探索処理を作成し始めたんですが、ここでまた色々麻雀特有の面倒くさいことをしなければいけないことに気が付いて、手間がかかってます。

それに絡んで、今回の探索では終端ノードを変えてます。前は、聴牌が終端ノードだったんですが、今回は和了した状態を終端ノードに変えてます。

理由は、まず第一に、その方が、マルチコア版では速度が速そうだということ。第2にプログラムがシンプルになり、和了の価値について評価するようなプログラムにしたときに、面倒がないことです。

和了の価値の評価とは、例えば、このシチュエーションで満貫ツモ上がることと、トップ目から3900直撃することの価値にどの程度違いがあるかを定量的に評価するような感じです。

次のメジャーアップデートでは、聴牌取らずとか、ロンしないで、直撃狙いとかツモ上がりにかけるべきかどうかの評価方法を変更する予定でおり、そのための下準備をしているわけです。

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

2011/12/19

手牌構造の作成終了と次の作業

色々苦労していた手牌構造クラスのテスト&バグ取りが完了しました。
新しい手牌構造は、一色分の全ての門前手牌パターンを丸ごとメモリに持つようにして、向聴数チェックや有力な捨て牌候補や受け入れ候補の列挙、手替わりや向聴戻しを含めた局面の変化を高速に処理できるようにしました。

手牌構造の作成がひと段落ついたので、次は、探索処理(局面の先読み)を作成していくつもりです。

既存の探索処理は再帰呼出しを使って実装していますが、新しい探索処理は、再帰呼出しを使わずに、スタックを使ったループで処理するように修正します。C++言語などの処理では、機械語レベルで見ると、関数を呼んだときにパラメタをスタックに積んで、サブルーチンにジャンプするような処理をしているわけですが、それを自分でスタックにデータを積むプログラムにする感じです。

なぜこのような修正をするかというと、スタックに積んだり、スタックに積まれたデータを取り出して処理する箇所をマルチスレッド化することで、マルチコアCPUの性能を無駄なくフルに引き出して、より深く広く局面を読めるようにするためです。基本的なアルゴリズムはオライリーの並列コンピューティング技法に載っているサンプルを参考に作成していくつもりです。

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

2011/12/11

いつものこと

高速な先読みを実現するために、手牌のデータ構造を改良に着手していますが、色々と問題点が見つかっていてなかなか作業が進んでいません。

実作業に入る前にぼんやりとアイデアを練ってるときは上手くいきそうだと思うのですが、実際にやってみると次々と考慮漏れのケースが見つかって苦戦するはめになります。

これは、今回に限った話ではなくて、今までもずっとそのパターンでした。アイデアの大半はコード化に着手する前にボツになり、コード化に着手したアイデアも大抵は実際に採用されずにボツになってます。

いまやってる手牌データ構造の改良は何とか実用化したいと思っていますが、前途多難そうです。

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

2011/12/10

今後の予定とかメトロUIとか

Windows 8では、メトロUIという今までとは全く違ったUIと実行環境がサポートされます。既存のアプリも動くようですが、今後は、メトロUIが主流になる可能性もあり、Windows用のソフトウェアを作ってる人は既存のアプリをメトロUIへの対応を迫られることになるかもしれません。

私としても、将来的には、メトロ対応を迫られることもあるでしょうが、当面はまだ、オールドスタイルで行くつもりです。

大きな理由は2つあります。一つは、各解像度にあわせたサイズ変更可能な牌画を書くスキルが私にはないこと。もう一つは、そもそも、麻雀ゲームを作って公開したいわけではなくて、自分が納得のいく強い麻雀思考ルーチンを作りたい目的で開発しているので、これ以上、少ない作業時間を、実行環境やUIの修正に時間を割きたくない思いが強いこと、です。

性能面の問題やメトロUIが大コケする可能性も心配です。

そんなわけで、まずは納得のいく、思考アルゴリズムを作ることに当面は力を入れて作業をしていく方針です。

目標的には来年の暮れごろを一つの目安にして、思考ルーチンをメジャーアップデートしたバージョンを出したいと思っていますが、早くも躓いていて暗雲が垂れ込めてます

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

2011/12/03

データ構造修正中

手牌クラスの構造と、向聴数チェック、自摸打候補牌列挙処理を作成しなおしています。

ここの処理はより広く、深く、早く読むために、かなり基礎的で重要な部分のため、いままでも何度も修正を繰り返しています。
今回の修正で大規模な修正は、5回目くらいになるでしょう。

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

« 2011年11月 | トップページ | 2012年1月 »