骰子传奇

Posted Y永ong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了骰子传奇相关的知识,希望对你有一定的参考价值。

骰子传奇

意思理解

这次的题目是要设计一个骰子类,这样可以为很多的游戏
提供骰子的使用。我觉得不算很难,骰子主要是用到随机数的产生。另外,所设计的骰子类很重要的一点就是骰子的多用性,适用于不同的场合,并且要考虑到结果在控制台上友好显示。

设计实现

代码说明

测试类:测试骰子的功能

public class Test
{
    public static void main(String[] args) 
    {
        Dice d1 = new Dice();
        d1.print();    
        d1.printSum();
    }
}

 

Cup类:确定所需的骰子数

import java.util.Scanner;

    public class Cup 
    {
        int count;

        public int getCount()
        {
            System.out.println("请输入骰子个数:");
            Scanner sc = new Scanner(System.in);
            count = sc.nextInt();
            return count;
        }
    }

 

Dice类:
确定所投的每个骰子的数值,计算所投骰子的总数值和

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

public class Dice 
    {
    int [] faceRange = new int [2];
    Cup cup = new Cup();
    int count=cup.getCount();
    static int sum = 0;
    
    //打印界面
    public void print()
    {
        int x;
        System.out.println("选择骰子:" + \'\\n\' + "1.默认骰子(面值:1~6)" + \'\\n\' + "2.自定义骰子(面值自定)");
        Scanner sc = new Scanner(System.in);
        x = sc.nextInt();
        
        if(x == 1)
            dice(1,6);
        else 
        {
            System.out.println("请输入骰子面值的范围:");
            
            System.out.print("Min:");
            Scanner sc1 = new Scanner(System.in);
            faceRange[0] = sc1.nextInt();
                
            System.out.print("Max:");
            Scanner sc2 = new Scanner(System.in);
            faceRange[1] = sc2.nextInt();
            
            dice(faceRange[0],faceRange[1]);
            }
    }
    
    //自定义骰子
    public void dice(int min, int max) 
    {
        for(int x = 1; x<=count; x++)
        {
            int y = getResult(min,max);
            System.out.print("第" + x + "个骰子的值:");
            System.out.println(y );
            sum +=y;
        }
    }
    
    //计算骰子总和
    public void printSum()
    {
        System.out.println("骰子面值的总和:"+sum);
    }
    
    //产生min~max之间的随机数
    public static int getResult(int min, int max)
    {
        Random random = new Random();
        int x = random.nextInt(max)%(max-min+1) + min;
        return x;
    }
    
}

 

测试运行

 

 

作业小结

这一次的骰子作业,我按照老师的基本要求,功能基本上有所实现,不足之处就是,在Java的思想上还停留在C语言上,接下来要重点复习一下Java中的构造器和函数,以及接口的使用、引用和继承。

改进修改后:http://www.cnblogs.com/zhengyongxian/p/7667765.html

以上是关于骰子传奇的主要内容,如果未能解决你的问题,请参考以下文章

编程算法 - n个骰子的点数(递归) 代码(C)

数学与物理故事相关链接

《剑指Offer——丑数,n个骰子的点数》代码

和12岁小同志搞创客开发:手撕代码,做一款数字骰子

python掷骰子游戏

如何在 y>4 时停止此代码骰子游戏?