3

私は、学校の前に物事のスイングに戻るために、Java で少しプログラミングの演習を行っています。私のプログラムはビデオ ゲーム (Team Fortress 2) に関連しているため、多数の武器に関するデータを保存する必要があります。

私の現在のモデルでは、武器の種類 (Scout_Primary や Soldier_Secondary など) ごとにクラスがあり、選択した特定の武器に応じて各クラスの変数を変更します。たとえば、Scout_Primary が「Scattergun」の場合、ベース ダメージとリロード速度をそれに応じて変更します。

TF2 に精通している場合は、大量の武器があることがわかります。すべての武器のステータスをプログラムに保存するにはどうすればよいですか? カテゴリ内の各武器の統計を含む巨大な switch ステートメントを書きたくありません。私は SQL をもっと使いたいと思っています (SQL の経験はありますが、それほど多くはありません。以前に JDBC を使用したことがあります)。

ホスティングについて心配する必要がないように、データベースを作成し、それをプログラム自体と一緒にパッケージ化することは可能ですか? 私が持っている唯一の経験は、リモート データベースです。

私がやりたいことは、そのローカルデータベースを持ち、選択を実行してデータをコンストラクターに渡すことです。前もって感謝します。

編集: 私はダービーを見てきましたが、これは正しい方向ですか?

4

5 に答える 5

1

はい、これには SQL が適している可能性があります。Apache Derbyを調べる必要があります。その主な利点は、軽量で、Java アプリケーションに簡単に組み込むことができることです。あなたが話していることを正確に行うことができます-ローカルで使用してください。

唯一の問題は、実際のデータをアプリケーションにバンドルすることです。単純なファイルで始めることをお勧めします。JSON や XML でエンコードされたもの、または CSV だけなど、基本的には何でも選択できます。次に、プログラムの開始時に、データベースが存在するかどうかを確認します。そうでない場合は、ファイルを作成し、ファイルを読み取り、ファイルのデータをデータベースに保存します。これで、SELECT ステートメントなどを使用してクエリを実行する準備が整いました。

于 2012-08-23T19:00:54.827 に答える
0

特にJDBCの経験があると述べたので、データベースを使用することをお勧めします。

MySQL や Postgres などのデータベース エンジンをサーバーにインストールすることについて心配したくない場合は、Java アプリケーションと共に配布できる H2 データベース エンジンを使用できます。

H2 は Java で書かれており、JDBC API を備えています。

于 2012-08-23T19:02:23.250 に答える
0

単純なクラスの武器でこれができると思います:

class Weapon {
  private WeaponType weaponType;
  private ClassType classType;
  private int damage;
  ...
}

enum WeaponType {
  PRIMARY, SECONDARY, ..
}

enum ClassType {
  SCOUT, SOLDIER, ...
}

Jacksonなどのライブラリを使用して、これを json との間でマッピングすることもできます。手動で値を時々更新する必要がある場合、Json はデータベースに比べてはるかに単純です。

于 2012-08-23T19:02:59.980 に答える
0

なぜ武器ごとに異なるクラスが必要なのですか? クラス武器を作成する方が良い選択であると思います。むしろ、他のさまざまなカテゴリの武器によって拡張できる抽象クラスを作成することをお勧めします。collection武器を(実行したい操作の種類に応じて、リスト、マップ、セット)に格納するのはどうですか。ゲームの統計を保存し、Web ベースのアプリとしてゲームを起動することを目的とする場合は、データベースの使用をお勧めします

于 2012-08-23T18:58:21.630 に答える
0

何を選択するにせよ、武器を保持するためのある種のデータベースを使用する必要があるでしょう。SQLite は、SQL の背景知識が必要ですが、最小で実装が最も簡単なものの 1 つです。

また、JSON または XML でフォーマットされたプレーンテキスト ファイルにすべての武器を保存することもできます... 入力が少なくて済むので JSON を選択しますが、XML も簡単に実行できます (そして、 XML パーサーは既に利用可能です)。ただし、json.org からソースをダウンロードする必要がありますが、JSON の方が実装が簡単です。

{
"weapons": [
    { "name":"Scattergun" , "damage":"5" },
    { "name":"Flamethrower" , "damage":"8" , "pyro":"yes" }
]
}

ご覧のとおり、TF2 についてはまったくわかりません。

于 2012-08-23T18:59:11.937 に答える