自我挑戰組就是如此愜意、自由...不用在那邊解釋543的...Code as Tech,我想就一切用code來j4吧!
我:地鼠地鼠,我們來玩個終極密碼吧!
地鼠:不要
全劇終
威~ 怎麼可以這樣呢...,首先,讓我們拆解一下終極密碼
我覺得啊,面試考終級密碼真的是很有鑑別度的題目 👈 自己說...
以後我做面試官應該要考這一題...(面試者:這也太簡單...
為什麼呢 (還要說啊...
根據以上的情境你可以知道這個題目可以考到
至於亂數的部分,其實 golang 就是兩行:
r := rand.New(rand.NewSource(time.Now().UnixNano()))
result := r.Intn(101)
讓我們看看 Intn 這個文件怎麼說:
來人啊,上文件! https://pkg.go.dev/math/rand#Intn
func Intn ¶
func Intn(n int) int
Intn returns, as an int, a non-negative pseudo-random number in the half-open interval [0,n) from the default Source. It panics if n <= 0.
其實就是生成 0~ n 這個裡面隨機選一個數字出來,啊你問我有沒有包含 n 呢
自己問 ChatGPT 啊
你沒有發現[0,n)
這個很特別嗎?哈 我也是剛剛才發現,可以參考wiki
當然就是沒有包含 n 啦
另外解釋前面那個r := rand.New(rand.NewSource(time.Now().UnixNano()))
這一句話...
其實電腦很笨的,所謂的亂數產生電腦背後有不同的作法與算法,是讓你看起來很像亂數,如果你有寫過C語言也就很熟悉也需要這樣宣告,這在我們程式界裡俗稱是亂數種子
亂數部分講差不多了...上程式了囉
package main
import (
"fmt"
"math/rand"
"time"
)
func main(){
var answer int
r := rand.New(rand.NewSource(time.Now().UnixNano()))
result := r.Intn(101)
loop := true
for (loop) {
fmt.Printf("Please Enter a number(1-100): ")
fmt.Scanf("%d", &answer)
switch {
case (result < answer):
fmt.Printf("比 %d 還小\n",answer)
case (result > answer):
fmt.Printf("比 %d 還大\n",answer)
case (result == answer):
fmt.Println("答對了,爆炸!")
loop = false
break
default:
loop = true
}
}
fmt.Printf("result is %d\n",result)
fmt.Println("Game is over!")
}
昨天,終於有一隻噴火龍了,不知道題目改成「三十天都抓一隻寶可夢」該有多好...