掷骰子游戏

问题

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

思路

也是用模拟算法的应用场合。骰子嘛,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;
            }
        }
    }
}

你可能感兴趣的:(掷骰子游戏)