Java老虎机插槽比较麻烦

时间:2018-02-27 03:57:16

标签: java

我一直在为班级制作老虎机程序,并且一直无法弄清楚如何比较机器上的不同“槽”以确定是否有匹配并告诉程序如何继续计算奖金。我最初想过将随机数生成器的每个结果存储在变量中,然后比较它们但不确定如何执行此操作。不幸的是,我无法使用数组或列表或类似的东西。如果我的代码看起来很草率,请提前致谢并对不起。

import java.util.*;

//Start Program
public class Slots
{
public static void main(String[] args)
{   //Start Main

    //=====Declare Variables=====
    int pool            = 0,
        won             = 0,
        slot_disp       = 0,
        slot0           = 0,
        slot1           = 0,
        slot2           = 0,
        slot3           = 0,
        slot4           = 0,
        matches         = 0,
        bet             = 0;

    boolean again       = true;

    String  msg         = "",
            ans         = "";

    Scanner key = new Scanner(System.in);

    //=====Welcome and Start=====
    System.out.println("\t* * * Welcome to SLOTS * * *");

    System.out.print("\nEnter amount of money to play: ");
    pool = key.nextInt();

    while(again)
    {
        System.out.print("\nEnter your bet: ");
        bet = key.nextInt();

        while(bet < 0 || bet > pool)//-----Bet Validation-----
        {
            System.out.println("\tInvalid bet of : " + (double)bet);
            System.out.println("\tFunds available: " + (double)pool);
            System.out.print("\tRe-Enter bet     : ");
            bet = key.nextInt();
        }

        System.out.print(" ");
        for(int cntSlot = 0; cntSlot < 5; cntSlot++)
        {
            Random rand = new Random();

            slot_disp = rand.nextInt(5);
            //=====Converting Random Number into Slot Display=====
            switch(slot)
            {
                case 0:

                    msg = "Cherries";
                    break;

                case 1:

                    msg = "Oranges";
                    break;

                case 2:

                    msg = "Plums";
                    break;

                case 3:

                    msg = "Melons";
                    break;

                case 4:

                    msg = "Bars";
                    break;
            }
            System.out.print(msg + "   ");
        }//-----End Slot Conversion Loop-----

        //=====Comparing Slot Output to Determine Winnings=====


        switch(matches)
        {
            case 2:

                won = 0;
                break;

            case 3:

                won = bet * 2;
                break;

            case 4:

                won = bet * 3;
                break;

            case 5:

                won = bet * 4;
                break;

            default:

                won = 0;
        }

        (double)(pool = (pool - bet) + won);

        //=====Displaying the Results=====

        if(matches == 5)//-----Jackpot-----
        {
            System.out.println("\n\n * * * You hit the JACKPOT * * *");
            System.out.println("You Won: " + won);
        }

        if(matches > 2 && match < 5)//-----Winner-----
            System.out.println("\n\nYou WIN: " + won);
        else
            System.out.println("\n\n\nNo matches, sorry you lost.");

        if(pool <= 0)//-----Game Over-----
        {
            System.out.println("\n> > > You ran out of money. < < < ");
            System.out.println("\nRestart the game to play again");
            again = false;
            break;
        }
        else
            System.out.println("\nAvailable money: " + (double)pool);


        //=====Asking User if they want to Continue=====
        if(pool > 0)
        {
            System.out.print("\nWould you like to play again (y/n): ");
            ans = key.next();
        }

        if(ans.equalsIgnoreCase("y"))
            again = true;
        else
            again = false;
    }

    System.out.println("Game over, cash out: " + (double)pool);
    System.out.println("\nThanks for playing the Slots!");

}   //End Main

}

1 个答案:

答案 0 :(得分:0)

使用int[] hits = new int[5];数组为每个值存储选择的频率。在循环增量hits(slot) += 1;中。稍后,遍历数组以找到最大值。