テキストベースのゲームで部屋を作成する方法(初心者)

私はJavaにとって非常に新しいので、ここでこのような質問をすることさえ許可されているのかどうかはわかりませんが、私はそれに挑戦します。私はJavaプログラミングの練習が必要なので、私はそれを構築し始めた自分の能力の中にすべきすべきかなり大きなプロジェクトを決めて、レベル、名前などのいくつかのプロパティを持つプレーヤーオブジェクトを作成しました。 xp、健康とアイテム。アイテムは、5つのオブジェクトオブジェクト(XDを持っています)の配列です。オブジェクトを別のクラスまたは関数として作成する必要があるかどうかを知りたい場合は、ここをクリックしてください。

部屋は抽象的な意味で部屋にしかなりません。ゲームは完全テキストベースです。ユーザーが拾ったり調べたりできるパズルやオブジェクトを入れる必要があり、そのような物語もそれぞれに含まれます。プレイヤーは部屋の中のアイテムを "ピックアップ"して、それらを自分の在庫に追加することができます。あなたは怪物に2点のダメージを与え、モンスターには3点のヒットを与えるなどの敵とのテキストコーマットに参加する。

これは実際には練習のためのものではないことを忘れないでください。私はJava内でそれを行う必要があります。 前もって感謝します。

3
これはあなたが聞きたいことではないかもしれませんが、オブジェクト、クラス、関数の違いに苦しんでいる場合は、プロジェクトをやっていくことがまだあなたの能力の範囲内にないかもしれないので、読んだり、初心者のチュートリアル最初。フレーズは "これはきれいにするつもりはない、それは練習のためのもの"プログラマーとしてのあなたの未来のために良い予言していません...たとえ(または特に)それが練習のためならば、言い訳をしないで、それはきれいにする/きれいにする/優雅に/読みやすい... ;-)
追加された 著者 Amos M. Carpenter,
詳細を教えていただけますか?部屋の目的は何ですか?それはあなたの他の要素とどのように相互作用していますか?
追加された 著者 CHawk,
あなたは部屋で何を意味しますか?
追加された 著者 Mohamad Alhamoud,
あなたはあなたの質問に答えるために使用できる情報を与えていません。 @ M.Hが言ったように、「部屋」は何であり、どのようなものを使いたいのですか?詳細を提供するために質問を編集してください - ここからあなたの画面(またはあなたの心)を読むことができません。 :)そして、外部のサイトへのリンクと "私が意味するものの例のためにここをブラウズ"と言っても適切な詳細ではありません。
追加された 著者 Ken White,
こんにちは、私はここでそれに取り組んでいます:(トンネルビジョン
追加された 著者 Suavelizard,
後の部分は私がここで尋ねる理由でした私は彼らの違いを知っています私はそれらを使用しています私はちょうど良い方法があるかどうか疑問に思っています。また、私が持っている機能的なJavaの知識の量は、他の4つのクラスと数ヶ月で何が学べるかについてです。
追加された 著者 Suavelizard,
hmmm典型的なダンジョンクローラーで、ユーザーは一連の挑戦とパズルを通って、どこかに行きますか、目標に向かって見ています。 homestarrunner.com/dman3.html これはフラッシュで行われますが、部屋は、物語と同様に物語とプレイヤーが相互作用する敵と遭遇する。
追加された 著者 Suavelizard,

2 答え

Your problem is related to the OOP concepts not to being a beginner in java, you should know more about OOP to think correctly before starting coding to put the correct OOP design for your program. since you are building this program in java you can start here.

私があなたから質問したことで分かったことは、部屋のプロパティと機能を含むルームクラスを持つことです。

4
追加された
oopデザインは、一方的な列車ではなく、概念を読んで理解すると、あなたはそれが "論理的"だと思って問題を解決する設計をすることができます。
追加された 著者 Mohamad Alhamoud,
@Suavelizardはい、別の質問をして:)、深く概念を読んだ後に明確な設計を書いて、明確なコードとあなたのアイデアや論理を明確に説明した質問をしてみてください。 。
追加された 著者 Mohamad Alhamoud,
私は読むが、私は紛失している部分がわからない
追加された 著者 Suavelizard,
OKこれを見て気にしますか? package game1;パブリッククラスPlayer {int playerLevel = 1; int playerLevelCompletion = 0; int playerHealth = 100; String playerName = null; Object [] playerItems = {null、null、null、null、null};プレーヤー(int playerLevel、int playerLevelCompletion、int playerHealth、String playerName、Object playerItems []){this.playerLevel = playerLevel; this.playerLevelCompletion = playerLevelCompletion; this.playerHealth = playerHealth; this.playerName = playerName; this.playerItems = playerItems; }}
追加された 著者 Suavelizard,
私は私のコードはシンプルで機能的だと思います。
追加された 著者 Suavelizard,
とにかく私はあなたとこれでもっと深く入ることができますか?
追加された 著者 Suavelizard,

高レベルから、良いアイデアは "ルーム"クラスを持つことになります。これには、ルームタイトル、説明、その他のルーム固有の情報(地形タイプなど)が含まれます。

ルームオブジェクトの多次元配列を作成することができます。一方の次元はあなたのX座標であり、もう一方の次元はY座標です。

あなたがする必要があるすべての周りを "移動"するこの方法は、あなたの位置を追跡し、移動した方向に基づいてXまたはYを増減します。

あなたは、あなたの周辺の地図を生成するようなことをやってさらにそれを拡張することができます。各地形のタイプは、別のシンボルとして表示できます(@は森林、〜は水など)。右上/左下の座標を取得し、マップを構築する座標をループするだけでよいので、このようなものを追加するのは簡単な方法です。

1
追加された
私はこの答えの根拠がわからないかもしれませんが、私はテキストベースのゲームを "過去に戻って"プレイしていました。
追加された 著者 savageguy,
オブジェクトはクラスのインスタンスです。したがって、あなたの変数(部屋のタイトル、部屋の説明など)と任意の部屋のコンストラクタを定義する1つの部屋のクラスがあります。あなたはあなたの部屋を作成するでしょう。すなわちroomList [x] [y] = new Room( "Room at X、Y"、 "This is a room")OOPについては、あまりにも多くを掘る前に。コードにジャンプするだけでは満足感がないかもしれませんが、確かな理解が得られればそれを補う以上のものになります。
追加された 著者 savageguy,
いいえ、これは多かれ少なかれ正しいトラックですが、各部屋やエリアはオブジェクトではなくクラスとして最適でしょうか?私は実際のゲームボードスタイルの動きを作ることを検討しましたが、私はそれがかなり線形になることのためにラインの下に道になると考えました
追加された 著者 Suavelizard,
でも、どうもありがとう、私は...私の先生がクラスを記述したやり方は...少なくとも
追加された 著者 Suavelizard,