【问题标题】:java dice game issues -fast pleasejava骰子游戏问题-请快
【发布时间】:2016-12-20 10:41:04
【问题描述】:

创建一个玩家对电脑的骰子游戏。游戏的重点是轮流掷骰子,第一个达到 100 胜。如果任一玩家掷出 2,则他们的总数会自动减少 2。如果他们扮演其他角色,则将其添加到运行总数中。一拳>= 100胜。生成一个介于 0 和 2 之间的随机数来决定谁先滚动。如果为 0,则玩家先掷骰子,如果为 1,则计算机先掷骰子。

我是一名高中新手程序员,在这方面遇到了很多麻烦。我想出了如何通过单独列出所有骰子来单独显示骰子。如果有人能告诉我一个更简单的方法,那就太好了,因为我不知道如何使用该方法找到第一个到 100 的方法。

public class problemTwo {

    public static void main(String[] args) {

        // TODO Auto-generated method stub
        int d1=(int)(Math.random()*6+1);
        int d2=(int)(Math.random()*6+1);
        int dSum= d1 + d2;
        System.out.println("Player Roll 1 total is ;" +dSum); 

        int d3=(int)(Math.random()*6+1);
        int d4=(int)(Math.random()*6+1);
        int dSum2= d3 + d4;
        System.out.println("Player Roll 2 total is ;" +dSum2); 

        int d5=(int)(Math.random()*6+1);
        int d6=(int)(Math.random()*6+1);
        int dSum3= d5 + d6;
        System.out.println("Player Roll 3 total is ;" +dSum3); 

        int d7=(int)(Math.random()*6+1);
        int d8=(int)(Math.random()*6+1);
        int dSum4= d7 + d8;
        System.out.println("Player Roll 4 total is ;" +dSum4); 

        int d9=(int)(Math.random()*6+1);
        int d10=(int)(Math.random()*6+1);
        int dSum5= d9 + d10;
        System.out.println("Player Roll 5 total is ;" +dSum5); 

        int d11=(int)(Math.random()*6+1);
        int d12=(int)(Math.random()*6+1);
        int dSum6= d11 + d12;
        System.out.println("Player Roll 6 total is ;" +dSum6); 

        int d13=(int)(Math.random()*6+1);
        int d14=(int)(Math.random()*6+1);
        int dSum7= d13 + d14;
        System.out.println("Player Roll 7 total is ;" +dSum7); 

        int d15=(int)(Math.random()*6+1);
        int d16=(int)(Math.random()*6+1);
        int dSum8= d15 + d15;
        System.out.println("Player Roll 8 total is ;" +dSum8); 

        int d17=(int)(Math.random()*6+1);
        int d18=(int)(Math.random()*6+1);
        int dSum9= d17 + d17;
        System.out.println("Player Roll 9 total is ;" +dSum9); 

        int d19=(int)(Math.random()*6+1);
        int d20=(int)(Math.random()*6+1);
        int dSum10= d19 + d20;
        System.out.println("Player Roll 10 total is ;" +dSum10); 

     System.out.println("Roll "+ " total is"  +(dSum + dSum2 + dSum3 + dSum4 + dSum5+ + dSum6+ + dSum7+ + dSum8+ + dSum9+ + dSum10)); 
    }

}

【问题讨论】:

  • “请快点”是什么意思?
  • 请贴出你已经写好的代码。
  • 看来我们缺少fastplease 标签。
  • 如何上传?
  • 写成'代码'

标签: java methods


【解决方案1】:

这里的问题是,您限制了掷骰子的次数。在您的代码中,每个玩家最多滚动 10 次时间,这意味着如果他们每次滚动都得分低,他们永远不会达到 100。
您要做的是使用while 循环,该循环将运行相同的代码,直到达到某个条件。 这是骨架,我会让你弄清楚其余的;)

while( no player reached a score of 100 ) {
    player 1 roll the dice
    add the result to player 1 score
    player 2 roll the dice
    add the result to player 2 score
} 

请注意,此类问题在本网站上并不受欢迎。您需要做的是了解您的代码的哪一部分无法工作。发布作业只会让您投反对票(尤其是标题中的“请快”)并最终导致您的问题被删除。尝试将标题更改为Simulate dice game between two player 之类的内容并重写问题。

【讨论】:

    猜你喜欢
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多