私がやりたいことを言葉にする方法は思いつきませんが、うまくいけばこれで説明できます。
友人がテキスト ベースのアドベンチャー ゲームを作成しており、管理しやすいようにゲームの一部を切り離す作業をしていました。
ゲームでは、プレーヤーの統計、プレーヤーのインベントリ、その他多数が別のクラスに送信されます。
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に比較的慣れていないため、これらの行を繰り返すにはどうすればよいかわかりません。
これが理にかなっていることを願っています。そうでない場合は申し訳ありません:(