숫자 야구

Sudulge·2022년 1월 20일
0

숫자 야구를 만들어 보았다.

숫자야구: https://namu.wiki/w/%EC%88%AB%EC%9E%90%EC%95%BC%EA%B5%AC

import random

while True:
    number_length = int(input("몇자리수로 하시겠습니까? "))

    if number_length > 10:
        print("0~10 사이의 숫자만 입력해 주시기 바랍니다.")
        continue
    else:
        break

number = []

while len(number) < number_length:
    n = random.randint(0, 9)
    if n not in number:
        number.append(n)

number = list(map(str, number))


win = False
count = 0

while not win:
    strike = 0
    ball = 0

    answer = input('숫자를 입력해주세요 ')
    count += 1

    if len(answer) != number_length:
        print(f"{number_length}자리의 수를 입력해 주세요.")
        continue

    for i in range(number_length):
        if answer[i] == number[i]:
            strike += 1

        elif answer[i] in number:
            ball += 1

    if strike == 0 and ball == 0:
        print('OUT!')
        
    else:
        print(f"{strike}S {ball}B")

    if strike == number_length:
        print(f'승리! {count}회 만에 맞추셨습니다.')
        win = True

아웃을 판별하는 아래와 같은 if else 문은

    if strike == 0 and ball == 0:
        print('OUT!')

    else:
        print(f"{strike}S {ball}B")

이렇게 삼항 연산자를 통해 한 줄로 바꿀 수 있다.

	print('OUT!') if strike == 0 and ball == 0 else print(f"{strike}S {ball}B")

잊으면 안되는 것

1.

import random

random.randint(a, b)

a <= n <= b 범위의 n 생성

2.

map 함수

number = list(map(str, number))

number 리스트의 요소들을 str형으로 바꾼 새로운 리스트 생성.

3.

삼항 연산자

if else 구문을 한 줄로 나타낼 수 있다.

<파이썬 형식>
[True일때] if 조건문 else [False일때]

<다른언어(js..) 형식>
if 조건문 ? [True일때] : [False일때]

0개의 댓글