go语言基础之go猜数字游戏
1、 产生一个随机的4位数
示例1:
- package main
- import "fmt"
- import "math/rand"
- import "time"
- func CreatNum(p *int) {
- //设置种子
- rand.Seed(time.Now().UnixNano())
- var num int
- for {
- num = rand.Intn(10000)
- if num >= 1000 {
- break
- }
- }
- *p = num
- }
- func main() {
- var randNum int
- CreatNum(&randNum)
- fmt.Println("randNum: ", randNum)
- }
执行结果:
- randNum: 7676
2、取出每一位数
示例2:
- package main
- import "fmt"
- import "math/rand"
- import "time"
- func CreatNum(p *int) {
- //设置种子
- rand.Seed(time.Now().UnixNano())
- var num int
- for {
- num = rand.Intn(10000)
- if num >= 1000 {
- break
- }
- }
- *p = num
- }
- func GetNum(s []int, num int) {
- s[0] = num / 1000 //取千位
- s[1] = num % 1000 / 100 //取百位
- s[2] = num % 100 / 10 //取百位
- s[3] = num % 10 //取个位
- }
- func main() {
- var randNum int
- //产生一个4位的随机数
- CreatNum(&randNum)
- fmt.Println("randNum: ", randNum)
- //取出每一位数
- randSlice := make([]int, 4)
- //保存这个4位数的每一位
- GetNum(randSlice, randNum)
- fmt.Println("randSlice = ", randSlice)
- }
执行结果:
- randNum: 5139
- randSlice = [5 1 3 9]
3、逻辑处理
示例3:
- package main //必须有个main包
- import "fmt"
- import "math/rand"
- import "time"
- func CreatNum(p *int) {
- //设置种子
- rand.Seed(time.Now().UnixNano())
- var num int
- for {
- num = rand.Intn(10000) //一定是4位数
- if num >= 1000 {
- break
- }
- }
- //fmt.Println("num = ", num)
- *p = num
- }
- func GetNum(s []int, num int) {
- s[0] = num / 1000 //取千位
- s[1] = num % 1000 / 100 //取百位
- s[2] = num % 100 / 10 //取百位
- s[3] = num % 10 //取个位
- }
- func OnGame(randSlice []int) {
- var num int
- keySlice := make([]int, 4)
- for {
- for {
- fmt.Printf("请输入一个4位数:")
- fmt.Scan(&num)
- // 999 < num < 10000
- if 999 < num && num < 10000 {
- break
- }
- fmt.Println("请输入的数不符合要求")
- }
- //fmt.Println("num = ", num)
- GetNum(keySlice, num)
- //fmt.Println("keySlice = ", keySlice)
- n := 0
- for i := 0; i < 4; i++ {
- if keySlice[i] > randSlice[i] {
- fmt.Printf("第%d位大了一点\n", i+1)
- } else if keySlice[i] < randSlice[i] {
- fmt.Printf("第%d位小了一点\n", i+1)
- } else {
- fmt.Printf("第%d位猜对了\n", i+1)
- n++
- }
- }
- if n == 4 { //4位都猜对了
- fmt.Println("全部猜对!!!")
- break //跳出循环
- }
- }
- }
- func main() {
- var randNum int
- //产生一个4位的随机数
- CreatNum(&randNum)
- //fmt.Println("randNum: ", randNum)
- randSlice := make([]int, 4)
- //保存这个4位数的每一位
- GetNum(randSlice, randNum)
- //fmt.Println("randSlice = ", randSlice)
- /*
- n1 := 1234 / 1000 //取商
- //(1234 % 1000) //取余数,结果为234 234/100取商得到2
- n2 := 1234 % 1000 / 100
- fmt.Println("n1 = ", n1)
- fmt.Println("n2 = ", n2)
- */
- OnGame(randSlice) //游戏
- }
执行结果:
- 请输入一个4位数:7146
- 第1位猜对了
- 第2位猜对了
- 第3位大了一点
- 第4位猜对了
- 请输入一个4位数:7116
- 第1位猜对了
- 第2位猜对了
- 第3位猜对了
- 第4位猜对了
- 全部猜对!!!
go语言基础之go猜数字游戏的更多相关文章
- [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏]
[易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏] 项目实战 实战1:猜数字游戏 我们今天来来开始简单的项目实战. 第一个简单项目是猜数字游戏. 简单来说,系统给了 ...
- Java用户输入数值,做简单的猜数字游戏,导入基础的工具包util
Java用户输入数值,做简单的猜数字游戏,导入基础的工具包util,导入包的方法为,import java.util.*: 完整的实例代码: /* 导入基础工具包 */ import java.uti ...
- Python3基础学习-while循环实例- 猜数字游戏
需求: 猜数字游戏, 要求如下: 给个数字, 比如是66. 让用户一直猜,直到猜对退出. 中间输入q或Q也能退出 如果猜大了,提示用户猜小一点; 如果猜小了,提示用户猜大一点; likely = 66 ...
- C语言猜数字游戏
猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...
- C语言之猜数字游戏
猜数字游戏 猜数字游戏是以前功能机上的一款益智游戏,计算机会根据输入的位数随机分配一个符合要求的数据,计算机输出guess后便可以输入数字,注意数字间需要用空格或回车符加以区分,计算机会根据输入信息给 ...
- c语言-猜数字游戏
#include <stdio.h> #include <stdlib.h> int top(); int input(); void main() { ; int numbe ...
- Python基础入门-实现猜数字小游戏
今天呢,我们来通过前面学过的一些知识点来完成一个猜数字大小的游戏程序设计.那么呢,一般人写代码直接上来就干,没有分析,这样的做法是没有产出的,除非你是大牛,今天呢,我会把我学习编程的思路分享给大家,我 ...
- python基础之猜数字游戏
#猜数字游戏 import random #impor语句导入random模块 guessor=0; print("#"*30) #输出30个”#“(”############## ...
- 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。
最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...
随机推荐
- MIT-6.828-JOS-lab1:C, Assembly, Tools, and Bootstrapping
Lab1:Booting a PC 概述 本文主要介绍lab1,从内容上分为三部分,part1简单介绍了汇编语言,物理内存地址空间,BIOS.part2介绍了BIOS从磁盘0号扇区读取boot loa ...
- Java反射机制demo(五)—获得并调用一个类中的方法
Java反射机制demo(五)—获得并调用一个类中的方法 这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和 ...
- [漏洞复现] CVE-2017-11882 通杀所有Office版本
此漏洞是由Office软件里面的 [公式编辑器] 造成的,由于编辑器进程没有对名称长度进行校验,导致缓冲区溢出,攻击者通过构造特殊的字符,可以实现任意代码执行. 举个例子,如果黑客利用这个漏洞,构造带 ...
- .Net中的IO
C#中的IO 本文环境为: Win 10 VS 2015 .net Framework 版本 4.0 File 类 File 类是一个工具类,可以用来判断文件是否存在和方便的创建文件, 读取.写入等操 ...
- Linux驱动之IIC总线
<作用> 电子设备中有很多IIC设备之间需要进行相互通信,这样就产生了IIC总线,常用来实现设备之间的数据通信. <IIC总线结构> IIC总线只有两条线,一条是串行数据线 ...
- wmware虚拟系统光盘的问题
拿到系统盘,需要通过UltralSO工具中:工具-制作光盘映像文件,做成系统iso文件,而不是直接拷贝系统盘里的文件压缩成iso格式. 主要原因:主要是系统盘有一个引导区,win系统复制光盘时,是不能 ...
- [CF1086E]Beautiful Matrix(容斥+DP+树状数组)
给一个n*n的矩阵,保证:(1)每行都是一个排列 (2)每行每个位置和上一行对应位置不同.求这个矩阵在所有合法矩阵中字典序排第几.考虑类似数位DP的做法,枚举第几行开始不卡限制,那么显然之前的行都和题 ...
- BZOJ 1196: [HNOI2006]公路修建问题 Kruskal/二分
1196: [HNOI2006]公路修建问题 Time Limit: 1 Sec Memory Limit: 162 MB 题目连接 http://www.lydsy.com/JudgeOnline ...
- Codechef December Challenge 2014 Chef and Apple Trees 水题
Chef and Apple Trees Chef loves to prepare delicious dishes. This time, Chef has decided to prepare ...
- ASP.NET与MVC架构区别总结
1)ASP.NET Webforms Behind Code利于快速开发,方便可视化操作. 2)ASP.NET 使用了“基于视图”的解决方案去应对“基于行为”的需求,它处理了客户端的请求,IIS将请求 ...