1. 숫자 3개 뽑기
모범 답안
from random import randint
def generate_numbers():
numbers = []
while len(numbers) < 3:
num = randint(0, 9)
if num not in numbers:
numbers.append(num)
print("0과 9 사이의 서로 다른 숫자 3개를 랜덤한 순서로 뽑았습니다.\n")
return numbers
2. 숫자 예측하기
모범 답안
def take_guess():
print("숫자 3개를 하나씩 차례대로 입력하세요.")
new_guess = []
while len(new_guess) < 3:
new_num = int(input("{}번째 숫자를 입력하세요: ".format(len(new_guess) + 1)))
if new_num < 0 or new_num > 9:
print("범위를 벗어나는 숫자입니다. 다시 입력하세요.")
elif new_num in new_guess:
print("중복되는 숫자입니다. 다시 입력하세요.")
else:
new_guess.append(new_num)
return new_guess
3. 점수 계산
모범 답안
def get_score(guesses, solution):
strike_count = 0
ball_count = 0
for i in range(3):
if guesses[i] == solution[i]:
strike_count += 1
elif guesses[i] in solution:
ball_count += 1
return strike_count, ball_count
# 테스트 코드
s_1, b_1 = get_score([2, 7, 4], [2, 4, 7])
print(s_1, b_1)
s_2, b_2 = get_score([7, 2, 4], [2, 4, 7])
print(s_2, b_2)
s_3, b_3 = get_score([0, 4, 7], [2, 4, 7])
print(s_3, b_3)
s_4, b_4 = get_score([2, 4, 7], [2, 4, 7])
print(s_4, b_4)
4. 완성본
모범 답안
from random import randint
def generate_numbers():
numbers = []
while len(numbers) < 3:
new_number = randint(0, 9)
if new_number not in numbers:
numbers.append(new_number)
return numbers
def take_guess():
new_guess = []
while len(new_guess) < 3:
num = int(input("{}번째 수를 입력하세요: ".format(len(new_guess) + 1)))
if num < 0 or num > 9:
print("0에서 9까지의 수를 입력해 주세요!")
elif num in new_guess:
print("중복되는 숫자입니다. 다시 입력하세요.")
else:
new_guess.append(num)
return new_guess
def get_score(guesses, solution):
strike_count = 0
ball_count = 0
for i in range(3):
if guesses[i] == solution[i]:
strike_count += 1
elif guesses[i] in solution:
ball_count += 1
return strike_count, ball_count
# 여기서부터 게임 시작!
ANSWER = generate_numbers()
tries = 0
while True:
user_guess = take_guess()
s, b = get_score(user_guess, ANSWER)
print("{}S {}B\n".format(s, b))
tries += 1
if s == 3:
break
print("축하합니다. {}번 만에 세 숫자의 값과 위치를 모두 맞추셨습니다.".format(tries))
'자동제어 > Python for robotics' 카테고리의 다른 글
numpy.array(리스트), .full(), .zeros(,dtype=int), .ones(,dtype=int), .random(), .arange() (0) | 2023.03.01 |
---|---|
데이터 사이언스 프로세스 (0) | 2023.02.19 |
로또 시뮬레이션 (0) | 2023.02.19 |
단어장 만들기(with open(), input(), break, .write()), 단어 퀴즈, 랜덤퀴즈 (0) | 2023.02.19 |
평균매출구하기(파일열기 모듈, strip, split 함수) (0) | 2023.02.19 |