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

实现一个猜数游戏,首先输入或者定义一个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元起,快前往官网查看详情吧


文章标题:实现一个猜数游戏,用户手动输入一个数字,电脑来猜-创新互联
网站URL:http://hbruida.cn/article/copije.html