요구사항
- 1 ~ 100 사이의 난수를 생성합니다.
"1 ~ 100 사이의 숫자가 랜덤 생성되었습니다."
"이제부터 숫자를 추측해주시길 바랍니다."
라는 출력 문구를 띄웁니다. - 사용자가 입력할 수 있는 문구를 띄운 후, 입력 값을 저장합니다.
"남은 횟수 -> [남은 횟수 표시]"
"사용자 추측 숫자 : " - [남은 횟수 표시]는 for문을 이용하여 표현합니다.
- 입력 후 출력 문구
사용자가 추측한 숫자가 목표값보다 낮다면 -> "목표값은 입력 숫자보다 높은 숫자입니다."
사용자가 추측한 숫자가 목표값보다 높다면 -> "목표값은 입력 숫자보다 낮은 숫자입니다." - 결과물
추측에 성공했다면 -> "당신이 이겼어요!"
추측에 실패했다면 -> "아쉽네요ㅠㅠ 정답은 [정답값]입니다."
코드
package main
import (
"bufio"
"fmt"
"log"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main() {
// 1. 1 ~ 100 사이의 난수 값을 생성하여 목표값으로 설정합니다.
// Unix() -> 현재 날짜 및 시간을 정수값으로 반환합니다.
seconds := time.Now().Unix()
// 컴퓨터 프로그램에서 발생하는 무작위 수는 사실 엄격한 의미의 무작위 수가 아닙니다.
// 어떤 특정한 시작 숫자를 정해 주면 컴퓨터가 정해진 알고리즘에 의해 마치 난수처럼 보이는 수열을 생성합니다.
// 이러한 시작 숫자를 Seed라고 합니다.
rand.Seed(seconds) // 난수 생성기를 시딩합니다.
target := rand.Intn(100) + 1
// fmt.Println(target)
fmt.Println("1 ~ 100 사이의 숫자가 랜덤 생성되었습니다.")
fmt.Println("이제부터 숫자를 추측해주시길 바랍니다.")
// 3. 사용자가 추측한 숫자가 목표값보다 낮다면 -> "목표값은 입력 숫자보다 높은 숫자입니다."
// 높다면 -> "목표값은 입력 숫자보다 낮은 숫자입니다."
isFind := false
for x := 1; x <= 10; x++ {
fmt.Println("남은 횟수 ->", 11-x)
// 2. 사용자가 추측한 숫자를 입력할 수 있게 만들고, 추측한 값을 저장합니다.
fmt.Print("사용자 추측 숫자 : ")
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString('\n')
if err != nil {
log.Fatal(err)
}
input = strings.TrimSpace(input)
userNum, err := strconv.Atoi(input)
if err != nil {
log.Fatal(err)
}
if userNum < target {
fmt.Println("목표값은 입력 숫자보다 높은 숫자입니다.")
fmt.Println()
} else if userNum > target {
fmt.Println("목표값은 입력 숫자보다 낮은 숫자입니다.")
fmt.Println()
} else {
isFind = true
break
}
}
if isFind {
fmt.Println("당신이 이겼어요!")
} else {
fmt.Println("아쉽네요ㅠㅠ 정답은", target, "입니다.")
}
}
결과물
'Go > [Go]Up Down Counting 게임 만들기' 카테고리의 다른 글
for 문을 이용해 Counting 기능 구현하기 (0) | 2021.11.17 |
---|---|
Up Down Counting Game 키보드 입력하기(정수값 입력하기) (0) | 2021.11.17 |
난수 생성하기 (0) | 2021.11.17 |
Up Down Counting 게임 요구사항 (0) | 2021.11.17 |