掷骰子游戏

问题

根据用户输入的骰子数量和参赛人数,有计算机生成每个骰子的点数,再累加得到每一个选手的总点数。

思路

也是用模拟算法的应用场合。骰子嘛,6个点数,随机生成一个就好了。题目所说的筛子数量是指每个人所持有的筛子数。

使用

package com.company;

public class Main {

    public static void main(String[] args) {
    // write your code here
        Solution.diceGame();
    }
}

输出

请输入参赛人数:
7
请输入每人持有的筛子数量:
3
玩家1的点数为:
骰子1的点数是:4
骰子2的点数是:6
骰子3的点数是:5
骰子点数之和是15

玩家2的点数为:
骰子1的点数是:1
骰子2的点数是:1
骰子3的点数是:1
骰子点数之和是3

玩家3的点数为:
骰子1的点数是:6
骰子2的点数是:1
骰子3的点数是:2
骰子点数之和是9

玩家4的点数为:
骰子1的点数是:5
骰子2的点数是:3
骰子3的点数是:1
骰子点数之和是9

玩家5的点数为:
骰子1的点数是:4
骰子2的点数是:1
骰子3的点数是:2
骰子点数之和是7

玩家6的点数为:
骰子1的点数是:4
骰子2的点数是:3
骰子3的点数是:1
骰子点数之和是8

玩家7的点数为:
骰子1的点数是:2
骰子2的点数是:1
骰子3的点数是:1
骰子点数之和是4

还要继续吗?(Y/N)
n
程序结束

Process finished with exit code 0

实现

package com.company;

import java.util.Random;
import java.util.Scanner;

public class Solution {
    /**
     * 骰子游戏
     */
    static public void diceGame() {
        while (true) {
            System.out.println("请输入参赛人数:");
            Scanner personScanner = new Scanner(System.in);
            int personNumber = personScanner.nextInt();
            while (personNumber < 1) {
                System.out.println("参赛人数输入错误,请重新输入:");
                personNumber = personScanner.nextInt();
            }
            System.out.println("请输入每人持有的筛子数量:");
            int diceNumber = personScanner.nextInt();
            while (diceNumber < 1) {
                System.out.println("骰子数输入错误,请重新输入:");
                diceNumber = personScanner.nextInt();
            }
            for (int counter = 0;counter < personNumber;counter++) {
                System.out.println("玩家" + (counter + 1) + "的点数为:");
                int pointSum = 0;
                for (int counter0 = 0;counter0 < diceNumber;counter0++) {
                    Random random = new Random();
                    int dicePoint = random.nextInt(6) + 1;
                    pointSum += dicePoint;
                    System.out.println("骰子" + (counter0 + 1) + "的点数是:" + dicePoint);
                }
                System.out.println("骰子点数之和是" + pointSum);
                System.out.println();
            }
            System.out.println("还要继续吗?(Y/N)");
            Scanner charScanner = new Scanner(System.in);
            String inputChar = charScanner.next();
            if (!inputChar.toLowerCase().equals("y")) {
                System.out.println("程序结束");
                break;
            }
        }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # -*- coding: UTF-8 -*- import random,time def randstr(x)...
    五大RobertWu伍洋阅读 1,535评论 0 0
  • LDA的代码实现:http://blog.csdn.net/u010551621/article/details/...
    wlj1107阅读 34,172评论 0 31
  • 你的数学直觉怎么样?你能凭借直觉,迅速地判断出谁的概率大,谁的概率小吗?下面就是 26 个这样的问题。如果你感兴趣...
    cnnjzc阅读 7,043评论 0 12
  • 行走 全世界在你脚下 开掌 全世界在你的手中 有什么 没有什么 懂的什么 不懂的什么 寂漠 到心里去 去见见你 再行走
    宁久微初心不改阅读 160评论 0 0