로또는 주 1회씩 열립니다. 하지만 한 사람이 한 회차에 여러 번 참여할 수도 있습니다.
번호는 1부터 45까지 있는데요. 주최측에서는 매주 6개의 '일반 당첨 번호'와 1개의 '보너스 번호'를 뽑습니다. 그리고 참가자는 1번 참여할 때마다 서로 다른 번호 6개를 선택합니다.
당첨 액수는 아래 규칙에 따라 결정됩니다.
# generate_numbers
from random import randint
def generate_numbers(n):
numbers = []
while len(numbers) < n:
num = randint(1, 45)
if num not in numbers:
numbers.append(num)
return numbers
# 예시 결과 출력
print(generate_numbers(6))
def draw_winning_numbers():
winning_numbers = generate_numbers(7)
return sorted(winning_numbers[:6]) + winning_numbers[6:]
def count_matching_numbers(numbers, winning_numbers):
count = 0
for num in numbers: #list_1의 각 원소를 본다.
if num in winning_numbers: #해당 원소가 list_2에 있는지 확인한다.
count += 1
return count
def check(numbers, winning_numbers):
count = count_matching_numbers(numbers, winning_numbers[:6])
bonus_count = count_matching_numbers(numbers, winning_numbers[6:])
if count == 6:
return 1000000000
elif count == 5 and bonus_count == 1:
return 50000000
elif count == 5:
return 1000000
elif count == 4:
return 50000
elif count == 3:
return 5000
else:
return 0
0
과 9
사이의 서로 다른 숫자 3개를 무작위로 뽑습니다. 예를 들어서 컴퓨터가 5
, 2
, 3
을 뽑을 수도 있고 6
, 7
, 4
를 뽑을 수도 있는 거죠.1
, 2
, 3
을 뽑았다고 가정합시다. 사용자가 1
, 3
, 5
를 입력하면, 1S(1
의 값과 위치가 일치) 1B(3
의 값만 일치)입니다.3S
(숫자 3개의 값과 위치를 모두 맞춘 경우)가 나오면 게임이 끝납니다."0과 9 사이의 서로 다른 숫자 3개를 랜덤한 순서로 뽑았습니다."
가 출력됩니다."숫자 3개를 하나씩 차례대로 입력하세요."
가 출력됩니다."1번째 숫자를 입력하세요: "
가 출력되고, 사용자로부터 입력을 받습니다. 마찬가지로 "2번째 숫자를 입력하세요: "
와 "3번째 숫자를 입력하세요: "
가 출력되고, 사용자로부터 각각 입력을 받습니다. 만약 사용자가 중복되는 숫자를 입력하거나 범위에서 벗어나는 숫자를 입력하면, 사용자로부터 입력을 다시 받습니다."*S *B"
가 출력됩니다."축하합니다. *번 만에 숫자 3개의 값과 위치를 모두 맞추셨습니다."
가 출력됩니다. 그리고 게임은 종료됩니다.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(guess, answer_list):
strike_count = 0
ball_count = 0
for i in range(3):
if guess[i] == answer_list[i]:
strike_count += 1
elif guess[i] in answer_list:
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))