这是一个问题:
在掷骰子的游戏中,传球线下注如下进行:掷出两个六面骰子;掷骰子的第一骰子被称为“滚出来”。 7或11的自动输出会自动获胜,2,3或12的输出会自动失败。如果在出来的卷上滚动4,5,6,8,9或10,则该数字变为“点”。玩家继续滚动骰子直到7或点滚动。如果该点首先滚动,则玩家赢得下注。如果首先掷出7,则玩家输掉
使用这些规则编写一个模拟掷骰子的程序,无需人工输入。该计划应该计算玩家是赢还是输,而不是要求下注。程序应该模拟滚动两个骰子并计算总和。添加一个循环,以便程序播放几次。添加计数器,计算玩家获胜的次数,以及玩家失败的次数。在玩游戏结束几次,计算机获胜的概率(胜利/罪孽+损失)并输出值
这就是我到目前为止所做的事情
import java.util.Scanner;
public class partb1
{
public static void main(String[] args)
{
int side1=1, side2=1 , roll=1, lose=0, win=0, point=0, answer;
Double winprob, loseprob;
side1= 1+(int)(Math.random() *6);
side2= 1+(int)(Math.random() *6);
Scanner kb = new Scanner(System.in);
do
{
roll = side1+side2;
if ( roll == 7 || roll == 11)
{
System.out.println(" Come out wins");
winprob = win + 1;
}
else if ( roll ==2 || roll ==3 || roll ==12)
{
System.out.println(" Come out loses ");
loseprob = lose +1;
}
else
{
side1= 1+(int)(Math.random() *6);
side2= 1+(int)(Math.random() *6);
point = roll;
roll = side1+side2;
System.out.println("The point");
System.out.println("You won the bet");
winprob = win + 1;
while(roll != point || roll!= 7);
side1= 1+(int)(Math.random() *6);
side2= 1+(int)(Math.random() *6);
roll = side1+side2;
}
if( roll ==7)
{
System.out.println("You lost the bet");
answer = kb.nextInt();
}
else if (roll == point) {
System.out.println(win);
}
while(true)
{
System.out.println(" Do you want to play again? 0 for No, any number for Yes ");
if (answer ==0)
{
break;
}
winprob = (40/(40+60));
System.out.println(" The probability of wining is " + winprob);
loseprob = (40/(40-60));
System.out.println(" The probability of losing is " + loseprob);
}
}
}
}
我一直收到此错误
1 error found:
File: H:\assignment 3\partb1.java [line: 84]
Error: Syntax error, insert "while ( Expression ) ;" to complete DoStatement
我不确定我是否错过了什么或做错了什么? 任何线索?
答案 0 :(得分:0)
answer
是ìnt
而不是boolean
,因此无法在while
语句表达式中单独显示,但由于您明确break
了你可以做的循环:
while (true) {
答案 1 :(得分:0)
作为一个干净的编程问题,我建议不要创建像
这样的东西public static void main(String[] args) {
// do everything here
}
将封装概念应用于您的编程,并将代码分解为可重用的块。您会发现调试代码更容易,其他程序员也会喜欢它。
答案 2 :(得分:0)
您的代码中存在多个错误,虽然我们很乐意帮助您完成作业;)如果您首先在正确的IDE中正确对齐代码,以便您可以看到所有容易出错的错误,这样会更容易 - 例如花括号不匹配或丢失的地方。
我建议下载IntelliJ IDEA(或等效的),加载你的java程序,然后点击CRTL-ALT-L来“重新格式化”代码。这将使其更易读,更容易修复。
另外,IDE还可以帮助您追踪错误(寻找“红色”墨水!)
例如,这里有一个额外的分号,代码的重新格式化很明显:
} else if (roll == point) ;
System.out.println(win);
应该是
} else if (roll == point) {
System.out.println(win);
}
一旦你弄清楚了语法,为什么不在你的类中使用一些方法和字段?例如,您可以使用方法win()
和lose()
以及适当的字段。