2017-12-18 19 views
-1

私は簡単な推測プログラムを作っています。あなたはそれが間違っている場合は、それが番号を再度印刷する必要があります番号1-20を推測します。しかし、まだそれをやっているので、そのことを覚えておく方法を理解する助けが必要です。推測プログラムを作成するには、その番号を推測したかどうかを覚えておく必要があります。

私を屈辱にしないでください、私はプログラミングには慣れていません。ここで=)

は、コードの友人である:

import java.util.Scanner; 

public class TG_UN5EX5 { 

    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 

     int characternumber = 0; 

     int characterrandom = (int) (Math.random() * (100 + 1 - 1) + 1); 

     int[] list = new int[20]; 

     int e = 0; 

     int random = (int) (Math.random() * (20 - 1 + 1) + 1); 

     int guesstimes = 5; 

     int guess = 0; 

     int guessed = 0; 

     while (guess != random && guesstimes > 0) { 
      for (int b = 0; b < list.length; b++) { 
       e++; 
       list[b] = e; 

       if (guess == e) 
        list[e] = -1; 
       if (e >= 20) 
        e = 0; 

       if (list[e] != -1) 
        System.out.print("[" + list[b] + "] "); 
      } 

      System.out.print("What is the number?"); 
      guess = scan.nextInt(); 

      if (guess > random) 
       System.out.println("Too High!"); 

      else if (guess < random) 
       System.out.println("Too Low!"); 

      else 
       System.out.println("You got it!"); 

      guesstimes--; 
     } 

     if (guess != random) 
      System.out.println("Game over! \n You ran out of tries!"); 

     else 
      System.out.println("You won!"); 

    } 
} 

答えて

1

は、Setのでアレイを交換してみてください。それらは.contains()のようなメソッドで以前の推測を追跡するのに役立ちます。 Setの型を設定するときは、intプリミティブではなくIntegerオブジェクトを使用します。

final Set<Integer> guesses = new HashSet<>(); 
0

あなたはそれを宣言した直後に、あなたの変数リストを初期化できます。その後、

int[] list = new int[20]; 
for (int b = 0; b < list.length; b++) { 
list[b] = b+1; 
} 

そして、ループのためにあなたを書き換える:

for (int b = 0; b < list.length; b++) { 
if (guess == list[b]) 
    list[b] = -1; 
if (list[b] != -1) 
    System.out.print("[" + list[b] + "] "); } 
関連する問題