OK、私は Java を 1 週間ほどしか学んでおらず、テキスト ベースのゲームを作りたいと思いました。スレッドを使い始めるまで、すべてが順調に進んでいました。ユーザーがゲームの任意の部分で「inv」を入力してインベントリを確認したかどうかを検出できるようにしたいと考えています。唯一の問題は、ゲームを開始すると、コンソールに「ゲームをプレイしますか?」と尋ねられることです。'yes' を 2 回入力する必要があります。これは、スレッドに「inv」と等しいかどうかを確認し、ユーザーが「yes」を入力してゲームを開始するかどうかを確認する if ステートメントがあるためだと思います。
(おそらく非常に非効率的なコードであることはわかっています。初めてのゲーム xD です)
メインクラス
import java.util.Scanner;
public class Game extends gameClass{
public static void main(String[] args) throws InterruptedException{
Scanner input = new Scanner(System.in);
Thread t1 = new Thread(new gameClass());
t1.start();
Menu.menu();
gameClass.beginning();
}
}
メニュークラス
import java.util.Scanner;
public class Menu{
public static void menu() throws InterruptedException{
Scanner input = new Scanner(System.in);//keyboard input
boolean playingGame=false;
String yesno;
System.out.println("Welcome! Would you like to play?");
while(playingGame==false){//repeats if until user input yes/no.
yesno = input.nextLine();
if (yesno.equalsIgnoreCase("yes")){
playingGame = true;
System.out.println("Great!");
そして、ここに「gameClass」のスレッドがあります
public void run(){
Scanner input = new Scanner(System.in);
try{
while(true){
if (input.nextLine().equalsIgnoreCase("inv")){
System.out.println(inventory);
}else if ((input.nextLine().equalsIgnoreCase("help"))||(input.nextLine().equalsIgnoreCase("what do i do"))){
help();
}
Thread.sleep(200);
}
}catch(Exception e){}
}
public static void help(){
}
}
注:すべてのコードを貼り付けたわけではありません。
そのため、コンソールに「ようこそ! プレイしますか?' スレッドは次の入力が「inv」かどうかをチェックしているため、最初に「yes」と入力する必要があります。次に、「yes」と入力して、再生したいプログラムを指定します。
何か助けていただければ幸いです。これは私を夢中にさせています。
さらに情報が必要な場合は、私に聞いてください:)