💻코딩 실습
Last updated
Last updated
타이핑 게임에서 배웠던 if 조건문과 while 반복문을 사용하여 가위 바위 보 게임을 만들어 보겠습니다.
이번엔 앞선 게임보다 더 많은 조건들을 사용하여 컴퓨터가 낸 가위 바위 보와 사용자가 입력한 가위 바위 보를 비교하여 승리와 패배 조건을 판단하여 전체 승률을 따져보는 게임을 만들어 봅니다.
import random
print('가위바위보 게임을 시작합니다!')
print("="*50)
game = ['가위', '바위', '보']
count = 0 #게임을 진행한 총 횟수를 세는 변수
win = 0 #여러분이 이긴 횟수를 세는 변수
타이핑 게임과 같이 이번에도 랜덤
한 값을 사용하는 random
을 import
해 줍니다.
print()
문을 통해 게임의 간단한 시작을 화면에 출력해 주고,
컴퓨터가 제시하는 랜덤한 값을 사용하기 위해
game
이란 이름의 리스트에 '가위', '바위', '보' 를 넣어 줍니다.
진행할 게임의 횟수는 총 6번인데 이 값을 넣어 줄 count
라는 변수와
사용자가 게임에 몇 번 승리 했는지 알려 줄 win
이란 변수를 만들고 각각 숫자 값 0을 넣어 줍니다.
게임 횟수가 담겨있는 count 변수가 10보다 작다는 조건이 성립되면 while 반복문 안에 담겨있는 코드들이 동작하게 됩니다.
위에 다음 탭에서 반복문 안의 코드들을 자세히 살펴 봅시다.
while count < 10 :
computer = random.choice(game)
answer = input("\n가위 바위 보 중 무엇을 낼까? (끝내고 싶으면 '그만'을 입력)\n")
if answer == "그만":
break
count = count+1
print("\n<" + str(count) + "번째 시합 >")
print("======결과==========")
print("컴퓨터: " + computer)
print("나: " + answer)
print("==================")
#만약 컴퓨터가 가위를 냈다면
if computer == '가위' :
if answer == '가위' :
print('비겼다!\n')
elif answer == '바위' :
print('이겼다!\n')
win = win+1
elif answer == '보' :
print('졌다!\n')
else:
print("정확한 단어를 입력해 주세요!\n")
elif computer == '바위' :
if answer == '가위' :
print('졌다!\n')
elif answer == '바위' :
print('비겼다!\n')
elif answer == '보' :
print('이겼다!\n')
win = win+1
else:
print("정확한 단어를 입력해 주세요!\n")
elif computer == '보' :
if answer == '가위' :
print('이겼다!\n')
win = win+1
elif answer == '바위' :
print('졌다!\n')
elif answer == '보' :
print('비겼다!\n')
else:
print("정확한 단어를 입력해 주세요!\n")
computer = random.choice(game)
answer = input("\n가위 바위 보 중 무엇을 낼까? (끝내고 싶으면 '그만'을 입력)\n")
if answer == "그만":
break
count = count+1
타이핑 게임에서 랜덤으로 동물들 이름을 선택했던 명령어가 기억나시나요?
random.choice()
를 통해 이번에도 game
리스트에 담겨있는 '가위', '바위', '보' 중 하나를
랜덤으로 선택하여 대결에서 컴퓨터
가 제시하게 할 것 입니다.
answer 변수에는 input() 명령어를 통해 화면에서 참여자에게 값을 입력 받게 합니다.
input() 을 사용할 때 ( )안에 원하는 문장을 함께 입력하여 사용할 수 있습니다.
만약 참여자가 '그만'이란 값을 입력하면 break 명령문을 통해 while 반복문은 종료되게 됩니다.
마지막으로 다음 게임을 위해 count 변수에 1을 더해 줍니다.
count = count + 1 은 count += 1 로 줄여서 작성할 수 있습니다.
print("\n<" + str(count) + "번째 시합 >")
print("======결과==========")
print("컴퓨터: " + computer)
print("나: " + answer)
print("==================")
print() 문을 통해 화면에 결과를 출력해 줍니다.
print() 문 안에 있는 문장 중 \n
이 무엇인지 궁금한 분이 계신가요?
print() 문은 출력 후 자동으로 다음 줄로 커서가 이동하게 되는데
print() 문 안에 \n
을 입력하게 되면 다음줄로 이동하게 되는 결과를 얻게 됩니다.
(어떤 차이가 있는지 보이시나요?)
#만약 컴퓨터가 가위를 냈다면
if computer == '가위' :
if answer == '가위' :
print('비겼다!\n')
elif answer == '바위' :
print('이겼다!\n')
win = win+1
elif answer == '보' :
print('졌다!\n')
else:
print("정확한 단어를 입력해 주세요!\n")
#만약 컴퓨터가 바위를 냈다면
elif computer == '바위' :
if answer == '가위' :
print('졌다!\n')
elif answer == '바위' :
print('비겼다!\n')
elif answer == '보' :
print('이겼다!\n')
win = win+1
else:
print("정확한 단어를 입력해 주세요!\n")
#만약 컴퓨터가 보를 냈다면
elif computer == '보' :
if answer == '가위' :
print('이겼다!\n')
win = win+1
elif answer == '바위' :
print('졌다!\n')
elif answer == '보' :
print('비겼다!\n')
else:
print("정확한 단어를 입력해 주세요!\n")
if조건문
은 앞에 타이핑 게임에서 사용했지만 아래 elif
는 무엇인가요? 라고 질문하는 소리가 들리네요.
여러가지 조건들을 동시에 판단해야 할 때 if
조건문과 함께 elif
와 else
조건문이 함께 사용 됩니다.
elif
는 else if 의 의미를 가지는데 만약 이 조건이 아니라 다른 조건이 맞다면 아래의 코드를 실행하세요
라는 의미 입니다.
제일 먼저 상단에 있는 if
조건들을 살펴 보고 아니라면 아래에 있는 elif
조건들을, 그것도 아니라면
마지막으로 else
에 있는 코드들을 실행하는 순서 입니다.
조금 복잡할 수 있지만 여러번 사용하다 보면 그 의미들을 이해할 수 있을 거에요!
if computer == '가위':
실행 코드
elif computer == '바위':
실행 코드
elif computer == '보':
실행 코드
컴퓨터가 가위를 내거나 바위 또는 보를 낼 수 있겠죠?(랜덤으로 선택된 값)
먼저 큰 틀은 위의 코드 처럼 3가지 조건
입니다.
그리고 작은 단위의 사용자가 입력한 값들을 비교하는 조건들이 들어 가게 됩니다.
if answer == '가위' :
print('비겼다!\n')
elif answer == '바위' :
print('이겼다!\n')
win = win+1
elif answer == '보' :
print('졌다!\n')
else:
print("정확한 단어를 입력해 주세요!\n")
컴퓨터가 가위니까 사용자도 가위면 당연히 게임은 무승부 겠죠?
이렇게 3가지 경우와 가위 바위 보 이외에 다른 값을 입력하게 되면 else
로 넘어가 정확한 단어를 입력해 달라고 출력 후 다시 while 반복문
으로 이동하게 됩니다.
만약 사용자가 바위를 입력 했다면 승리하게 되겠죠? 이때 승리 값이 담길 win 변수에 1를 더해 줍니다.
정리해 보자면 먼저 큰틀의 조건(컴퓨터의 값 - 가위 바위 보)을 판단하고 그 안의 사용자의 값을(가위 바위 보) 비교하여 승리와 패배를 판단하여 print() 문을 통해 화면에 알려 줍니다.
print("\n========총 대결 결과=================")
print(count,'번 승부 중', win,'번 이겼습니다!')
print("=====================================")
if win >= 5:
print("미션 클리어!")
else:
print("다시 도전해 주세요!")
마지막으로 print() 문으로 결과를 출력해 줍니다.
count
변수와 win
변수에 어떤 값이 담겨 있는지 알고 있죠?
반복문을 실행할 때 마다 증가하는 count
변수는 게임의 횟수를,
가위 바위 보 대결에서 승리할 때 마다 승리 결과 횟수를 win
변수에 보관 하였습니다.
대결에서 참여가자 5번 이상 승리 하였다면 "미션 클리어"
를
5번 미만이라면 "다시 도전해 주세요"
문구를 화면에서 보여 주게 조건문을 작성해 줍니다.