2008-03-15

http://anond.hatelabo.jp/20080315035622

問題分割の概念が必要なんじゃないか。

囲碁のプログラム、ととらえるとすっごい大きく見えるけど、これを

  • 囲碁の画面を描くプログラム
  • 指定した位置に石を置くプログラム
  • 囲碁の手を考えるプログラム

とかに分ける。

これでもまだ大きいようだったら、

  • 囲碁の画面を書くプログラム
    • 碁盤を描くプログラム
    • 黒を描くプログラム
    • 白を描くプログラム
    • 石の位置を記録するデータ構造
  • 指定した位置に石を置くプログラム
    • 入力を受け付けるプログラム
    • 入力が囲碁のルールに従っているかどうかチェックするプログラム

という具合にさらに分割する。

これでもまだ大きいようだったらもっと分割・・・していって、最終的に「ファイルを読みこんで文字数を数えたり、じゃんけんをする」程度の規模になるまでバラバラにしてしまう。

そこまで来たら、あとは一個一個作っていって、それらが連携して動くようにすればいい。クラスの使い方はわかるよね?

#ちなみに囲碁は知らないので、上の分割が正しいかどうかは知りません。

記事への反応 -
  • 情報系の学部の学生です。 大学でプログラミングの演習をしています。(言語はJavaです) if,for,whileとかの制御構文は理解し、クラス、メソッドや継承やインターフェイスといったオブジェ...

    • 問題分割の概念が必要なんじゃないか。 囲碁のプログラム、ととらえるとすっごい大きく見えるけど、これを 囲碁の画面を描くプログラム 指定した位置に石を置くプログラム 囲碁...

    • プログラムには書き方がある。その書き方とは、規模が線形で大きくなっても開発を続けるコストも(償却)線形でしか大きくならないものの事をいう。 設計にも同じ事が言えるし、極...

    • ボードゲームのプログラムって結構難しい部類に入るし、囲碁なんてその中でも特に難しいものだから、そりゃ書けなくてもしょうがない。 ああいうのの難しさって、規模というよりは...

    • いいとは思うけどね。だけどそれに集中することが大切かと。まあ、囲碁のプログラムは果たしてプログラムをするに足る対象だろうか、などの問題もあるけど、まずは目的を定めること...

    • 元情報系の学部の学生です(現在は大学院生です)。 >みなさんは、どうやって大きめのプログラムが書けるようになりましたか? ということなので、私のプログラミング変遷を書いて...

    • 囲碁漫画「ヒカルの碁」の単行本のおまけページに(ヒカルの碁のゲームが出たという話題) 「囲碁のゲームはまだ発展途上で、コンピューターの一手はすごく時間がかかる。何分も待...

      • 考慮時間の割りに強いプログラムを組むのはそりゃハチャメチャに難しい。しかしそうでなくても碁は石の生死判定とかでいろいろ厄介だと思う。ファミコン黎明期の碁のソフトは石の生...

      • 碁がほんとうに難しいのは、本当に難しいからなんだ。 自分の手版だったとしよう。 将棋の場合升目は9*9しかないから、手持ちの駒があったとしても打てる手順は81通り 2手先を読もう...

    • プログラムを書けるということはプログラムを設計できるという意味じゃない。ルールを知っているのと囲碁を打てるのが違うように。 ルールを覚えたら、次は定石を覚えないといけな...

    • Javaスクールの危険 とりあえずSICPでも読めば?

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん