07/04/10 23:41:08
>>689
それはつまり1人用の麻雀ゲームを作ろうというわけですね
それなら簡単なGUIと思考ルーチンが必要です
思考ルーチンは現在の状況, つまり引いた牌と持ち牌(っていうのか?もれは麻雀やらないから言い方違うかも)
と相手の打った牌などから次にどの牌を打つかを決める一連の思考の手順のことです
これは一般的に一種類あるいは数種類の思考パターンを用意し, これらのような決まった処理のことを
アルゴリズムと言う
アルゴリズム(思考手順)そのものは言語に依存しないので(もちろん言語によって書き方は異なるかもしれないけど)
すでに知っている言語があったら新たにCとかC++を勉強しなくてもOK
思考手順そのものを研究するのが目的ならVBやJavaなどの簡単にGUIが作れる言語が(個人的には)おすすめ
これを足がかりにほかのゲームや実用ソフトを作りたいなら将来にわたって使っていけるような言語を選ぶのもあり(CとかC++)
もしLinuxなどのUNIX系OSや, プラットフォーム非依存をターゲットとするならJavaが一番手っ取り早い
GTKやwxWidgetなどのクロスプラットフォームのツールキットを使うこともできる
(こういったツールキットは大抵複数の言語に対応している)
あるいはPythonなどのスクリプト言語を使ってみるのもあり
でも, ひとこと言わせてもらうと
> 自分の打ち方がどれぐらい強いのか試そうと思って
の意図はいまいちよくわからないが
作ったプログラムと自分で対戦すると言うなら
それは一人二役でゲームをするのと同じだからちょっと無意味っぽいと(個人的に)思う
また自分の思考をプログラミングしてほかの人やプログラムと戦わせたいのなら相当の覚悟が必要
人の思考は想像以上に複雑で, 無意識や勘なども作用してくるから
完全に自分の思考回路をプログラミングすることは(現実には)不可能に近い
したがって出来上がったプログラムは君自身より弱い
また, 何手か先を読むような(ありふれた)機能を盛り込む場合でも
計算しなければいけない手数は爆発的に増えるから(計算量とメモリーの増加), それをいかにして押さえるかとか
いろいろとテクニックも必要になってくる
ここまで考えるとかなり手間がかかる
もれは大学の卒論がチェスのゲーム理論だったからよくわかる