实现一个猜数游戏,用户手动输入一个数字,电脑来猜-创新互联

实现一个猜数游戏,首先输入或者定义一个0-100的整数,然后让计算机生成一个0-100的随机数,并显示计算机猜测的结果是太大了,还是太小了,没猜对的话就继续猜,直到猜对,并显示出猜测次数。

创新互联主营申扎网站建设的网络公司,主营网站建设方案,成都app开发,申扎h5成都微信小程序搭建,申扎网站营销推广欢迎申扎等地区企业咨询按题目要求用go编写的结果
package main

import (
	"fmt"
	"math/rand"
	"time"
)

func init() {//初始化随机种子
	rand.Seed(time.Now().UnixNano())
}

func main() {var inputNum = 0  //输入让电脑猜测的整数
	var num = 0  //猜测次数
	
	fmt.Println("请输入一个数!")

	//输入0-100整数
	_, _ = fmt.Scanln(&inputNum)
	fmt.Println("您输入的数字为:", inputNum)

	//初始化生成随机数字
	i := rand.Intn(101)

	for i != inputNum {if i	fmt.Println("电脑猜的太小了,猜的是:",i)
		}else{	fmt.Println("电脑猜的太大了,猜的是:",i)
		}
		i = rand.Intn(101) //重新猜测
		num ++  //累计猜测次数
	}
	fmt.Printf("电脑猜的是%d,一共猜了%d次,才猜对!", i,num)
}
改进

上面代码问题明显是让电脑猜测的次数明显太多,而且不符合人的猜数逻辑,当猜测数过大或者过小时,正确的应该往相反的方向猜,才会快速的猜测正确,下面是改进后的。

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func init() {//初始化随机种子
	rand.Seed(time.Now().UnixNano())
}

func main() {var inputNum = 0 //输入让电脑猜测的整数
	var num = 0  //猜测次数
	var min = 0  //最小值
	var max = 101  //大值
	var x = 0 //猜测范围[0,x)

	fmt.Println("请输入一个数!")
	
	//输入0-100整数
	_, _ = fmt.Scanln(&inputNum)
	fmt.Println("您输入的数字为:", inputNum)

	//初始化生成随机数字
	i := rand.Intn(max)

	for i != inputNum {if i	min = i  //太小时,记录最小值
			fmt.Println("电脑猜的太小了,猜的是:",i)
		}else{	max = i  //太大时,记录大值
			fmt.Println("电脑猜的太大了,猜的是:",i)
		}
		x = max - min  //不断缩小电脑随机猜测的范围
		i = min + rand.Intn(x)  //还原电脑随机猜测的数值
		num ++  //累计猜测次数
	}
	fmt.Printf("电脑猜的是%d,一共猜了%d次,才猜对!", i,num)
}
按题目要求用rust编写的结果
use rand::Rng;
use std::io;

fn main() {let mut num = 0; //猜测次数
    let mut min = 0; //最小值
    let mut max = 101; //大值

    println!("请输入一个数!");

    //输入0-100整数
    let mut input_num = String::new();
    io::stdin().read_line(&mut input_num).expect("无法读取行");
    let input_num:u32 = input_num.trim().parse().expect("请输入一个数字");

    //初始化生成随机数字
    let mut i:u32 = rand::thread_rng().gen_range(min..max);

    while i != input_num {if i< input_num {min = i; //太小时,记录最小值
            println!("电脑猜猜的太小了,猜的是:{}",i);
        } else {max = i; //太大时,记录大值
            println!("电脑猜猜的太大了,猜的是:{}",i);
        }
        //不断缩小电脑随机猜测的范围
        i = rand::thread_rng().gen_range(min..max);
        num += 1; //累计猜测次数
    }
    println!("电脑猜的是{},一共猜了{}次,才猜对!",i,num);
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

网站栏目:实现一个猜数游戏,用户手动输入一个数字,电脑来猜-创新互联
新闻来源:https://www.cdcxhl.com/article24/copije.html

成都网站建设公司_创新互联,为您提供自适应网站全网营销推广网站收录网站制作商城网站动态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司