2

混乱がないように、これについてできる限り明確にしようと思います。また、私はハウツープロセスを探しているのではなく、開始して正しい方向に向かうためのヒントを探しているだけです.

私は一般的にプログラミングに比較的慣れておらず(Javaでのプログラミングはわずか5か月間)、プログラミングについて多くのことをほとんど学んでいません。私はすでにいくつかの概念を理解していますが、MVC (モデル、ビュー、コントローラー) の概念を理解しようとしています。私はいくつかの調査を行い、それを視覚的なテキストベースのゲームに適用したいと考えました.

ゲームでは、プレイヤーは一連の「部屋」をナビゲートできます。一部は探索用であり、一部は私が「死の部屋」と呼んでいるもので、プレイヤーは最終的に死んで最初の部屋から再開する必要があります。ゲームのポイントは脱出して出口の部屋を見つけることであり、ナビゲーションは 4 つの一般的な方向のそれぞれに 4 つのボタンを使用して制御されます。今のところ難しいことは何もありません。ただし、部屋のオブジェクトを互いに相互作用させる方法を理解するのに苦労しています。たとえば、プレーヤーがボタンをクリックして左に移動する場合、現在いる部屋の左側にある部屋に入ることができる必要があります。モデルは、プレーヤーがどの方向にいるかに基づいて、どの部屋にいるのかを更新する役割を担います。プレイヤーは行きたいと思っています。

言い換えれば、プレイヤーが現在いる部屋の北、南、東、西にある他の部屋と相互作用する一連の部屋をモデル化するには、どのようなヒントが必要ですか? (私が十分に明確であることを願っています。明確化が必要な場合は、質問にお答えします。)繰り返しますが、完全なハウツーではなく、私の考えに焦点を当てたアドバイスを探しています。また、部屋用にクラスとインターフェースを既にセットアップしています。

4

1 に答える 1

3

これは興味深いユースケースです。Model-View-Controller patternWebアプリケーションで最もよく見られますが、テキストベースのゲームで確実に機能させることができます。

モデル

モデルレイヤーには、エンティティ-UserとがありRoomます。

コントローラ

コントローラは入力を解析し、モデルを更新して、ビューに必要なデータを渡します。したがって、入力'east'の場合、コントローラーコードの例は次のようになります。

User user = User.current();
Room east = user.getRoom().getEast();
user.move(east);
render(east);

意見

Renderメソッドは、新しい部屋を引数として取り、おそらく新しい部屋の名前と説明を表示するある種のテンプレートを解析します。

お役に立てれば。この特定のケースでは、個人的にコマンドパターンを使用します。

于 2013-02-27T21:19:47.663 に答える