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的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...
随机推荐
- jquery 查询IP归属地
<script src="http://c.csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type=&q ...
- PHP接入支付宝支付
创建应用 使用支付宝账号登录开放平台创建应用,应用创建成功之后可以得到APPID等相关信息 接着需要设置RSA密钥,可以使用蚂蚁金服开放平台提供的生成工具,生成完密钥需在开放平台中填写. 代码接入 引 ...
- ROT13 加密与解密
ROT13简介: ROT13(回转13位)是一种简易的替换式密码算法.它是一种在英文网络论坛用作隐藏八卦.妙句.谜题解答以及某些脏话的工具,目的是逃过版主或管理员的匆匆一瞥.ROT13 也是过去在古罗 ...
- 磁盘备份工具dcfldd
磁盘备份工具dcfldd dcfldd是Kali Linux自带的一款磁盘备份工具.该工具是dd工具的增强版,更适合渗透测试和安全领域.dcfldd提供实时哈希校验功能,确保数据的安全.同时,它还 ...
- 使用multiprocessing中的常见问题
在python的解释器中,CPython是应用范围最广的一种,其具有丰富的扩展包,方便了开发者的使用.当然CPython也不是完美的,由于全局解释锁(GIL)的存在,python的多线程可以近似看作单 ...
- luoguP4783 [模板]矩阵求逆 线性代数
求\(n^2\)的矩阵的逆 翻了翻题解,看到了初等矩阵这个东西,突然想起来在看线代的时候看到过.... 然后又温习了一遍线性代数的知识 不妨设\(PA = E\),其中\(P\)是一堆初等矩阵的积(必 ...
- Python168的学习笔记5
关于对csv文件的操作. python标准库中有csv的库,使用非常方便. import csv with open('pingan.csv','rb') as rf: reader = csv.re ...
- .NET面试宝典-高级(一)
1. DateTime.Parse(myString); 这段代码有什么问题? A:区域信息即CultureInfo没有指定.如果不指定的话,它将采用默认的机器级的设置(见:控制面板->区域和语 ...
- 【原】Order属性决定了不同切面类中通知执行的先后顺序
[障碍再现] MyBatis配置多数据源时,数据源切换失败. [原因分析] 自定义切面和Spring自带事务切面“即<aop:advisor>”执行的先后顺序导致数据源不能切换成功. ...
- linux 定时任务 crontab 详细解释(转)
cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动.关闭这个服务: 引用: /sbin/service crond start //启动服务 /sbin/service cr ...