该计划的要求是: 安东尼亚和大卫正在玩游戏。
每位玩家以100分开始。
游戏使用标准的六面骰子并且轮流进行。在一轮中,每个玩家掷出一个骰子。具有较低掷骰子的玩家失去了较高骰子上显示的点数。如果两个玩家都滚动相同的数字,则任何一个玩家都不会丢失任何积分。
编写程序以确定最终分数。
我想出了以下代码:
import java.util.*;
public class prob3
{
public static void main(String[]args)
{
Random g=new Random();
int a,b,c;
int rounds;
int antonio=100;
int david=100;
Scanner s=new Scanner(System.in);
System.out.println("Please enter the no. of rounds you want to play(1-15): ");
rounds=s.nextInt();
for(int d=1;d<=rounds;d++)
{
a=g.nextInt(6)+1;
b=g.nextInt(6)+1;
System.out.println("Round "+d+":"+a+" "+b);
if(a<b)
antonio=100-b;
else if(a>b)
david=100-a;
}
System.out.println("Total for Antonio: "+antonio);
System.out.println("Total for David: "+david);
}
}
该计划未能在最后计算正确的金额。 我究竟做错了什么? 任何帮助,将不胜感激。 感谢。
答案 0 :(得分:3)
你这样做。
antonio=100-b;
当你可能想要
时antonio = antonio - b;
第一个代码每次只从100
减去骰子卷,这是没有意义的。你想从玩家总数中减去骰子掷骰子。为两位球员做这件事。
答案 1 :(得分:1)
如上所述,“100-b”是你的主要问题。但是你的问题陈述中没有理由设置一些轮次。
我宁可使用这样的循环:
while(antonio >= 0 && david >= 0){
//do the same stuff here
}
System.out.println...
因为它看起来像某些java课程的一些练习..这可能听起来毫无用处但是:
Y muchasuertetío!