diff --git a/chapter1/hello b/chapter1/hello new file mode 100755 index 0000000..37949f3 Binary files /dev/null and b/chapter1/hello differ diff --git a/chapter1/hello.go b/chapter1/hello.go new file mode 100644 index 0000000..941bf24 --- /dev/null +++ b/chapter1/hello.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("Hello, Go!") +} diff --git a/chapter2/guess/guess.go b/chapter2/guess/guess.go new file mode 100644 index 0000000..350ca21 --- /dev/null +++ b/chapter2/guess/guess.go @@ -0,0 +1,53 @@ +// guess - игра про отгадывание числа +package main + +import ( + "fmt" + "math/rand" + // "time" + "bufio" + "log" + "os" + "strconv" + "strings" +) + +func main() { + /* seconds := time.Now().Unix() + rand.Seed(seconds) */ // is deprecated + target := rand.Intn(100) + 1 + fmt.Println("Я загадал число от 1 до 100. Отгадай его: ") + // fmt.Println(target) + + reader := bufio.NewReader(os.Stdin) // новый буфер для чтения с клавы + + success := false + for guesses := 0; guesses < 10; guesses++ { + fmt.Println("У вас есть", 10-guesses, "попыток.") + + fmt.Print("Введите свое число: ") + input, err := reader.ReadString('\n') + if err != nil { + log.Fatal(err) + } + + input = strings.TrimSpace(input) // удаление новой строки + guess, err := strconv.Atoi(input) // конвертация в int + if err != nil { + log.Fatal(err) + } + + if guess < target { + fmt.Println("Ваше число меньше загаданного") + } else if guess > target { + fmt.Println("Ваше число больше загаданного") + } else if guess == target { + success = true + fmt.Println("Вы угадали число!!!") + break + } + } + if !success { + fmt.Println("Вы проиграли! Загаданное число", target) + } +} diff --git a/chapter2/pass_fail/pass_fail.go b/chapter2/pass_fail/pass_fail.go new file mode 100644 index 0000000..2a38626 --- /dev/null +++ b/chapter2/pass_fail/pass_fail.go @@ -0,0 +1,33 @@ +// pass_fail сообщает сдал ли пользователь экзамен +package main + +import ( + "bufio" + "fmt" + "log" + "os" + "strconv" + "strings" +) + +func main() { + fmt.Print("Enter a grade: ") + reader := bufio.NewReader(os.Stdin) + input, err := reader.ReadString('\n') + if err != nil { + log.Fatal(err) + } + input = strings.TrimSpace(input) + grade, err := strconv.ParseFloat(input, 64) + if err != nil { + log.Fatal(err) + } + + var status string + if grade >= 60 { + status = "passing" + } else if grade < 60 { + status = "failing" + } + fmt.Println("A grade of", grade, "is", status) +} diff --git a/chapter2/strings/strings.go b/chapter2/strings/strings.go new file mode 100644 index 0000000..3ed1f99 --- /dev/null +++ b/chapter2/strings/strings.go @@ -0,0 +1,13 @@ +package main + +import ( + "fmt" + "strings" +) + +func main() { + broken := "G# r#cks!" + replacer := strings.NewReplacer("#", "o") + fixed := replacer.Replace(broken) + fmt.Println(fixed) +} diff --git a/chapter2/time.go b/chapter2/time.go new file mode 100644 index 0000000..9780db6 --- /dev/null +++ b/chapter2/time.go @@ -0,0 +1,13 @@ +package main + +import ( + "fmt" + "time" +) + +func main() { + var now time.Time = time.Now() + var year int = now.Year() + fmt.Println(year) + fmt.Println(now) +}