はじめからやり直したい症候群
いろいろプログラムが汚くて一から作り直したい衝動にかられる。
っていうか、こっそりC#とかJava版とか作っては3日坊主で終わったりしてる。
このブログを始めるとき、3日坊主でおわらせないために、自分で決めたルールのひとつに「最初からやり直すという迷いは持たない」、ってのもあったんだけど、開始からずいぶんたって初心を忘れかけてる。
でも、これは単にはじめからやり直したい症候群に侵されているだけなんだろうな。最初から作り直す前に、具体的に今のプログラムもどこががどう汚くて、どう直せば、どのくらいよくなるのかが、文章化してみるべきだろう。そこまで考えが整理できるなら、最初から作り直さなくても現行のソースの改造で何とかやっていけるはずなんだよな。
---
今日はとりあえず、GUIでの牌選択部分のアクション部分を修正した。
| 固定リンク
この記事へのコメントは終了しました。
コメント
はじめからやり直したい症候群…ありますありますw
投稿: 我打麻将 | 2008/09/20 19:56
私はマーチンファウラーの『リファクタリング』を読んでから、はじめから作り直すよりもリファクタリングしたくなるようになりました。
どっちが手間がかかるのかは微妙なところですが、リファクタリングの方が、途中で挫折してもそれまでが生きるのがいいところです。
投稿: esper | 2008/09/20 20:17
>途中で挫折してもそれまでが生きるのがいいところです。
これは、あるかもしれません。いろいろ勉強になりますし。なにより、ちゃんとテストするなら安全ってのもいいところです。
投稿: kmo2 | 2008/09/23 02:26
最近、PSやPS2の麻雀ゲームをプレイするのですが
やたらと流局率が高くなります。
原因はCOMがほとんど鳴かない為、どうしてもCOMの
ツモ率が低くなってしまうからです。
COMに鳴く技術をプログラムするのは難しいのしょうか?
そんな中で、評価の高いシャノアール製やアテナ製の
麻雀ゲームは通常の麻雀のような数値になります。
私が考える通常な数値は(ロン4:ツモ2:流局1)前後です。
投稿: 黒石 | 2008/09/28 09:35
これは、「まったり麻雀」ではなくて、
黒石さんがプレイされているPS/PS2のゲームが
鳴きが少なく流局率が高いということでしょうか。
開発者によっても多少違うかもしれませんが、私の感覚では、
鳴く技術は比較的難しい部類に入ると思います。
面前牌効率でやってるような厳密な期待値計算を、
鳴きについても同様に計算しようとすると、
計算量が跳ね上がってしまいます。
私も一般に市販されている麻雀ゲームをプレイしていて、
鳴き判断が「ぬるい」と感じることは良くあります。
これは、開発費の関係で妥協してるか、ユーザからの意見を取り入れてるか(COMが喰い散らかすことを嫌うユーザが多い)のどちらかではないかと思います。
現在の技術の限界まで頑張ってるって感じはしないです。
まったり麻雀では割と積極的に鳴くよう意識してプログラムしていますが、
現実的にはまだまだ鳴き方がぬるいです。
(超ランで平均より鳴きが少ない私自身の打ち方よりもさらに、まったり麻雀は鳴きが少ない)
現状の思考アルゴリズムは、
点数状況判断もからめ、雑なアルゴリズムであると認識しています。
これらは今後改善するつもりです。
脳内にこうすればもっとよくなるというアイデアはぼんやりとあるんですが、
処理速度の問題で実用的な応答時間が確保できるかどうかが心配なのと、
なにより、私がノロマでアイデアを実装して試す段階まで至らないというのが実情です。
>私が考える通常な数値は(ロン4:ツモ2:流局1)前後です。
わたしもその程度が良いバランスかと思います。
ただ、既存ゲームは単純に押し引きが攻め側に傾きすぎていて、
結果的に、流局が少なくなっているモノも多いので、
この数値のバランスだけでは、評価し難いとおもいます。
投稿: kmo2 | 2008/09/29 21:08
ところで、
コードが長いけれどもパフォーマンスが早いものと、
コードが短くてその分だけパフォーマンスが悪いものと、
どちらを選びますか?
私の場合、
とにかく短くしてみます。
パフォーマンスチューニングは最後の最後なので、
アルゴリズムの綺麗さを利用して
より速いアルゴリズムに仕上げたうえでの
チューニングの方がバグも少なく論理的に優れたコードになる
気がします。
投稿: 啓輔 | 2009/01/18 18:55
>啓輔さん
私も啓輔さんと同じ意見です。殆どすべてのケースにおいて、短いコードの方が問題点を発見しやすいので、まずは短く書くように心がけています。
投稿: kmo2 | 2009/01/18 22:29