我在学校做一个项目,如果我们应该模拟一个投注场景,我们有这个代码开始;
http://introcs.cs.princeton.edu/java/13flow/Gambler.java.html
然而,我们的任务是更改此代码,以便对于每一次下注,都应该为下注后的每一美元打印一个“*”。
因此,例如,如果我们在第一次下注后赢了 1 美元,并且我们以 5 美元作为赌注开始,那么程序应该打印 6“*”,然后为下一次下注做同样的事情,反之亦然。
我尝试了不同的方法,但似乎可以让它正常工作,因此我请你们在这里寻求一些建议/帮助。
到目前为止,这就是我想出的;
public class GamblerStars {
public static void main(String[] args) {
int stake = Integer.parseInt(args[0]); // gambler's stating bankroll
int goal = Integer.parseInt(args[1]); // gambler's desired bankroll
int trials = Integer.parseInt(args[2]); // number of trials to perform
int bets = 0; // total number of bets made
int wins = 0; // total number of games won
// repeat trials times
for (int t = 0; t < trials; t++) {
int cash = stake;
int star = 0;
while (cash > 0 && cash < goal) {
bets++;
if (Math.random() < 0.5) {
cash++; // win $1
while (star <= cash) {
star++;
System.out.print("*");
}
} else {
cash--; // lose $1
while (star <= cash) {
star--;
System.out.print("*");
}
}
System.out.println("");
}
if (cash == goal)
wins++; // did gambler go achieve desired goal?
}
System.out.println(wins);
}
}