テトリスのクラスについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kazuoni

テトリスのクラスについて

#1

投稿記事 by kazuoni » 16年前

お邪魔します。
C++の入門を終え、
「いざ、プログラムを組もう!」って思ったんですが、
組んでいくと結局C言語の時と変わらない感じになりそうなんです。
まだいまいちオブジェクト指向っというものがしっくりきてません。。

まずテトリスから始めようと思ったのですが、
何をクラス化していいのかがよくわからないんです。
もし皆さんがC++でテトリスを作ろうとしたとき、
設計の段階で、ここはクラス化にっというのはどこら辺でしょうか?
ゲーム的には普通のテトリスに得点をつけたり、ホールドをつけたりできたらいいなっと
思っていますが、敷居が高いならば、まずは基本構造だけで十分です。

はっきりしない質問で申し訳ありません。
方針をお聞きしたかったんです^^;

よろしくお願いします。

BEMANI

Re:テトリスのクラスについて

#2

投稿記事 by BEMANI » 16年前

>>kazuoniさん
自分がクラスを作る時のやり方を書いてみます。

まず、何が必要なのかをゲームに必要なパーツ毎に挙げていきます。
例えば、ブロック、面遷遷移、スコアなど。

パーツをある程度挙げられたら、そのパーツにはどんな変数・関数がいるのかを挙げてみます。
ブロック・スコアなど、描画の対象となるものは座標や描画関数などが要ると思いますので、
かぶった変数・関数を親クラスとし、これを継承。派生して子を作成する・・・と言う感じです。

自分はクラスの設計が難しいと感じているのか、色々こんがらがっていますが、
まずは作ってみて「ここ同じものがかぶってるな」と思ったら親クラスに放り込んでます。

全然参考にならないかもしれませんが;
組み始めないと何も分からないので、まずは組んでみるといいと思います。

バグ

Re:テトリスのクラスについて

#3

投稿記事 by バグ » 16年前

私だったら…

1:テトリミノを制御するクラス

2:フィールドを制御するクラス

3:ゲーム全体の流れを制御するクラス

4:描画関連のクラス

5:キー入力に関するクラス

3、4、5は纏めても良いかもしれないですね(^_^;)
ただ、分けておくと、環境が変わっても修正が最小限で済むので楽なんですよね。

kazuoni

Re:テトリスのクラスについて

#4

投稿記事 by kazuoni » 16年前

BEMANIさん、バグさんご回答ありがとうございます。

今まで外部変数を使いながらのプログラミングをしていたので、
それを使わずにどうクラスで解決するかを悩んでました。
ちょっと設計しましたが、プログラムはほとんどクラスのメンバ関数で埋まってます。
これがいいかどうかよくわからないんですが・・・
いったんこれで組んでみます。
恐らく躓く気がしますが・・・まず一度試して、それから改善点を
見つけていきたいと思います。
今回はこれで解決とさせていただきますが、
また躓いたらご指導のほどよろしくお願いします。

お二方、ご回答ありがとうございました。またよろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る