0

私がやりたいことを言葉にする方法は思いつきませんが、うまくいけばこれで説明できます。

友人がテキスト ベースのアドベンチャー ゲームを作成しており、管理しやすいようにゲームの一部を切り離す作業をしていました。

ゲームでは、プレーヤーの統計、プレーヤーのインベントリ、その他多数が別のクラスに送信されます。

    static Char player;
    static battle bat;

    public static void directchoice(Char p, battle b) {
    player = p;
    bat = b;
    String[] rightLeft = {"Left", "Right"};
    int direct = JOptionPane.showOptionDialog(null, "Left or Right?", "Option", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, rightLeft, rightLeft[0]);
    if(direct == 0){
        Maze.makeChoice(player, bat);
    }
    if(direct == 1){
        Maze.DoorChoice(player, bat);   
    }
}

ここでわかるように、クラスの最初は、「プレイヤー」と「バット」がキャラクターとバトルです。これらは、ゲームの前のセクションからインポートされます。

サブルーチン括弧内の「char p, battle b」と「player = p; bat = b;」サブルーチンごとにサブ内で繰り返す必要があります。

たとえば、そのクラス内の別のサブルーチンを次に示します。

    public static void DoorChoice(Char p, battle b) {   
    player = p;
    bat = b;
    String[] others = {"Go through door", "Don't go through"};
int checkers = JOptionPane.showOptionDialog(null, "Go through door or not?", "Option", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, others, others[0]);

プレイヤーのインベントリ、モンスターなど、繰り返す必要があるものは他にもたくさんあります。私がやろうとしているのは、サブルーチンごとにこれらのコード行を自動的に繰り返す方法を作成することです。すべてを入力するか、コピーして貼り付ける必要はありません。

考えられることを試してみましたが、まだJavaに比較的慣れていないため、これらの行を繰り返すにはどうすればよいかわかりません。

これが理にかなっていることを願っています。そうでない場合は申し訳ありません:(

4

1 に答える 1

0

あなたがやろうとしていることは と呼ばれloopます。ループには多くの種類があります。

の一般的な例を次に示しますfor-loop

for (int counter; counter<repeatXTimes;counter++){
//This will repeat for as long as counter<repeatXTimes, and counter will increase once per loop.
}
于 2013-04-21T15:33:39.217 に答える