2013-05-15 3 views
-1

Мой класс недавно узнал о циклах и генераторах случайных чисел, поэтому я хотел попробовать создать игру, в которой вы догадались, что сумма двух кубиков. В конце каждой игры я хочу показать все догадки пользователя и строку, отображающую значение. Моя проблема отображает все значения, введенные пользователем в конце. Это мой код до сих пор:Отображение результатов после цикла

import java.util.Random; 
import java.util.Scanner; 
public class Dice2 
{ 
    public static void main (String[] args) 
    { 
     Scanner kb = new Scanner(System.in); 
     Random rn = new Random(); 
     int roll1= rn.nextInt(6)+1; 
     int roll2= rn.nextInt(6)+1; 
     int sum = roll1 +roll2; 
     boolean retry = false; 
     System.out.print("Guess a number: "); 
     int guess = kb.nextInt(); 
     kb.nextLine(); 
     if (guess!=sum) 
     { 
     retry= true; 
     while (retry) 
     { 
      System.out.print("Wrong, enter again: "); 
      int newGuess = kb.nextInt(); 
      retry = true; 
      if(newGuess==sum)      
      { 
       retry = false; 
       System.out.printf("You guessed: %4d%4d\n", guess,newGuess); 
       System.out.println("The number was: " + sum); 
      } 
      else 
       continue; 
     } 
     } 
     else 
     System.out.println("The number was " + sum); 
    } 
} 

Проблемы я получаю, когда я пытаюсь показать все номера пользователя угаданных. Я хочу показать все догадки, которые у пользователя были, поэтому я использовал цикл while. Однако я не уверен, как сделать вывод о всех входах, которые пользователь догадался. Например, если правильный ответ был 8 и пользователь угадал 2,3,4,5,6,8 я хочу, чтобы иметь возможность показать что-то вроде следующего:

You guessed: 2,3,4,5,6,8 
The number was :8 

Я понимаю, что после каждой итерации while loop я перезаписываю переменную newGuess, однако я не уверен, что делать, чтобы отображать все числа, которые пользователь догадывался. Любая помощь или советы будут оценены.

+0

Вы узнали о массивах или массивах? – FDinoff

+0

Мы еще не узнали об этом. – Aero

+0

Ну, я рекомендую искать массивы. Затем, как только вы поймете, что они ищут ArrayLists. – FDinoff

ответ

3

Если все, что вам нужно, это строка с догадками пользователя, используйте StringBuilder.

StringBuilder builder = new StringBuilder(); 
builder.append(5); 
builder.append(","); 
builder.append(4); 
builder.append(","); 
builder.append(9); 
System.out.println(builder.toString()); 

Создайте один перед циклом while, а затем присоедините к нему каждый раз через цикл.

+0

Просто попытался использовать то, что вы предложили, и моя программа работает сейчас, спасибо! – Aero

0

Вы можете сохранить угаданные значения в векторе. Затем прокрутите его, чтобы показать результаты.

Смежные вопросы