Programming/Python
Python 응용문제 - 가위바위보 게임 만들기
슬픈 야옹이
2022. 12. 31. 01:09
파이썬의 random 모듈과 if문을 응용한 간단한 프로그램이다.
random 모듈을 import 하는 코드
import random
많은 프로그래밍 언어는 외부 코드를 가져다 쓰는 기능을 지원한다.
파이썬의 import, C/C++의 #include, 자바의 import 등이 대표적이다.
이들 중 파이썬은 코드를 가져다 쓰기 편한 축에 속한다.
그 이유는 인터프리터 언어라는 파이썬의 특징과 관련이 있는데, 이 포스트에서 다루는 범위를 넘어가기 때문에 따로 설명하지 않는다.
집어 치우고, 파이썬에서는 미리 작성돼 있는 외부 코드를 'import 모듈명' 문장을 통해 편하게 가져다 쓸 수 있다는 점만 기억하자.
random 모듈에는 난수를 발생시키는 편리한 기능의 함수들이 정의되어 있다.
가장 자주 쓰이는 함수는 다음 두가지다.
random.randint(n, k) # n부터 k까지 (k포함)
random.randrange(n, k) # n부터 k-1까지 (k 미포함)
즉, 1~10 사이의 수를 랜덤하게 발생시키고 싶다면 다음과 같이 작성하면 된다.
random.randint(1, 10)
random.randrange(1, 11)
두 함수에 전달되는 값을 비교해보면 두 함수의 차이점을 쉽게 이해할 수 있을 것이다.
이제 random 모듈과 if문을 활용해 가위바위보 게임을 만들어보자.
가위=1, 바위=2, 보=3으로 설정하였다.
전체 로직은 다음과 같다.
1. random모듈의 함수를 이용해 컴퓨터의 값을 설정한다.
2. 사용자는 무엇을 낼지 키보드로 입력한다.
3. 컴퓨터의 값과 사용자의 값을 비교한 뒤 결과를 출력한다.
이를 코드로 구현하면 다음과 같다.
import random
usr = int(input("1:가위, 2:바위, 3:보 >>"))
com = random.randint(1,3)
if usr == 1: # user - 가위
print("user - 가위, ", end='')
if com == 2: # com - 바위
print("com - 바위")
print("com 승!")
elif com == 3: # com - 보
print("com - 보")
print("user 승!")
else:
print("com - 가위")
print("비겼습니다.")
elif usr == 2: # user - 바위
print("user - 바위, ", end='')
if com == 1: # com - 가위
print("com - 가위")
print("user 승!")
elif com == 3: # com - 보
print("com - 보")
print("com 승!")
else:
print("com - 바위")
print("비겼습니다.")
elif usr == 3: # user - 보
print("user - 보, ", end='')
if com == 1: # com - 가위
print("com - 가위")
print("com 승!")
elif com == 2: # com - 바위
print("com - 바위")
print("user 승!")
else:
print("com - 보")
print("비겼습니다.")
경우의 수를 user 값에 따라 나누고, 다시 각 경우에 com의 값을 비교하였다.
간단한 예제지만 조건문의 개념을 잡기 좋아 각종 코딩 수업에서 단골로 다뤄지는 프로그램이다.