ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのプログラム

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Javaゲームプログラミングという本で勉強しているのですが、この中のネットワーク対戦すごろくゲームを作るという項目で、サーバのプログラムがわかりません
プログラムの説明も書いてないのでよくわからないので教えて頂けたら光栄です
突然paramsという単語がでてきたのですがどう意味なのでしょうか?
あとこのプログラムの大雑把でいいので教えて頂けたら幸いです

// main()メソッド
public static void main(String args[]) {
// コマンドライン引数をparamsに格納
for(int i = 0; i < args.length; i++) {
if(args[i].indexOf("-") == 0) {
if(i + 1 < args.length && args[i + 1].indexOf("-") != 0)
params.put(args[i].substring(1), args[i + 1]);
else
params.put(args[i].substring(1), args[i].substring(1));
}
}
(new SugorokuServer()).execute();
}

コメント(7)

paramsの型はなんですか?
たぶん、Mapインターフェースを実装した何かだとは思うのですが。

判定の流れとしては、
複数の実行時引数があって(-A -B -C D ←こんなの)、最初のifで-が先頭の引数(-A -B -C)に対して処理するようにして、次のifは、(-C D)を処理するためかな。

i+1 < args.lengthの比較は今注目している引数の後ろにまだ判定できる実行時引数があるかを。
args[i + 1].indexOf("-") != 0の比較は、今注目している引数の次の引数が-から始まっていないかを。
それによって、分岐してるみたいですね。

args[i].substring(1)
これは、たとえば -message って命令があったら、messageに変換するってことです。

(new SugorokuServer()).execute();
これは分けて書くと
SugorokuServer ss = new SugorokuServer();
ss.execute();
です。


でも、paramsをどこかで渡してるわけでもなく。
何か足りないと思うのですが…
paramsは
public static Map params = new HashMap();
という、恐ろしい現実が垣間見えますねぇ。笑
>檸檬さん、しのぶさん
返事が遅くなってしまって申し訳ありません
質問に答えて頂いてありがとうございました
とても参考になります
paramsは
static Hashtable params = new ();
で最初に定義されてました
Hashtableのオブジェクトって事でよろしいでしょうか?
> static Hashtable params = new ();

コンパイルエラーにならないですか。

static Hashtable params = new Hashtable();

ではなく?

すいません、頁数教えて下さい。
あー、すいません
chunさんのおっしゃるとおりです
俺のミスです
static Hashtable params = new Hashtable();
です
書き漏れがあるはず。

ホントは
new SugorokuServer().execute(params);

new SugorokuServer(params).execute();
って感じな気がする。

著者教えて。
帰りに本屋寄るから。
帰りに本屋さんによってまで確かめてくれると言ってくれたのに返事が遅れて申し訳ないです
長久勝さんが著者です

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング