0

という理由だけで、TBAP(テキストベースのアドベンチャープログラム)をプログラミングしています。私はそれを始めたばかりで、すでに問題を抱えています。私がやりたいことは、出力テキストでプログラムを紹介するメインクラスを持つことです。授業の最後に、「どこへ冒険に行きたいですか?」と尋ねます。5 つのオプションがあり、そのうち 3 つは別の冒険で、そのうち 2 つはインベントリ クラスです。今、私は最初の冒険クラスで立ち往生しています. path という int 変数があります。パス == 1 の場合、ファンタジー アイランド クラスに移動し、冒険に進みます。if ステートメントでその冒険を呼び出すものはありますか? 変数名とパスを使用して、コンストラクターとゲッターとセッターを作成しました。

サマープロジェクトクラス:

package summerproject;


import java.util.Scanner;
import static summerproject.Fanastyisland.name;
import static summerproject.Fanastyisland.path;

public class Summerproject {
private static int path;
private static String name; 



public Summerproject (int path, String name)
{
    this.path = path;
    this.name = name;


}


public String getname() {
    return name;
}




public void setname(String name) {
    this.name = name;
}




public int getPath() {
    return path;
}


    public void setPath(int path) {
    this.path = path;
}
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);

System.out.println("Welcome to the adventure text program! You are the choosen one to save the universe");



    System.out.println("Press any key to continue...");
    try
    {
        System.in.read();
    }  
    catch(Exception e)
    {}  

    System.out.println("Welcome. You are the choose one, a legend,a becon of      hope to save the universe from the forces of evil.");
    System.out.println("Only with you skills and your great power can you destroy the evil doing world.");
    System.out.println("Please enter heros name");
    name = in.next();

    System.out.println("Okay " + name + ", lets begin our adventure!!");

    System.out.println("The world can be saved, there is hope. But in order to save the world, \n "
            + "+ you must complete 9 tasks in three diffrent places in three diffrent periods of time. The past, the present and the future.");
     System.out.println("Press any key to continue...");
    try
    {
        System.in.read();
    }  
    catch(Exception e)
    {}  

    System.out.println("The three places are the past in the year 1322 in Fantasy island");
    System.out.println("The present is the evil little town of Keene N.H.");
    System.out.println("And the future to the year 2567 in Space!"); 



    System.out.println("Where would you like to go on your adventures?");
   System.out.println(" 1). Fantasy Island");
    System.out.println(" 2). Keene");
    System.out.println(" 3). Outer space");
    System.out.println(" 4). Buy wepons or potions!");
    System.out.println(" 5). Sell wepons!"); 
    path = in.nextInt();

   if (path == 1)
    {

    }


}
}

これが私のファンタジーアイランドクラスです:

package summerproject;


import java.util.Scanner;
import static summerproject.Fanastyisland.name;
import static summerproject.Fanastyisland.path;
 public class Fanastyisland extends Summerproject {
public static String name;
    public static int path;


    public Fanastyisland (String name, int path)
    {
        super(path,name);
        name = name;
        path = path;


    }
    public String getName() {
    return name;
}




public void setName(String name) {
    this.name = name;
}




public int getPath() {
    return path;
}


    public void setPath(int Path) {
    this.path = path;
}




public static void main(String[] args) 
//this is where the fantasy island        adventure begins. 
{
   System.out.println("Welcome to fantasy island!!")



}
}

私が言ったように、if ステートメントでサブクラスを呼び出したいのですが、その方法がわかりません。1つ入力したら、ファンタジーアイランドクラスに行きたいです。私はまだ冒険をプログラムしていません。修正されたらすぐに始めます。今のところ、出力を「ファンタジー島へようこそ!」にしたいだけです。1と入力すると、どんな助けも素晴らしいでしょう! ありがとうございました!

4

2 に答える 2

1

共通のインターフェースを作成するだけです

public interface Adventures{
    public void start();
}

すべての冒険はこのインターフェースを実装し、開始メソッドをオーバーライドできます

public class AdventureA implements Adventures {

    @Override
    public void start() {
        // Do whatever you want
    }

}

summerproject は、インターフェイスの型を持つクラス変数を持つことができます。

public class Summerproject {
private static int path;
private static String name; 
private Adventure adventure;
...
}

その後、if ステートメントで、この冒険を割り当てて start メソッドを呼び出すことができます。

if (path == 1)
{
    adventure = new AdventureA();
    adventure.start();
}
于 2015-08-11T06:33:08.790 に答える