用go语言写猜字谜游戏
时间: 2024-03-13 10:19:06 浏览: 17
好的,以下是一个简单的猜字谜游戏的Go语言代码示例:
```go
package main
import (
"fmt"
"math/rand"
"time"
)
var words = []string{"apple", "banana", "cherry", "orange", "peach"}
func main() {
rand.Seed(time.Now().UnixNano())
word := words[rand.Intn(len(words))]
fmt.Println("Guess the word!")
fmt.Println("The word has", len(word), "letters")
fmt.Println("Enter a letter or the full word:")
guesses := make([]string, 0)
maxGuesses := 10
for remainingGuesses := maxGuesses; remainingGuesses > 0; remainingGuesses-- {
fmt.Printf("%d guesses remaining: ", remainingGuesses)
var guess string
fmt.Scanln(&guess)
if guess == word {
fmt.Println("Congratulations, you guessed the word!")
return
} else if len(guess) != 1 {
fmt.Println("Please enter a single letter or the full word")
continue
}
if contains(guesses, guess) {
fmt.Println("You already guessed that letter")
continue
}
guesses = append(guesses, guess)
if contains(word, guess) {
fmt.Println("Correct!")
} else {
fmt.Println("Incorrect!")
}
}
fmt.Println("Sorry, you ran out of guesses. The word was", word)
}
func contains(str string, substr string) bool {
return len(substr) == 1 && rune(substr[0]) == []rune(str)[0]
}
func containsSlice(slice []string, str string) bool {
for _, s := range slice {
if s == str {
return true
}
}
return false
}
```
这个代码首先定义了一个字谜单词列表,然后随机选择一个单词。游戏开始时,程序给出一些提示,并且允许玩家猜测字母或完整单词。玩家有一定的猜测次数,如果在次数内猜到了单词,则游戏胜利,否则游戏失败。
在游戏过程中,程序会记录玩家的猜测并给出相应的反馈。如果玩家已经猜过某个字母,则程序会提示玩家不要再次猜测。如果猜测的字母在单词中出现,则程序会告诉玩家猜测正确,否则提示猜测错误。