1

文字列が必要な場合にのみコードがIntを返す理由がわかりません。ヘルプがあれば便利です。以下のコード。運が悪かったので、変数を文字列として宣言してみました。

チェリー、グレープ、ベル、xの3つのランダムな文字列を返したい

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

public class slot {
    public static void main(String[] args)
    {
        String answer = "y";
        int cherry;
        int grape;
        int bell;
        int x;



        Random generator = new Random(); // random generator
        Scanner scan = new Scanner (System.in); // scanner class

        System.out.println("Would you like to play the slot machine?(y/n): ");
        answer = scan.nextLine();

        while(answer.equalsIgnoreCase("y"))
        {
             cherry = generator.nextInt(5); // generates a random number
            grape = generator.nextInt(5);
            bell = generator.nextInt(5);

            System.out.println("The three numbers of the slot machine are: " + cherry +grape +bell);

            if(cherry == grape && grape == bell)
               {
                System.out.println("JACKPOT! All three of the same");
               }

            if(cherry == grape || cherry == bell || grape == bell )
               {
                System.out.println("Close, you got two of the same!!");
               }
            else
               {
                System.out.println("Not a winner");
               }

            System.out.print("Try again?(y/n): ");
            answer = scan.nextLine();
            System.out.println();
        }


        System.out.println("Bye!!");

    }

}
4

3 に答える 3

8

私はそれを次のように定式化します:

// The different results each "wheel" / "column" on the slot machine.
String[] results = { "cherry", "bell", "grape", "x" };

// Create a random result for each wheel.
String wheel1 = results[generator.nextInt(results.length)];
String wheel2 = results[generator.nextInt(results.length)];
String wheel3 = results[generator.nextInt(results.length)];

ifその後、ステートメントを続行します。(ただしelse if、2番目と3番目のステートメントについては行います)。

if (wheel1 == wheel2 && wheel2 == wheel3) {
    // jackpot
} else if (wheel1 == wheel2 || wheel2 == wheel3 || wheel1 == wheel3) {
    // two equal
} else {
    // all three different.
}

言語をさらに深く知りたい場合は、enumsを調べることをお勧めします。

(を使用して文字列を比較することは、10のうち9つの場合に悪い考えであることに注意してください==。ただし、ここでは、文字列の内容を比較する必要はありませんが、参照値を比較することで回避できます。)

于 2012-07-13T15:04:30.720 に答える
1

あなたはあなたintのの値を印刷しています。これを試してください:数値を生成し、この数値に応じて文字列を選択します。

Random generator = new Random();
    int a = generator.nextInt(5); 
    int b = generator.nextInt(5);  
    int c = generator.nextInt(5); 

    String roll1 = null;
    switch(b){
    case 1: roll1 = "cherry";
            break;
    case 2: roll1 = "grape";
            break;
    case 3: roll1 = "bell";
            break;
    default: roll1 = "xxx";
             break;
    }
    //repeat for b and c with roll2 and roll3
    System.out.println(roll1);
于 2012-07-13T15:15:04.800 に答える
1

文字列をintとして宣言しても、整数値にはなりません。あなたがする必要があるのはあなたが使っている単語を含む配列を作ることです。次に、配列のスコープ内にあるランダムなint値を生成します。

次に、ランダムなintで指定された場所にある配列から単語を選択します。

編集:申し訳ありませんが、私はあなたの質問全体を読んでいませんでした。何が印刷されているのか教えてください。

于 2012-07-13T15:04:04.130 に答える