반응형
안녕하세요?
오늘은 간단한 게임(?)을 만들어 보려고 한다.
숫자야구란..
상대방이 숫자를 적으면
자신이 숫자를 불러가면서 그 숫자를 맞추는 게임이다.
만약 상대방이 적은 숫자가 2 5 3이라면
자신이 1 2 3을 부르면 자리가 맞으면 스트라이크! 자리는 다른데 있는 숫자면 볼! 이라고 말해주는 게임으로
위의 경우 1볼 1스트라이크가 된다.
완성된 코드를 보자.
import random
#1
a = random.randrange(0, 10)
while True:
b= random.randrange(0, 10)
if(a!=b):
break
while True:
c = random.randrange(0, 10)
if(a!=c and b!=c):
break
count = 0
#2
while True:
num1 = int(input("첫번째 숫자:"))
num2 = int(input("두번째 숫자:"))
while num1 == num2:
print("중복된 숫자. 다시입력")
num2 = int(input("두번째 숫자:"))
num3 = int(input("세번째 숫자:"))
while num3 == num1 or num3 == num2:
print("중복된 숫자. 다시입력")
num3 = int(input("세번째 숫자:"))
strike = 0
ball = 0
count += 1
if a==num1:
strike += 1
if b==num2:
strike += 1
if c==num3:
strike += 1
if a == num2 or a==num3:
ball += 1
if b == num1 or b==num3:
ball += 1
if c == num2 or c==num1:
ball += 1
print(count,"번째 도전")
print("Strike:",strike,"Ball:",ball)
if strike == 3:
break
print(count,"회 만에 성공하셨습니다!")
아주 간단히 if문과 while문을 사용하여 만들었다. #1과 #2로 크게 두 부분으로 나누어서 보자면
우리가 맞출 숫자는 컴퓨터가 랜덤으로 정한 숫자이므로 random모듈을 import했다. 그리고 같은 숫자가 중복되지 않는다는 조건하에 게임을 진행할 것이므로 while 과 if문을 적절히 섞어 두번째숫자는 첫번째숫자와 달라야 정해지고 세번째 숫자는 첫째와 둘째 숫자와 달라야만 다음으로 넘어가게 된다.
#2를 보면 중복된 숫자를 입력하지 않도록 하기위해 while문을 이용해준 모습이다.
중반쯤 if문을 통해 볼(Ball)과 스트라이크(Strike)를 정하고 만약 숫자와 자리까지 다 맞춘 3스트라이크인 경우 while문을 벗어나
몇 회만에 맞췄는지 출력을 하며 실행이 끝난다.
이번 코드는 while과 if문을 이해하는데 도움이 될 수 있겠다.
직접 짜보고 개선해본 다음 즐겨보도록 하자.
반응형
'[파이썬]Python > 활용' 카테고리의 다른 글
[파이썬] 주피터노트북 아나콘다 pyinstaller설치 및 사용법 (0) | 2020.08.19 |
---|---|
[파이썬] 원하는 위치에 폴더 만들기(getpass, os 모듈이용) (0) | 2020.08.16 |
[파이썬] 컴퓨터 사용자이름 가져오기(getpass, os 모듈사용) (0) | 2020.08.12 |