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的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...
随机推荐
- mysql高性能索引
独立索引: 独立索引是指索引列不能是表达式的一部分,也不能是函数的参数 例1: SELECT actor_id FROM actor WHERE actor_id+1=5 --这种写法,就算在acto ...
- Python中 *args 和 **kwargs 的区别
先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...
- 拉格朗日乘子法以及KKT条件
拉格朗日乘子法是一种优化算法,主要用来解决约束优化问题.他的主要思想是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有n+k个变量的无约束优化问题. 其中,利用拉格朗日乘子法 ...
- django创建model
1.model实例 #!/usr/bin/python # coding:utf-8 from __future__ import unicode_literals from django.db im ...
- pycharm安装使用,python运算规则
首先讲了pycharm的安装和使用,基本上算是个脚本编辑器.另外pycharm的一些操作方法:http://edu.51cto.com/course/9043.html 葫芦老师录的pycharm视频 ...
- [Luogu5106]dkw的lcm
https://minamoto.blog.luogu.org/solution-p5106 容易想到枚举质因子及其次数计算其贡献,容斥计算$\varphi(p^i)$的次方数. #include&l ...
- EXECL中怎么中把换行符换成任意字符
作文本处理的时候,数据是从execl中拷贝出来的,但是execl中是带有格式的. 导出到txt文本中的时候会出现换行,不满足一行一条数据的要求. 公式 =SUBSTITUTE(A1,),"A ...
- BZOJ 4380 Myjnie 区间DP
4380: [POI2015]Myjnie Time Limit: 40 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 162 Solved: ...
- PAT甲级1111. Online Map
PAT甲级1111. Online Map 题意: 输入我们当前的位置和目的地,一个在线地图可以推荐几条路径.现在你的工作是向你的用户推荐两条路径:一条是最短的,另一条是最快的.确保任何请求存在路径. ...
- Jmeter实现登录、创建BUG、解决bug的手写脚本
一.登录 1. 打开jmeter.添加线程组,命名为test,如下图: 2. 添加HTTp默认请求 1)服务器名称或IP:这里只能填写域名或IP地址 2)端口号:配 ...