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의 값을 비교하였다.

간단한 예제지만 조건문의 개념을 잡기 좋아 각종 코딩 수업에서 단골로 다뤄지는 프로그램이다.