2016-10-27 6 views
0

私はシンプルなサイコロのゲームを書いていて、 "リセット"のようなものを入力した後にプログラムをリセットする方法を知りたいと思っています。私は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

とすることができます。「リセット」とはどういう意味ですか?あなたのコードは1回だけ実行され、変数は保存されません。したがって、再度実行すると、すべてがすでに「リセット」されています。 –

+0

do-while-loopの種類を追加するとどうなりますか? do-whileは、ゲームが少なくとも1回は行われることを保証します。ループ内で、彼が再びプレイしたいのかどうかをユーザに尋ね、while-conditionの一部としてこの入力をチェックすることができます。 –

答えて

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

「リセット」とは、「繰り返し」を意味すると思いますか? whileループを使用してください。

また、実際にユーザーが入力したものをキャプチャする以外の文字列値を格納する必要はありません。

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!"); 
      } 
     } 
    } 
} 
関連する問題