2025年Java实现自动猜数(猜数游戏进阶版)

Java实现自动猜数(猜数游戏进阶版)题目 java 自动生成一个 0 到之间的数 并且自己猜数 知道猜对为止 电脑会告诉你猜大了还是猜小了 并记录猜数次数和猜数的值 首先我们要创建一个随机数 并且让他作为我们要猜的数 Random r new Random int

大家好,我是讯享网,很高兴认识大家。

题目:

java自动生成一个0到之间的数,并且自己猜数(知道猜对为止,电脑会告诉你猜大了还是猜小了),并记录猜数次数和猜数的值。

首先我们要创建一个随机数,并且让他作为我们要猜的数。

 Random r=new Random(); int x=r.nextInt();

讯享网

想象一下,如果我们猜数,我们不会盲目的猜(如果一直瞎猜也会成功,但是消费的时间和次数是很大的),我们会不停地压缩猜数的范围,例如我们猜的数是21,我们第一次猜的数是40,40比我们猜的数大,我们会在0到40之间猜数,我们第二次猜的数是11,11比我们要猜的数小,所以下次我们猜的数会在11到40之间,如此我们在以后的猜数中会不断压缩范围(边界问题),从而猜到我们的目标数。

我们用xr和xl作为右边界和左边界count作为猜数次数,并且进行初始化(xl=0,xr=,count=0)。

讯享网int xl=0,xr=,count=0;

我们通过while循环让机器不断进行猜数,每一次猜数都会压缩范围,直到猜到数并且跳出循环。

全部代码如下:


讯享网

import java.util.Random; public class cai_shu { public static void main(String[] args) { Random r=new Random(); int x=r.nextInt(); int xl=0,xr=,count=0; System.out.println("要猜的数是"+x); boolean key=true; while(key) { count++;//加次数 int y=new Random().nextInt(xr);//机器猜的数 if(y<=xl) { y=xl+new Random().nextInt(xr-xl);//让机器猜的数始终保持在左右边界内。 } System.out.println("这次猜的数是"+y); if(y==x) { key=false;//跳出循环,使用break的话,while循环的条件是xr!=xl。 System.out.println("终于猜对了"); }else {//没猜中的话需要压缩范围 if(y>x&&y<=xr) { xr=y; } if(y<x&&y>=xl){ xl=y; } } } System.out.println("一共猜了"+count+"次"); } }

注意类名要保持一致哦!

经过多次测试,测试结果一般会保持在60次之内(效果很理想!)。

 大功告成,有东西不明白的请在评论区里留言解决。。。。。

thanks everyone!

小讯
上一篇 2025-02-07 17:14
下一篇 2025-02-18 07:47

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/94159.html