需要帮助初始化/调用方法

时间:2017-09-07 18:47:00

标签: java methods

用于在Java SE中编码的开始类(使用NetBeans 8.1 IDE)。我想要做的就是这个

主文件立即初始化并进入playDice,它检查玩家当前余额,询问下注金额,如果当前余额大于0,且下注金额小于或等于当前余额,则初始化方法public static int determineWinnings(.....)。这就是我的问题。这是我目前的代码,试图让程序初始化determineWinnings。

if (balance >= 0 && balance >= betAmmount) {
    determineWinnings();
}

使用该代码,我收到一条错误消息this。有什么问题?

完整代码(如果需要),供参考

package dicegame;

import static dicegame.UserInput.*;

public class DiceGame {

public static void main(String[] args){
    System.out.println("Lets play the dice game!");

    System.out.println("Loading");
    playDice();
    }


public static void playDice(){
    System.out.println("Hello, please input the ammount you will like to bet!");
    int balance=1000;
    int betAmmount=getInt();

    if(balance>=0 && balance>=betAmmount){
        determineWinnings();
    }
    else if(balance<=betAmmount){
        System.out.println("You can not bet in this game! Your bet can not be greater than your current balance!");
    }
    else if(balance==0){
        System.out.println("You can not bet in this game! You have no money left!");
    }        
}         


public static int determineWinnings(int balance, int betAmmount){
    int die1 = (int)(Math.random()*6) + 1;
    int die2 = (int)(Math.random()*6) + 1;

    System.out.println("Rolling...");
    System.out.println("You rolled a " + die1);
    System.out.println("You rolled a " + die2);


    if(die1==die2){
        if(die1==1 && die2==1){
            System.out.println("CONGRATULATIONS! YOU HIT THE JACKPOT! Your current balance will be multiplied by 12!");
            balance=balance*12;
            System.out.println("Your current balance is" + balance);
        }
        else if(die1==2 && die2==2){
            System.out.println("CONGRATULATIONS! You won! Your current balance will be doubled!");
            balance=balance*12;
            System.out.println("Your current balance is" + balance);
        }                        
        else if(die1==3 && die2==3){
            System.out.println("CONGRATULATIONS! You won! Your current balance will be tripled!");
            balance=balance*12;
            System.out.println("Your current balance is" + balance);
        }
        else if(die1==4 && die2==4){
            System.out.println("CONGRATULATIONS! YOU HIT THE JACKPOT! Your current balance will be quadrupled!");
            balance=balance*12;
            System.out.println("Your current balance is" + balance);
        } 
        else if(die1==5 && die2==5){
            System.out.println("CONGRATULATIONS! YOU HIT THE JACKPOT! Your current balance will be quintupled!");
            balance=balance*12;
            System.out.println("Your current balance is" + balance);
        }
        else if(die1==6 && die2==6){
            System.out.println("CONGRATULATIONS! YOU HIT THE JACKPOT! Your current balance will be sextupled!");
            balance=balance*12;
            System.out.println("Your current balance is" + balance);
        }
    }        
    else{
        balance=balance-betAmmount;
        System.out.println("You lost! Your new balance is" + balance);
    }  
    return 0;
}

}

2 个答案:

答案 0 :(得分:1)

您需要将balancebetAmount传递给determineWinnings(...)

if (balance >= 0 && balance >= betAmmount) {
    determineWinnings(balance, betAmount);
}

答案 1 :(得分:0)

您将determineWinnings声明为

public static int determineWinnings(int balance, int betAmmount)

但是你没有任何参数地调用它

determineWinnings()

你应该通过两个整数。