데이터 꿈나무

[Python] 컴퓨터와 주사위 놀이하기 본문

Language/Python

[Python] 컴퓨터와 주사위 놀이하기

ye_ju 2023. 1. 26. 18:55
규칙

 

1. 컴퓨터는 주사위의 숫자 하나를 임의로 만들어 낸다.
2. 사용자 역시 주사위의 숫자를 맞추되 반드시 주사위 범위 내의 숫자를 입력해야 한다. 
3. 만약 범위를 벗어난 수를 입력하면 오류 메시지를 내고 멈추게 됩니다.

 

코드

 

import random

user_score = 0
com_score = 0

우선 컴퓨터의 랜덤 수를 입력받기 위해 random 모듈을 임포트 해줍니다.

그 후 사용자 점수와 컴퓨터 점수를 0으로 설정해줍니다.

 

while True:
    
    com = random.randint(1, 7)  
    user = int(input("주사위의 숫자를 맞추세요.(종료=0) : "))
    
    if (0 < user) and (user < 7):
        
        if (com > user):
            com_score += 1
            print("컴퓨터의 주사위 수 {}".format(com))
            print("사용자의 주사위 수 {}\n".format(user))
            print("컴퓨터의 득점!")
            print("컴퓨터의 점수 {}점, 사용자의 점수 {}점\n".format(com_score, user_score))
    
        elif (com < user):
            user_score += 1
            print("컴퓨터의 주사위 수 {}".format(com))
            print("사용자의 주사위 수 {}\n".format(user))
            print("사용자의 득점!")
            print("컴퓨터의 점수 {}점, 사용자의 점수 {}점\n".format(com_score, user_score))
        else:
            print("컴퓨터의 주사위 수 {}".format(com))
            print("사용자의 주사위 수 {}\n".format(user))
            print("동점입니다!")
            print("컴퓨터의 점수 {}점, 사용자의 점수 {}점\n".format(com_score, user_score))
            
    elif (user == 0):
        print("사용자에 의해 주사위 게임이 종료됩니다.\n")
        break
    else:
        print("오류!!입력할 수 있는 범위를 넘었습니다. 게임을 종료합니다.\n")
        break

다음으로 while 반복문을 사용해줍니다. random 모듈을 사용하여 1부터 6까지의 랜덤 수를 변수 com에 저장해줍니다.

user 변수에는 주사위의 숫자를 맞추라는 문구와 함께 사용자로부터 입력받도록 합니다. 그리고 입력받은 값을 int로 변환해서 저장해줍니다. 종료를 원할 시에 0을 입력하도록 합니다.

 

만약 유저가 1~6 범위의 수를 입력했을 경우, 내부 if문을 통해서 컴퓨터가 이겼는지 사용자가 이겼는지 판별합니다.

 

컴퓨터가 이겼을 경우, 컴퓨터의 점수를 1점 추가합니다.
사용자가 이겼을 경우, 사용자의 점수를 1점 추가합니다.


이 두가지 경우가 아닐 경우 else문을 통해 동점을 알립니다. 그리고 각각 승부를 판별할 때마다, 컴퓨터와 사용자의 현재 점수를 표시해줍니다.


사용자가 숫자 0을 입력했을 경우 게임을 종료시킵니다.


그게 아니라 범위를 벗어난 다른 문자를 입력했을 경우, 오류메시지를 표시하며 게임을 멈춥니다.

 

if (user_score > com_score):
    print("최종 점수는 컴퓨터 {}점, 사용자 {}점입니다.".format(com_score, user_score))
    print("사용자가 이겼습니다.")
elif (user_score < com_score):
    print("최종 점수는 컴퓨터 {}점, 사용자 {}점입니다.".format(com_score, user_score))
    print("컴퓨터가 이겼습니다.")
else:
    print("최종 점수는 컴퓨터 {}점, 사용자 {}점입니다.".format(com_score, user_score))
    print("사용자와 컴퓨터는 동점입니다.")

마지막으로 사용자와 컴퓨터의 최종 점수를 비교하여 승자가 누군지 알려줍니다.

 

 

전체 코드

 

import random

user_score = 0
com_score = 0

while True:
    
    com = random.randint(1, 7)  
    user = int(input("주사위의 숫자를 맞추세요.(종료=0) : "))
    
    if (0 < user) and (user < 7):
        
        if (com > user):
            com_score += 1
            print("컴퓨터의 주사위 수 {}".format(com))
            print("사용자의 주사위 수 {}\n".format(user))
            print("컴퓨터의 득점!")
            print("컴퓨터의 점수 {}점, 사용자의 점수 {}점\n".format(com_score, user_score))
    
        elif (com < user):
            user_score += 1
            print("컴퓨터의 주사위 수 {}".format(com))
            print("사용자의 주사위 수 {}\n".format(user))
            print("사용자의 득점!")
            print("컴퓨터의 점수 {}점, 사용자의 점수 {}점\n".format(com_score, user_score))
        else:
            print("컴퓨터의 주사위 수 {}".format(com))
            print("사용자의 주사위 수 {}\n".format(user))
            print("동점입니다!")
            print("컴퓨터의 점수 {}점, 사용자의 점수 {}점\n".format(com_score, user_score))
            
    elif (user == 0):
        print("사용자에 의해 주사위 게임이 종료됩니다.\n")
        break
    else:
        print("오류!!입력할 수 있는 범위를 넘었습니다. 게임을 종료합니다.\n")
        break
        
if (user_score > com_score):
    print("최종 점수는 컴퓨터 {}점, 사용자 {}점입니다.".format(com_score, user_score))
    print("사용자가 이겼습니다.")
elif (user_score < com_score):
    print("최종 점수는 컴퓨터 {}점, 사용자 {}점입니다.".format(com_score, user_score))
    print("컴퓨터가 이겼습니다.")
else:
    print("최종 점수는 컴퓨터 {}점, 사용자 {}점입니다.".format(com_score, user_score))
    print("사용자와 컴퓨터는 동점입니다.")

 

이상으로 포스팅을 마치겠습니다. 모두 긴 글 읽어주셔서 감사합니다!! :)

Comments