숫자 게임

Grace Goh·2022년 9월 7일
0

Today I learned

목록 보기
11/137
import random  # 숫자 랜덤을 뽑기 위해서!
from datetime import datetime  # 시간을 표시하기 위해서!
import time  # 코드 시간길이를 확인하기 위해서!

# 1. 숫자를 몇자리로 할 것인지 받기 (ㅇ)
# 2. 첫 번째 입력을 받은 수 만큼 중복없는 랜덤한 수 생성 (ㅇ)
# 3. 사용자가 숫자를 입력했을 때 규칙에 맞게 ball / out count를 출력 (ㅇ)
# 4. 사용자가 정답을 맞춘 경우 아래 항목들을 출력
# (사용자가 정답을 맞추기까지 입력한 횟수) (ㅇ)
# (사용자가 게임을 시작해서 정답을 맞추기까지 소요된시간) (ㅇ)
# (정답을 맞춘 시점의 날짜/시간) (ㅇ)
# 8. 게임을 진행하던 도중, exit을 입력할 경우 프로그램을 종료

# 1번
start_time = time.time()
a = int(input("몇자리(최대 10자리)로 하시겠습니까?: "))
while True:
    if a > 10:
        print("최대 10자리 입니다. 다시 설정해주세요")
        a = int(input())
    else:
        print("게임을 시작합니다!")
        break

# 2번
random_number = []
for i in range(1, a + 1):
    random_number.append(str(random.randrange(1, 9)))
print(random_number)

# 3번
cnt_out = 0  # 도전횟수
cnt_out_max = 3  # 최대 도전횟수
cnt_enter = 0
exit = input("게임을 종료하실려면 exit를 입력해주세요:")
while True:
    if exit == "exit":
        break
    else:
        if cnt_out > cnt_out_max:
            print(f'패배했습니다. 아웃/도전횟수:{cnt_out}')
            break
        user_number = list(input("자릿 수에 맞게 공백을 추가하여 원하는 숫자를 입력해주세요: ").split())
        print(user_number)
        cnt_enter += 1

        cnt_strike = 0
        cnt_ball = 0
        for i, user in enumerate(user_number):
            if user == random_number[i]:
                cnt_strike += 1
            elif user in random_number:  # 숫자는 맞고 위치가 틀린 것 #random_number[1,2,3] user[2,3,4]
                # random_number 있는 값을 user에 있는 값을 비교하여 있으면 true 없으면 false 빠져나감
                cnt_ball += 1
                # 4번

        if cnt_strike == 3:
            print(f'승리했습니다. 아웃/도전횟수:{cnt_out},입력한 횟수{cnt_enter}\n')
            print("정답을 맞춘 시간: ", end="")
            print(datetime.now())
            end_time = time.time()
            print(f"\n정답을 맞추는데 걸린 시간 : {end_time - start_time:}")


        elif cnt_strike != 0 or cnt_ball != 0:
            print(f"스트라이크:{cnt_strike}, 볼:{cnt_ball}, 입력한 횟수{cnt_enter}")

        else:
            cnt_out += 1
            print("아웃!")

        print(f"아웃 카운트:{cnt_out}")   

출처 사재혁 님

profile
Español, Inglés, Coreano y Python

0개의 댓글