Golang 猜单词

2024-01-31  本文已影响0人  __豆约翰__
package main

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

func isContains(word []byte, char byte) bool{
    ret := false
    for _, c := range word {
        if c == char {
            ret = true
        }
    }
    return ret
}

func printMsg(dynWord []byte){
    for _, c := range dynWord {
        fmt.Print(string(c))
    }
    fmt.Println()
}
func main() {
    words := []string{"hello", "example", "struct"}
    nIndex := rand.Intn(len(words))
    fmt.Println(nIndex)
    selectWord := words[nIndex]
    dynWord := []byte{}
    for i := 0; i < len(selectWord); i++ {
        dynWord = append(dynWord, '-')
    }

    printMsg(dynWord)

    guessTimes := 3
    for {
        bFind := false
        input := ""
        fmt.Scan(&input)

        for idx, c := range selectWord {
            if byte(c) == input[0] {
                dynWord[idx] = byte(c)
                bFind = true
            }
        }

        printMsg(dynWord)

        if !isContains(dynWord,'-'){
            break
        }
        if bFind == false{
            guessTimes--
            msg := "you have "+ strconv.Itoa(guessTimes) +" left"
            fmt.Println(msg)
        }
        if guessTimes <= 0{
            break
        }

    }
    if guessTimes <= 0 {
        fmt.Println("you lose")
    } else {
        fmt.Println("you win")
    }
}

上一篇 下一篇

猜你喜欢

热点阅读