wheel_of_fortune/cmd/main.go

102 lines
1.9 KiB
Go

package main
import (
"fmt"
"math/rand"
"strings"
"wheel_of_fortune/internel/common"
)
func init() {
printMenu()
fmt.Println("Введите цифру:")
}
func printMenu() {
fmt.Println(`
Выберете пункт меню:
1. Новая игра
2. Загрузить игру
3. Сохранить игру
4. Выход
`)
}
func print_field(field string) {
for i := range field {
fmt.Print(string(field[i]), " ")
}
fmt.Println()
}
func gameEngine() {
storage := common.ReadDB()
fmt.Println(storage)
word := storage.Words[rand.Intn(len(storage.Words))]
fmt.Println(word)
var field string = strings.Repeat("_", len(word.Word))
print_field(field)
fmt.Println("Введите вашу букву: ")
var inputString string
var count_fail int = 3
for strings.Contains(field, "_") {
_, err := fmt.Scan(&inputString)
if err != nil || len(inputString) != 1 {
fmt.Println("Ошибка ввода")
return
}
char := inputString[0]
// strings.Contains(word.Word, string(char))
var isFound bool = false
for i := 0; i < len(word.Word); i++ {
if word.Word[i] == char {
field = field[:i] + string(char) + field[i+1:]
isFound = true
}
}
if !isFound {
count_fail--
fmt.Printf("Осталось %d попыток\n", count_fail)
}
if count_fail == 0 {
fmt.Println("Игра окончена")
return
}
print_field(field)
}
}
func main() {
var number int
fmt.Scanln(&number)
/*TODO: реализовать функции, добавить интрфейс сохранения,
загрузки, структуру, возможность возврата в меню в процессе игры*/
switch number {
case 1:
gameEngine()
case 2:
fmt.Println("load")
case 3:
fmt.Println("save")
case 4:
fmt.Println("exit")
default:
fmt.Println("Вы ввели несуществующий пункт меню")
}
}