-1

インターネットで何時間も検索していますが、自分に合った正しい答えが見つかりません。

それで.. 「海戦」というゲームを作りました。そのゲームをプレイした後、コンソールにもう一度プレイするようにという質問が表示されます。

System.out.println("Well done! " + whosturn.getName() + ". A ship down!" );
                        System.out.println("Hurraaaaaayyyyy, All boats down!!");
                        System.out.println("Do you want to play this game again? (y/n) ");
                        input = scanner.next().toLowerCase();
                        if(input == "y"){
                            System.out.println("The game should start again now..");
                            System.out.println("Butttttttt, I don't know how to...");
                        }

                        else{
                            System.out.println("Thank you for player Battleships!");
                            System.out.println("See you next time ;)");
                        }
                    }
                    else{
                        FiredPosition.setDisplayValue('*');
                        System.out.println("Good job, you hit a ship!");
                        switchTurn();
                    }

ユーザーがコンソールで y と入力した場合。ゲームが再開するはずです。

Main(args) などについて何かを読みました..これは別のクラスであるため、うまくいきませんでした。

皆さんが私を助けてくれることを願っていますか?

チャオ

4

2 に答える 2

1

メイン クラス SeaBattle が現在次のようになっている場合:

public class SeaBattle {
 public static void main(String[] args) {
   ...
 }
}

次の方法で変更できます。

public class SeaBattle {
 private static String[] args;
 public static void run() {
   //do the same than main() previously
 }
 public static void main(String[] args) {
   SeaBattle.args = args;
   run();
 }
}

その後、ゲームを再起動するには、

SeaBattle.run();
于 2013-04-08T12:15:26.807 に答える
1

簡単な答えは次のとおりです。最初にゲームを開始するために何をしても、「y」を検出したらもう一度やり直してください。

ただし、より詳細な回答には、オブジェクトを使用してゲームの状態を保存および更新することが含まれます。現在これを行っているかどうかは、説明から完全には明らかではありません。したがって、戦艦タイプのゲームの場合、オブジェクトにはゲーム エリアの 2 次元配列と、誰の番かを格納するための変数が含まれている可能性があります。このオブジェクトには、船がゲーム エリア内のどこにあるかをランダムに選択したり、誰のターンの値を設定したりするかなどの「初期化」メソッドがあります。

メイン メソッドはこのオブジェクトと対話するため、ゲーム オブジェクトの初期化メソッドを呼び出し、各ターン後に別のメソッド (「isGameFinished」など) を呼び出して、ゲームが終了したかどうかを確認します。isGameFinished メソッドは、すべての船が破壊されたかどうかを確認し、そうであれば true を返します。true が返された場合、ユーザーは新しいゲームを開始するように求められます。「y」を入力すると、ゲーム ステートの完全に新しいオブジェクトを作成するか、ゲーム ステートの初期化メソッドを再度呼び出すことができます。その後、新しいゲームを開始するための新しいゲーム ステートが作成されます。

于 2013-04-08T12:31:33.953 に答える