私は小さな落書きテキストベースのゲームを作成していますが、whileループに問題があります。これが小さいwhileループとメソッドの問題(ループを正しく終了しません)
public static void elseoverseeroffice()
{
command = in.nextLine();
if (command.equals("look around") || command.equals("l") || command.equals("look"))
{
overseeroffice();
}
:下図のように
二度目の入力を取得する主な方法は、メソッドの先頭に戻ってそれらを送信することである(開始ボールト内の各部屋には、方法であり、
プレイヤーが端末を検査すると、端末のループに入るようにしています(whileループが下に、他のテキストがコンテキストのためにあります。 ();クールな効果のために印刷を遅らせるだけ)
public static void overseerterminal()
{
delay();
System.out.println("================================================");
delay();
System.out.println("= VAULT 9 OVERSEER TERMINAL =");
delay();
System.out.println("================================================");
delay();
System.out.println("\n > VAULT 9 OVERSEER INSTRUCTIONS");
delay();
if(elevator_sys==false)
{System.out.println(" > ACTIVATE ELEVATOR SYSTEM");}
else
{System.out.println(" > DEACTIVATE ELEVATOR SYSTEM");}
delay();
if(saferevealed==false)
{System.out.println(" > REVEAL SAFE");}
else
{System.out.println(" > HIDE SAFE");}
System.out.println(" > EXIT");
delay();
delay();
System.out.println("\n TYPE YOUR SELECTION");
while (!command.equals("vault 9 Overseer Instructions") || !command.equals("VAULT 9 OVERSEER INSTRUCTIONS") || !command.equals("ACTIVATE ELEVATOR SYSTEM") || !command.equals("activate elevator system") || !command.equals("REVEAL SAFE") || !command.equals("reveal safe") || command.equals("exit"))
{
command = in.nextLine();
私は端末で行うべきいくつかのオプションを持っています。これらはすべて端末にループバックします。あなたは、この端子に入力することができ、最後のコマンドが
else if (command.equals("exit"))
{
System.out.println("You shut down the terminal.");
elseoverseeroffice();
break;
}
である私は、ループを停止するが休憩を持っているが、それは監督の事務所前であれば、それは実行されません、と私は休憩を持っている場合それからelseoverseeroffice(); whileループの外側では、有効なものではない部屋のコマンドを入力すると、プレイヤーを端末ループに戻します。ここで
は、コマンドラインからいくつかのコピーと貼り付けたテキストです:
You press a button on the terminal, and it springs to life, displaying the need to input a password.
Type the password.
excalibur
================================================
= VAULT 9 OVERSEER TERMINAL =
================================================
> VAULT 9 OVERSEER INSTRUCTIONS
> ACTIVATE ELEVATOR SYSTEM
> REVEAL SAFE
> EXIT
TYPE YOUR SELECTION
exit
You shut down the terminal.
look around
**Overseer's Office**
This small important looking room is lit by a circular light.
A central round desk sits in the middle of the room.
There is an entrance to your east.
what
what
INVALID COMMAND
I am back in the terminal
INVALID COMMAND
exit
You shut down the terminal.
see
私は何が起こっているのか分かりません。私は部屋にいるときだけ、私をターミナルの方法に戻します。私は別の部屋でミスを犯すことができます(それぞれの部屋は個人的なので方法です)、 "それはできません"と言います。
助けが必要ですか?私はこれが長いことを知っていますが、コードが必要な場合は、私に何を伝えてコメントします。私はプログラム全体をアップロードしたくありません。
P.S これは私のプログラムの後半でも起こります。このすべてのことは、プレーヤーの健康状態が0よりも高い場合に実行され、私はプレーヤーのための居場所があります。 プレイヤーが別の部屋でループしている間に入り込んだり、その後、インスタントキルルームに入ると、それらは殺されません。おそらく、私はそれが終わりのゲーム方法につながるはずです、私は確信していません。
ありがとうございました。
最初のものであるべき) – emotionlessbananas
うん、私はちょうど私のコードを見て... ... command.equals( "exit")の代わりにwhile(.... || command.equals( "exit"))しました –