和女朋友一起玩猜数字游戏吧!| Go

举报
Regan Yue 发表于 2021/06/26 23:00:57 2021/06/26
【摘要】 前言博主小白一枚,正好在学习Go语言。听说很多朋友都喜欢和女朋友一起玩游戏。博主不太会玩游戏,玩游戏都是坑队友,但是接触猜数字游戏后,博主在这个游戏找回了自信心。我相信在很多女性朋友眼中,一个会玩猜数字游戏的男生,一定是一个有魅力的男生!让我们一起去浪(Let’s Golang)! 需求设计一个猜数字游戏,做到随机生成一个guessNum,然后输入你猜的数字,当猜大了时输出猜大了,猜小了时...

前言

博主小白一枚,正好在学习Go语言。听说很多朋友都喜欢和女朋友一起玩游戏。博主不太会玩游戏,玩游戏都是坑队友,但是接触猜数字游戏后,博主在这个游戏找回了自信心。我相信在很多女性朋友眼中,一个会玩猜数字游戏的男生,一定是一个有魅力的男生!让我们一起去浪(Let’s Golang)!

需求

设计一个猜数字游戏,做到随机生成一个guessNum,然后输入你猜的数字,当猜大了时输出猜大了,猜小了时输出猜小了,猜对了就输出猜对了。然后再输出一些惊喜的话语。

构造基本框架

package main

import (
	"fmt"
	"math/rand"
	"strconv"
	"time"
)

func main() {
//  -----1----
	rand.Seed(time.Now().Unix())
	answer := rand.Intn(1000)
	
	for{
		fmt.Println("请输入你的猜想:(输入“结束”结束游戏)")
		var guess string
		fmt.Scan(&guess)
		//------2-----
		guessNum, _ := strconv.Atoi(guess)
		//------3-----
		if guess == "结束"{
			fmt.Println("I Love You!Good Bye!")
			break
		}
		//-----4------
		switch {
		case guessNum > answer:
			fmt.Println("猜大了")
		case guessNum < answer:
			fmt.Println("猜小了")
		default:
			fmt.Println("猜对了")
			break
		}
	}

}

下面解释一下代码:
代码段1:如果不实时更换一个Seed,那么rand.Intn(1000)出来的随机数很可能达不到随机的效果,因此我们在这里把Seed随时间变化。

代码段2:把guessNum由字符串转换为数字。

代码段3: 设置退出方式,并说一句惊喜的话语。

代码段4:判断猜的数字是不是要猜的数字,并提示大小。

第一次改进

玩着玩着想着如果能自定义范围就好了,说干就干,实现也很容易。注意rand.Intn()中的值是int类型。

package main

import (
	"fmt"
	"math/rand"
	"strconv"
	"time"
)

func main() {
	fmt.Println("宝贝,请输入你的猜数最大范围: ")
	var area int
	fmt.Scan(&area)
	
	rand.Seed(time.Now().Unix())
	answer := rand.Intn(area)

	for{
		fmt.Println("宝贝,请输入你的猜想:(输入“结束”结束游戏)")
		var guess string
		fmt.Scan(&guess)
		guessNum, _ := strconv.Atoi(guess)
		if guess == "结束"{
			fmt.Println("I Love You!Good Bye!")
			break
		}

		switch {
		case guessNum > answer:
			fmt.Println("猜大了")
		case guessNum < answer:
			fmt.Println("猜小了")
		default:
			fmt.Println("猜对了")
			break
		}
	}

}

第二次改进

在玩游戏过程中,发现猜对后并没有退出程序,于是把switch语句中default中的break改为return

package main

import (
	"fmt"
	"math/rand"
	"strconv"
	"time"
)

func main() {
	fmt.Println("宝贝,请输入你的猜数最大范围: ")
	var area int
	fmt.Scan(&area)
	rand.Seed(time.Now().Unix())
	answer := rand.Intn(area)

	for{
		fmt.Println("宝贝,请输入你的猜想:(输入“结束”结束游戏)")
		var guess string
		fmt.Scan(&guess)
		guessNum, _ := strconv.Atoi(guess)
		if guess == "结束"{
			fmt.Println("I Love You!Good Bye!")
			break
		}
		switch {
		case guessNum > answer:
			fmt.Println("猜大了")
		case guessNum < answer:
			fmt.Println("猜小了")
		default:
			fmt.Println("猜对了")
			return
		}

	}

}

第三次改进

