黑马程序员技术交流社区
标题:
猜数字游戏
[打印本页]
作者:
黄泉
时间:
2014-4-5 23:07
标题:
猜数字游戏
晚上看基础书,发现一个有意思的小程序。分享一下!
/*
猜数字游戏。产生0-9的随机数。创建对象来猜。
结束条件:猜中数字.
思路:
1.需要使用一个方法来产生随机数。 需要定义一个产生随机数的机器
2.要定义一个变量来记录猜测的数据。 猜测的是人,所以需要定义一个人对象 也就是类。
3.将其进行比较。如果猜中则打印 "我猜中啦,哈哈,我猜的是"加上数字。
这是一个方法,如果满足条件就打印语句,判断结构
*/
class Rng
{
public int rng()
{
return (int)(Math.random()*10);//系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值
}
}
class People
{
String name;
int guess;
People(String name , int guess)
{
this.name = name;
this.guess = guess;
}
public void guess()
{
System.out.println("我猜数字是"+this.guess);
}
}
class Demo
{
public static void main(String[] args)
{
People p = new People("张三",4);
cai(p);
}
public static void cai(People p)
{
Rng r = new Rng();
boolean wrong = false;
while(true)
{
wrong = (p.guess == r.rng())?true:false;
if(wrong)
{
System.out.println(p.name+":哈哈,我猜对啦,我猜的是:"+p.guess);
break;
}
else
System.out.println("不好意思,没有猜中");
}
}
}
复制代码
作者:
水蓝
时间:
2014-4-5 23:30
楼主,伪随机数的方法,其实可以通过如下代码实现更精确的随机数范围控制:
int num = new Random().nextInt(10);//这边的入参是10,返回的随机数为区间[0,10)的整数
复制代码
作者:
y200745
时间:
2014-4-6 01:00
这个代码,核心就是随机数的产生:
方法1、Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机
方法2、在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long
方法3、在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内
并且,对于方法二中的Random类有以下说明:
java.util.Random类有两种方式构建方式:带种子和不带种子
不带种子:
此种方式将会返回随机的数字,每次运行结果不一样
public class RandomTest {
public static void main(String[] args) {
java.util.Random r=new java.util.Random();
for(int i=0;i<10;i++){
System.out.println(r.nextInt());
}
}
带种子:
此种方式,无论程序运行多少次,返回结果都是一样的
public static void main(String[] args) {
java.util.Random r=new java.util.Random(10);
for(int i=0;i<10;i++){
System.out.println(r.nextInt());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2