博主小白一枚,正好在学习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
}
}
}
既然是惊喜,那就每次都输出一下下面一句骚话吧。
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
}
}
}
终于把这篇博客写完啦,提前祝大家情人节快乐啊。博主是一名大二学生,希望大家多多支持。希望自己新的一年能找到女朋友啊,希望单身的小姐姐私信我哦~祝各位有女朋友的大佬能和女朋友长长久久,没女朋友的大佬别跟我抢就行了。