既然是惊喜,那就每次都输出一下下面一句骚话吧。

  • 我大约真的没有什么才华,只是因为有幸见着了你,于是这颗庸常的心中才凭空生出好些浪漫。
  • 人生的出场顺序很重要,我来得晚一点,没陪你朝朝暮暮,但等得久一点,愿陪你共度余生。
  • 草莓蛋糕的第一口给你,冬日的温暖阳光给你,雨后的清新空气给你,清晨的第一眼也给你。拥抱给你,温柔给你,开心给你,所有美好的事物都给你。
  • 你最可爱,我说时来不及思索。而思索之后,还是这样说。
  • 不是我喜欢的样子你都有,而是你所有的样子我都喜欢。
  • 不敢说有你在我身边我会更好,但是起码会多那么一份面对世界的勇气,就连走路都会有底气一点,这是我的爱赋予我的力量。
  • 从今以后 各种辛苦就会像漫长的雨 但只要和你在一起 我就能忍耐
  • 回首亘年漫月里的所有怦然心动 你仍拔得头筹 ​​​
  • 我的愿望,就是希望你的愿望里,也有我
  • 我们都喜欢光 虽然转瞬即逝 但你还是你 有我一喊就心颤的名字
  • 我好想和你一起过一个下雪的日子 我们一起在雪中漫步 说着要一路白头偕老 一起在圣诞树下许愿 而我 也可以把冻的通红的手放在你的怀里 低声的告诉你我有多喜欢你 有多喜欢有你的冬天
  • 我不能给你全世界,但是,我的全世界全部给你。
  • 这是我的爱,收下吧,这是我的心,别打碎了,这是我的手,握住了。
  • 这生命我只牵你的手,正因今生有你早已足够。
  • 我喜欢你,所以希望你被簇拥包围,所以你走的路要繁花盛开,要人声鼎沸。
  • 春天会下雪,夏天有大雨,秋天会起风,冬天有艳阳,一年四季会有很多意外,但最迷人的,还是遇见了你。 ​​
  • 我喜欢夏天里冰凉的半个西瓜,我喜欢夏天里甜甜的草莓冰棒,我喜欢夏天里轻快的知了吟唱,我喜欢夏天里温柔的江边晚风,我喜欢夏天里夜空的漫天星辰,但其实啊,我最喜欢的是陪我过夏天你呀!
  • 我遇到过很多人。有人让我发烧,我以为那是爱情,结果烧坏了所有。有人让我发冷,从此消失在生命里。有人让我觉得温暖,但仅仅是温暖而已。只有你,让我的体温上升0.2℃。
package main

import (
	"fmt"
	"math/rand"
	"strconv"
	"time"
)


func StringWithCharset(length int) string {
	strlist1 := []string{
		"我大约真的没有什么才华,只是因为有幸见着了你,于是这颗庸常的心中才凭空生出好些浪漫。",
		"人生的出场顺序很重要,我来得晚一点,没陪你朝朝暮暮,但等得久一点,愿陪你共度余生。",
		"草莓蛋糕的第一口给你,冬日的温暖阳光给你,雨后的清新空气给你,清晨的第一眼也给你。拥抱给你,温柔给你,开心给你,所有美好的事物都给你。",
		"你最可爱,我说时来不及思索。而思索之后,还是这样说。",
		"不是我喜欢的样子你都有,而是你所有的样子我都喜欢。",
		"不敢说有你在我身边我会更好,但是起码会多那么一份面对世界的勇气,就连走路都会有底气一点,这是我的爱赋予我的力量。",
		"从今以后 各种辛苦就会像漫长的雨 但只要和你在一起 我就能忍耐",
		"回首亘年漫月里的所有怦然心动 你仍拔得头筹 ",
		"我的愿望,就是希望你的愿望里,也有我",
		"我们都喜欢光 虽然转瞬即逝 但你还是你 有我一喊就心颤的名字",
		"我好想和你一起过一个下雪的日子 我们一起在雪中漫步 说着要一路白头偕老 一起在圣诞树下许愿 而我 也可以把冻的通红的手放在你的怀里 低声的告诉你我有多喜欢你 有多喜欢有你的冬天",
		"我不能给你全世界,但是,我的全世界全部给你。",
		"这是我的爱,收下吧,这是我的心,别打碎了,这是我的手,握住了。",
		"这生命我只牵你的手,正因今生有你早已足够。",
		"我喜欢你,所以希望你被簇拥包围,所以你走的路要繁花盛开,要人声鼎沸。",
		"春天会下雪,夏天有大雨,秋天会起风,冬天有艳阳,一年四季会有很多意外,但最迷人的,还是遇见了你。",
		"我喜欢夏天里冰凉的半个西瓜,我喜欢夏天里甜甜的草莓冰棒,我喜欢夏天里轻快的知了吟唱,我喜欢夏天里温柔的江边晚风,我喜欢夏天里夜空的漫天星辰,但其实啊,我最喜欢的是陪我过夏天你呀!",
		"我遇到过很多人。有人让我发烧,我以为那是爱情,结果烧坏了所有。有人让我发冷,从此消失在生命里。有人让我觉得温暖,但仅仅是温暖而已。只有你,让我的体温上升0.2℃。",
	}
	rand.Seed(time.Now().Unix())
	b := strlist1[rand.Intn(len(strlist1))]
	return string(b)
}

func main() {
	fmt.Println("宝贝,请输入你的猜数最大范围: ")
	var area int
	fmt.Scan(&area)
	rand.Seed(time.Now().Unix())
	answer := rand.Intn(area)

	for{
		fmt.Println("宝贝,请输入你的猜想:(输入“结束”结束游戏)")
		var guess string
		fmt.Scan(&guess)
		guessNum, _ := strconv.Atoi(guess)
		if guess == "结束"{
			fmt.Println("I Love You!Good Bye!")
			break
		}
		switch {
		case guessNum > answer:
			fmt.Println("猜大了")
		case guessNum < answer:
			fmt.Println("猜小了")
		default:
			fmt.Println("猜对了")
			fmt.Println( StringWithCharset(1) )
			return
		}

	}

}

结语

博主是一名大二学生,希望大家多多支持。希望自己新的一年能找到女朋友啊,希望单身的小姐姐私信我哦~祝各位有女朋友的大佬能和女朋友长长久久,没女朋友的大佬别跟我抢就行了。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。