骰子游戏在java中

时间:2015-02-18 18:37:13

标签: java

该计划的要求是: 安东尼亚和大卫正在玩游戏。

每位玩家以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);
        }
        }

该计划未能在最后计算正确的金额。 我究竟做错了什么? 任何帮助,将不胜感激。 感谢。

2 个答案:

答案 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课程的一些练习..这可能听起来毫无用处但是:

  • 格式始终是您的代码..空格,广告和标签
  • 使用描述性变量mames。 a b c d在较大的程序中不是很直观。
  • 卸下未使用的变量

Y muchasuertetío!