用go写一段中文版MBTI性格测试的代码
时间: 2024-05-09 18:16:34 浏览: 214
性格标签测试代码
好的,以下是一段简单的中文版MBTI性格测试的代码:
```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
// 设置问题列表
questions := []string{
"1. 我更喜欢在人群中呆着,而不是独自一人。",
"2. 我更喜欢关注细节,而不是考虑大局。",
"3. 我更喜欢以事实和逻辑为导向,而不是以情感和价值观为导向。",
"4. 我更喜欢灵活应对变化,而不是按部就班。",
"5. 我更喜欢先想好计划,再开始行动,而不是先行动再想计划。",
"6. 我更喜欢在安静的环境中工作,而不是在热闹的环境中。",
"7. 我更喜欢将注意力集中在当前需要做的事情上,而不是一心多用。",
"8. 我更喜欢与人交往,而不是独来独往。",
"9. 我更喜欢直接坦率地表达自己的意见,而不是委婉地表达。",
"10.我更喜欢按照自己的想法和方式去做事,而不是按照别人的建议。",
}
// 设置每个问题对应的选项
options := []string{"A. 是的", "B. 不确定", "C. 不是的"}
// 设置每个选项对应的分数
scores := []int{2, 1, 0}
// 初始化分数
eScore, iScore := 0, 0
sScore, nScore := 0, 0
tScore, fScore := 0, 0
jScore, pScore := 0, 0
// 开始测试
for _, question := range questions {
fmt.Println(question)
for _, option := range options {
fmt.Println(option)
}
fmt.Print("请选择您的答案:")
reader := bufio.NewReader(os.Stdin)
answer, _ := reader.ReadString('\n')
answer = strings.TrimSuffix(answer, "\n")
switch answer {
case "A":
eScore += scores[0]
sScore += scores[0]
tScore += scores[0]
jScore += scores[0]
case "B":
iScore += scores[1]
nScore += scores[1]
fScore += scores[1]
pScore += scores[1]
case "C":
eScore += scores[2]
iScore += scores[2]
sScore += scores[2]
nScore += scores[2]
tScore += scores[2]
fScore += scores[2]
jScore += scores[2]
pScore += scores[2]
default:
fmt.Println("无效的选项,请重新选择")
continue
}
}
// 计算得分并输出结果
eiResult := getMBTIResult(eScore, iScore, "E", "I")
snResult := getMBTIResult(sScore, nScore, "S", "N")
tfResult := getMBTIResult(tScore, fScore, "T", "F")
jpResult := getMBTIResult(jScore, pScore, "J", "P")
fmt.Println("您的MBTI性格类型为:", eiResult+snResult+tfResult+jpResult)
}
// 根据得分计算性格类型
func getMBTIResult(score1, score2 int, type1, type2 string) string {
if score1 > score2 {
return type1
} else {
return type2
}
}
```
这段代码实现了一个简单的中文版MBTI性格测试,用户需要根据自己的喜好选择每个问题的选项,然后程序会自动计算出用户的MBTI性格类型。在这个测试中,每个问题有三个选项,分别对应不同的分数,用户选择的选项会根据对应的分数累加到不同的得分变量中,最后根据得分计算出MBTI性格类型。
阅读全文