3

私は Java に非常に慣れていないので、ここでこのような質問をすることが許されているかどうかさえわかりませんが、試してみます。Java プログラミングの練習が必要/必要なので、自分の能力の範囲内に収まるかなり大きなプロジェクトを決定しました。ビルドを開始し、レベル、名前、XP、ヘルス、アイテムなどのプロパティを持つプレーヤー オブジェクトを作成しました。アイテムは5つのオブジェクトオブジェクトの配列です(XDで我慢してください)今、部屋をオブジェクトとして作成する必要があるのか​​ 、それとも別のクラスまたは関数として作成する必要があるのか​​ を知りたいですか?

部屋は抽象的な意味での部屋のみであり、ゲームは完全にテキストベースであり、ユーザーが拾ったり調べたりできるパズルやオブジェクト、敵を含める必要があり、そのような物語も各部屋に含まれます。プレイヤーは部屋のアイテムを「拾い」、インベントリに追加することができます。次のような敵とのテキスト戦闘に参加するだけでなく、モンスターに 2 ダメージを与え、モンスターに 3 ダメージを与えるなど。

これは練習用であり、Java 内で実行する必要があるため、見栄えがよくないことに注意してください。前もって感謝します。

4

2 に答える 2

4

あなたの問題は、Java の初心者ではなく、OOP の概念に関連しています。コーディングを開始してプログラムに正しい OOP 設計を配置する前に、OOP についてもっとよく知って、正しく考える必要があります。このプログラムは Java で作成しているため、ここから開始できます。

あなたの質問から私が理解したことについては、部屋のプロパティと機能を含む部屋クラスが必要な場合があります。

于 2011-11-25T03:14:23.430 に答える
1

大まかに言うと、「部屋」クラスを作成することをお勧めします。これには、部屋のタイトル、説明、その他の部屋固有の情報 (地形タイプなど) が含まれます。

次に、Room オブジェクトの多次元配列を作成できます。1 つの次元は X 座標で、もう 1 つの次元は Y 座標です。

このように「移動」するには、現在地を追跡し、移動した方向に基づいて X または Y を増減するだけです。

周囲の地図を生成するなど、さらに拡張することもできます。各地形タイプは、異なる記号 (森は @、水は ~ など) として表示できます。このようなものを追加するのは簡単な方法です。必要なのは、右上/左下の座標を取得し、それらの座標をループしてマップを構築することだけだからです。

于 2011-11-25T03:15:06.660 に答える