最近在看go语言,对语法稍做了些了解,写个简单的猜数字小游戏来加深一下语法之印象。

package main//by kevin at 2014-04-15 01:30
//写我喜欢玩的猜数字游戏,初学go之第一个程序import ("fmt""time""math/rand"/*"os"*/
)func rndnum() []int{//使用string, 但是却因为其不可被修改,只好使用[]num_set := []int {0,1,2,3,4,5,6,7,8,9}sz := len(num_set)/*fmt.Println("sz:",sz)*/for i,_  := range num_set {r := rand.Intn(sz)/*fmt.Println("i:",i," v:",v," r:",r) */num_set[i], num_set[r] = num_set[r], num_set[i]}/*fmt.Println("num_set:", num_set) */return num_set[0:4]
}func checknum(n int, target []int) (right_ , miss_ int) {//将数字拆分成4个int[]num := []int {n/1000, (n%1000)/100, (n%100)/10, (n%10)}/*fmt.Println("num:", num) *//*fmt.Println("target:", target) */right := 0 //数字对且位置对miss := 0 //数字对但是位置不对for i,m := range num {for j,t :=  range target{if m == t {if i == j {right++} else{miss++}}} }return right, miss
}func main() {//产生符合规则的数字rand.Seed(time.Now().UnixNano())num := rndnum()/*fmt.Println("num:", num) *///开始准备猜数字var right, miss intvar guess_count int  = 1for right!=4 {fmt.Printf("%d Please input a number(0000-9999):", guess_count)var s intfmt.Scanf("%d\n", &s)//fmt.Println("you input is:", s)right, miss = checknum(s, num)/*fmt.Println("right:",right," miss:", miss)*/fmt.Println("\t",s,"\t->\t", right,"A", miss, "B")guess_count++}fmt.Println("Yes!!Number is ", num)}

玩一把就睡觉:

[kevin@kevinlin:~/go]$ ./guess 
1 Please input a number(0000-9999):1234
1234 -> 0 A 1 B
2 Please input a number(0000-9999):5678
5678 -> 0 A 2 B
3 Please input a number(0000-9999):1208
1208 -> 0 A 2 B
4 Please input a number(0000-9999):3409
3409 -> 0 A 1 B
5 Please input a number(0000-9999):2067
2067 -> 0 A 2 B
6 Please input a number(0000-9999):6105
6105 -> 0 A 1 B
7 Please input a number(0000-9999):9826
9826 -> 2 A 2 B
8 Please input a number(0000-9999):8926
8926 -> 4 A 0 B
Yes!!Number is  [8 9 2 6]。

接下来要试试goroutine之功能,还有rpc等~

[GO]学习新语言之卡塔练习--猜数字相关推荐

  1. 百度积极回应阿波龙项目不实报道;半数开发者认为学习新语言很困难;腾讯在长沙建立首个智慧产业总部……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  2. IT职场人生系列之二十一:如何学习新语言(一)

    这是IT职场人生系列的第二十一篇.(序言,专栏目录) 最近<火星人敏捷开发管理工具>接近发版了,回忆起一年半以前刚利用业余时间开工的时候,编程已经中断了7年(03年最后一次用VC++6.0 ...

  3. IT职场人生系列之二十二:如何学习新语言(二)

    获取帮助 谦虚.大胆.再谦虚地尝试 这几个词看起来很不搭嘎,但我细细回忆起来10多年编程的经历,这句话很可能是高手与低手最后产生差别的关键,所以重点写一整篇. 菜鸟不是低手,低手指的是工作了很久,但技 ...

  4. 看图猜字的c语言程序设计教程课后答案,《C语言程序设计》课程设计---猜数字游戏...

    设计题目:猜数字游戏 目目 录录 目录目录 目 录...........................................................- 1 - 1 程序分析与设计. ...

  5. 【C语言初学必看】猜数字游戏背后的知识

    目录 前言: 1.先看主体部分(大体逻辑的部分) a.为什么用do...while循环: b.switch语句: c.关于scanf ( ) 中的 %d %s 和 printf ( ) 的关系 d.m ...

  6. 教你如何用C语言设计一个有趣的猜数字小游戏

    目录 前言 猜数字游戏 打印菜单 处理玩家选择的操作 编写猜数字游戏函数 游戏中要猜数字从哪来?(配置随机数生成器) 时间戳 开始生成随机数 game函数内部编写 完整代码 总结 前言 好久不见,今天 ...

  7. 【第01题】A + B | 基础输入输出,开启学习C语言打卡的序章

    文章目录 零.写在前面 一.[例题1] 1.题目描述 2.解题思路 3.代码详解 二.[例题2] 1.题目描述 2.解题思路 3.代码详解 三.[例题3] 1.题目描述 2.解题思路 3.代码详解 四 ...

  8. 学习新语言的练手项目

    1.文本操作 ASCII艺术 逆转字符串--输入一个字符串,将其逆转并输出. 拉丁猪文字游戏--这是一个英语语言游戏.基本规则是将一个英语单词的第一个辅音音素的字母移动到词尾并且加上后缀-ay(譬如& ...

  9. c语言猜数字游戏用while,【C语言基础】有趣的猜数字游戏。(while循环,if语句,switch语句)...

    要求:猜数字游戏的实现.代码如下:#include #include #include void menu() { printf("***************************** ...

最新文章

  1. 用双注意力模块来做语义分割
  2. Python入门100题 | 第054题
  3. 本人的博客只是工作期间随手记录的笔记而已,所以不会很详尽,由此给您带来的不便,恳请多多包涵~...
  4. 插件translator_Zotero Jasminum 插件的更新记录
  5. 阶乘c 语言代码,求10000的阶乘(c语言代码实现)
  6. 【WPF学习笔记】之如何点击“新建”按钮,在面板中加载一条条的“用户控件”的信息:动画系列之(四)...
  7. Downloading SRA data using command line utilities
  8. (转载)JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件
  9. jQuery实现输入框聚焦,键盘上下键选择城市
  10. Rails的静态资源管理
  11. 第四章 爬取西刺免费代理ip 并应用到scrapy
  12. 斯皮尔曼相关(spearman)系数法
  13. 找工作神器,提取各大网站有效的招聘信息(前程无忧、智联招聘、猎聘网)...
  14. Unsupervised Degradation Representation Learning for Blind Super-Resolution(基于无监督退化表示学习的盲超分辨率处理)
  15. excel计算机不准确,excel表格数据合计不准确-EXCEL表格中,求和的数字总是不对...
  16. 使用ffmpeg从视频中提取音频文件
  17. jQuery根据ID删除元素
  18. mysql查询昨天的日期_MySQL关于时间的一些查询,查询今天,昨天......
  19. Java SE day21_网络编程
  20. Syncthing文件同步方案完全攻略(亲测有效)

热门文章

  1. OKRs-E,OKR实战基础理论
  2. 软件包 jdk1.8-2000:1.8.0_281-fcs.aarch64 是针对 different 构架的
  3. 6个炒菜习惯 丢失营养
  4. 大数据标准化白皮书(2020版) 附下载地址
  5. vue+elementUi在点js.js文件中使用Message消息提示、Notification、MessageBox、succes、import、from
  6. 使用Google语音识别引擎(Google Speech API)
  7. SIGIR2020推荐系统论文解析:Recommendation for New Users and New Items
  8. Operand of null-aware operation ‘!‘ has type ‘SchedulerBinding‘ which excludes null.
  9. Fractal Streets
  10. 这8个要点,能让你的网页首图抓住用户注意力