3

タイトルが示すように、私はスロット マシンである宿題のプログラムをやっています。私は周りを検索しましたが、プログラムが私にとって十分に正しく機能することにかなり満足しています. 私が抱えている問題は、乱数の生成に加えて、1〜5の数字(チェリー、オレンジ、プラム、ベル、メロン、バー)に値を割り当てることになっています。次に、プログラムの実行時に数値の代わりに出力を表示します。これを行う方法について、誰かが私を正しい方向に向けることができますか?

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



public class SlotMachineClass {


public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    int Coins = 1000;
    int Wager = 0;




    System.out.println("Steve's Slot Machine");
    System.out.println("You have " + Coins + " coins.");
    System.out.println("Enter your bet and press Enter to play");




    while (Coins > 0)
    {
    int first = new Random().nextInt(5)+1;
    int second = new Random().nextInt(5)+1;
    int third = new Random().nextInt(5)+1;

    Wager = input.nextInt();

    if(Wager > Coins)
             Wager = Coins;

    System.out.println(first + " " + second + " " + third);


    if(first == second && second == third)
    { Coins = Coins + (Wager * 3);
         System.out.println("You won " + (Wager * 3) + "!!!!" + " You now have " + Coins + " coins.");
         System.out.println("Enter another bet or close program to exit");}

    else if((first == second && first != third) || (first != second && first == third) || (first != second && second == third))
    { Coins = Coins + (Wager * 2);
         System.out.println("You won " + (Wager * 2) + "!!!" + " You now have " + Coins + " coins.");
         System.out.println("Enter another bet or close program to exit");}

    else {Coins = Coins - Wager;  
    System.out.println("You Lost!" + "\nPlay Again? if so Enter your bet.");}



    }

    while (Wager == 0)
    {
        System.out.println("You ran out of coins. Thanks for playing."); 
    }


}

}

4

5 に答える 5

4

があり、それに関連付けintたい場合は、いくつかの方法があります。String

1 つ目は、文字列の配列を取得して検索することです。

public static String[] text = new String[] {"Cherry", "Bell", "Lemon", "Bar", "Seven"};
public String getNameForReel(int reelValue) {
    return text[reelValue];
}
// And to call it...
System.out.println(getNameForReel(first)); //etc...

または、switch ステートメントでそれを行うこともできます (私はこれを好みませんが、そうする場合もあります)。

public String getNameForReel(int reelValue) {
    switch(reelValue) {
       case 0: return "Cherry";
       case 1: return "Bell";
       case 2: return "Lemon";
       case 3: return "Bar";
       case 4: return "Seven";
    }
}
于 2013-03-28T01:52:08.600 に答える
2

ルックアップ テーブルが必要です。

String[] text = new String[] {"Cherry", "Bell", "Lemon", "Bar", "Seven"};

それからあなたはただすることができます

System.out.println(text[first] + " " + text[second] + " " + text[third]);

より多くのメソッドを作成せずに。

于 2013-03-28T01:54:26.490 に答える
0

これは、プログラミングのベストプラクティスに従うと思う質問に対する代替ソリューションです。これはおそらく配列よりも割り当てに許可されておらず、StackOverflowで答えを得たという完全な景品になりますが、問題は->マッピングenumで型を使用することに役立ちます:intenum

enum Fruit {
   Cherries(1), 
   Oranges(2), 
   Plums(3), 
   Melons(4), 
   Bars(5);

   private static final Map<Integer, Fruit> lookupMap = new HashMap<Integer, Fruit>();
   static {
      for (Fruit fruit : Fruit.values()) {
         lookupMap.put(fruit.getLookup());
      }
   }

   static Fruit fromLookup(int lookup) {
      return lookupMap.get(lookup);
   }

   private final int lookup;       

   private Fruit(int lookup) {
      this.lookup = lookup;
   }

   int getLookup() {
      return lookup;
   }
}

void printEnumExample() {
   int fruitToPrint = 4;
   System.out.println(Fruit.fromLookup(fruitToPrint)); // <- This will print "Melons"
}
于 2013-03-28T02:30:38.930 に答える
0

配列を作成します。

String[] s = {Cherries, Oranges, Plums, Bells, Melons, Bars};

s[num-1]次に、代わりに印刷できますnum(numはランダムなintです)。たとえば、ランダムな int が 2 になった場合、s[2-1]、つまり s[1] を出力するとオレンジになります。

于 2013-03-28T01:53:07.787 に答える
0

導入コースで新しいプログラマーが使用する可能性が最も高い非配列ソリューションは、ネストされた if-else です。

String fruitToPrint = "";
if (num == 0)
   fruitToPrint = "Cherries";
else if (num == 1)
   fruitToPrint = "Oranges";
else if (num == 2)
   fruitToPrint = "Plums";
else if (num == 3)
   fruitToPrint = "Bells";
else if (num == 4)
   fruitToPrint = "Melons";
else if (num == 5)
   fruitToPrint = "Bars";
else
   System.out.println("Couldn't assign fruit from num=" + num);

System.out.println("The corresponding fruit was " + fruitToPrint); 
于 2013-03-28T02:23:45.083 に答える