2016-10-27 3 views
0

Я написал игру с кубиками simlpe и хотел бы знать способ сброса программы после ввода чего-то типа «Сброс». Я использую cmd для запуска своих программ. Графика, включенная ни в одну из моих программ, отсутствует.Способ сброса программы на cmd?

import java.util.Scanner; 
import java.util.Random; 


public class Dice 
{ 
public static void main(String[] args) 
{ 
String personPlay; //User's play 
String computerPlay = ""; //Computer's play 
int computerInt; //Randomly generated number used to determine computer's play 
String response; 


Scanner scan = new Scanner(System.in); 
Random generator = new Random(); 

System.out.println("Let's play some dice!"); 

//Generate computer's play 
computerInt = generator.nextInt(6)+1; 

//Translate computer's randomly generated play to 
//string using if statements 

if (computerInt == 1) 
    computerPlay = "1"; 
else if (computerInt == 2) 
    computerPlay = "2"; 
else if (computerInt == 3) 
    computerPlay = "3";  
else if (computerInt == 4) 
    computerPlay = "4"; 
else if (computerInt == 5) 
    computerPlay = "5"; 
else if (computerInt == 6) 
    computerPlay = "6"; 

//Get player's play from input 
System.out.println("Choose a number between 1 and 6."); 

personPlay = scan.next(); 

//Print computer's play 
System.out.println("The dice rolled " + computerPlay); 
//See if you won. 
if (personPlay.equals(computerPlay)) 
    System.out.println("You won!"); 
else System.out.println("You lost!"); 
} 
} 
+1

Кроме того, те операторы if могут просто быть 'computerPlay = String.valueOf (computerInt);' –

+0

Что вы подразумеваете под «сбросом»? Ваш код работает только один раз, переменные не сохраняются, поэтому при повторном запуске все уже «перезагружается». –

+0

Как насчет добавления какого-то цикла do-while. do-while гарантирует, что игра будет проводиться хотя бы один раз. Внутри цикла вы можете попросить пользователя, хочет ли он снова играть и проверить этот вход как часть условия while. –

ответ

0

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

import java.util.Scanner; 
import java.util.Random; 


public class Dice 
{ 
    private static void play(Scanner scan, Random generator) 
    { 
     int computersPlay, usersPlay; 

     System.out.println("Let's play some dice!"); 
     computersPlay = generator.nextInt(6) + 1; 

     System.out.print("Give a number:"); 
     usersPlay = scan.nextInt(); 

     System.out.printf("The dice rolled %d\n", computerPlay); 

     if (computersPlay == usersPlay) { 
      System.out.println("You win !"); 
     } 
     else { 
      System.out.println("You lose!"); 
     } 
    } 

    public static void main(String[] args) 
    { 
     Scanner scan  = new Scanner(System.in); 
     Random generator = new Random(); 

     do { 
      play(scan, generator); 
      System.out.println("If you want to continue type:'Reset'"); 
     } while(scan.next().equals("Reset"); 
    } 
} 

Изменения переместив игру на другой метод, чтобы сохранить контроль, используя сканеры nextInt метод, чтобы получить номер непосредственно и сравнить, что вместо того, чтобы, и do {} while(); заявление, чтобы это повторять произвольное количество раз (учитывая, что вы вводите сброс)

0

Вы должны использовать бесконечный цикл и получить входные данные от пользователя, убедитесь, что пользователь ввел «RESET», если так бросить кости еще раз или делать все, что вы делаете сейчас. Если он ввел фразу типа «EXIT» бесконечный контур цикла или ваша программа заканчивается.

0

«reset» Я предполагаю, что вы имели в виду «повторить»? Используйте петлю while.

Кроме того, нет необходимости хранить значения String, отличные от того, что пользователь вводил.

public class DiceGuess { 

    // Global variables for this class 
    static Random generator = new Random(); 
    static Scanner scan = new Scanner(System.in); 

    public static void main(String[] args) { 

     System.out.println("Let's play some dice!"); 

     // Initialize some variables 
     int computerInt; 
     String response; 

     while (true) { // Play forever 
      computerInt = generator.nextInt(6) + 1; 
      System.out.println("Choose a number between 1 and 6. ('quit' to stop playing)"); 
      response = scan.nextLine(); 

      if (response.equalsIgnoreCase("quit")) break; // Stop the game 

      try { 
       System.out.println("The dice rolled " + computerInt); 

       if (Integer.parseInt(response) == computerInt) { 
        System.out.println("You won!"); 
       } else { 
        System.out.println("You lost!"); 
       } 
      } catch (NumberFormatException e) { 
       System.err.println("That wasn't a number!"); 
      } 
     } 
    } 
} 
Смежные вопросы