2017-12-18 14 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

세트의와 배열을 교체하십시오. 그들은 .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] + "] "); }