2017-07-21 8 views
0

最初のオフは、コードがうまくいかなければならないという考え方のプロセスを示すテキストです。私は一般的にはプログラミングに新しく、ちょうど数日前にJavaを学び始めました。私はoopの仕組みを基本的に理解していると思いますが、自分のコードにうまく実装できません。私はちょうどそれらで出始めているもののwhileループの使用は、私には意味のビットを行い、DテキストベースのゲームJavaでwhileループを使用するにはどうすればいいですか?

物事私が欲しい:

3つのオプション

メニュー

とメインメニュー(キャンプ)

  1. クエスト(クエストループを活性化させる)タウンへ

  2. ゴー(町のループを活性化させる)

  3. モンスターにダメージを与える

    1. 戦いのモンスターを「怪物が現れ、」 クエストランダムモンスターと戦うと金を得るの ゲームプレイループ/スコア

    (プログラムを終了)、ゲームを終了しますモンスターはダメージを受けます メインループに戻る

  4. 使用アイテム アイテムの効果は、メインメニューに戻り

  5. 実行 リターン(メインメニューをアクティブに)

タウン は、あなたが上で金を過ごすことができます戻ってメインループに を適用項目 使用項目を選択します健康と被害額を増やすための「歯車」

「私は鍛冶屋です。」

プレイヤーが終了したゲーム

を死ぬか、選択したときに
  1. アップグレード武器(ダメージを増加)
  2. アップグレードアーマー(健康を向上させる)
  3. 休職タウン(バックメインメニューにプレイヤーを戻す)

ゲームは終了します

スコアを表示し、プレーしてくれたプレイヤーに感謝

以下はロジックのプロトタイプです。

これはうまくいくはずですが、実行するたびに が正しく機能せず、無限ループの が終了します。私はあなたのうちの1人ができることを期待しています なぜそれが動作しないとちょっと右の私を操縦する参照してください 方向。何でも大歓迎です!

また、キャンプ、ダンジョン、タウンのブーレンに関するコメントはありますか? 私はそれらが本当に必要かどうか分かりません。おそらくちょうど に余分なコードがありますが、本当にわかりません。

import java.util.Scanner; 


public class logic 
{ 
    public static void main(String[] args) 
    { 

    boolean running = true; 
    Scanner in = new Scanner(System.in); 
    System.out.println("This is a test"); 

    while(running) 
    { 
     boolean camp = true; 
     boolean dungeon = false; 
     boolean town = false; 
     String input = in.nextLine(); 
     while(camp) 
     { 
      System.out.println("what u do?"); 
      System.out.println("1. go dungeon"); 
      System.out.println("2. go town"); 
      System.out.println("3. quit"); 
      if (input.equals("1")) 
      { 
       dungeon = true; 
       while(dungeon) 
       { 
        System.out.println("you are in the dungeon"); 
        dungeon = false; 
        break; 

       } 



      } 
      else if (input.equals("2")) 
      { 
       dungeon = false; 
       town = true; 
       while(town) 
       { 
        System.out.println("you are in the town"); 
        town = false; 
        break; 

       } 


      } 
      else if (input.equals("3")) 
      { 
       break; 


      } 
      else 
      { 
       System.out.println("invalid command!"); 


      } 


     } 


    } 

    } 

} 
+0

おそらく、どこかにキャンプするためにfalseを割り当てる必要があります。 – JFPicard

+1

私は間違っている場合は私を修正しますが、彼らはキャンプや実行中のループの中にあるので、私はダンジョンや町の中でそれを行うことができません –

+0

オプション3で何かしたいと思うかもしれません – JFPicard

答えて

0

個人的に、私は、whileループをあまり使用しないだろうし、代わりに独自の機能の中に、各セクションのロジックを入れ、その後に呼び出されるべき機能を決定するのif-else-IF/switchステートメントを使用して、でこれを行いますwhileループ。悲しいことに、悲しいことに私はこれをテストすることができません。なぜなら、Java環境を持っていて、Javaを使ってからしばらくしています。

+0

申し訳ありませんが、私は間違いなくそれを調べます。私はwhileループがお粗末であることに同意します。私は関数/オブジェクトを作成してもそれらを呼び出すことはまだ私には少し奇妙であると言ったように、私はまだそれをすべて行う方法を学んでいます。 –

+0

ああ、私はすべてのコマンドプロンプトとメモ帳++を使用しています。そのコードをテストする時間があればそれは簡単な方法です。本当に感謝しています:) –

+0

あなたが提案したことを理解することは、私が最初に思ったほど実際には難しくありませんでした。試作品をダウン....してくれてありがとう! :D –

0

これは私が思いついた新しいコードです。私はどのようにしてそれぞれの分野をすべて自分の方法で壊すかを理解することができました。これにより、ゲームの世界をより簡単に構築できるはずです。D

import java.util.Scanner; 


public class LogicTest 
{ 
    Scanner in = new Scanner(System.in); 

    public static void main(String[] args) 
    { 
     LogicTest game; 
     game = new LogicTest(); // a new instance of the public class folder has to be created in order to use all the other methods 

     game.run(); 


    } 

    public void run() // this method is used to run the game from the main method 
     { 
      camp(); 
     } 

    public void quest() 
    { 
     System.out.println("you go on quest"); 
     camp(); 
    } 
    public void town() 
    { 
     System.out.println("you go to town"); 
     camp(); 
    } 
    public void camp() // this method acts as the game hub where the player can choose what they want to do next 
    { 
     System.out.println("you are in your camp"); 
     System.out.println("----------------------"); 
     System.out.println("what do you want to do?"); 
     System.out.println("1. go quest"); 
     System.out.println("2. go town"); 
     System.out.println("3. quit"); 


     String input = in.nextLine(); 
     // each one of these options just calls its respective method 
            // the methods are what have the menus and everything for each location 
     if (input.equals("1")) 
     { 
      quest(); 
     } 
     else if (input.equals("2")) 
     { 
      town(); 
     } 
     else if(input.equals("3")) // by leaving this empty the program has nothing else to read with this option and so it closes 
     { 

     } 
     else 
     { 
      camp(); 
     } 
    } 



} 
関連する問題