Created
April 2, 2020 07:18
-
-
Save hwahyang1/ba731279aa4baf80e200993bc023d475 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 별도의 모듈 설치가 필요 없습니다. 아래처럼 random 모듈만 불러 와 주시면 됩니다. | |
import random | |
# 구현하는 방법은 많은데, 일단 조금 보기 쉬운 방법으로 구문을 작성하겠습니다. | |
# 보통은 if message.content == "가위": if message.content == "바위": 같이 if를 다 따로 짜지만, | |
# 이번에는 입력한 명령어가 "가위", "바위", "보" 셋 중에 하나라면 반응하도록 if문을 작성 하겠습니다. | |
if message.content == "가위" or message.content == "바위" or message.content == "보": | |
# 그리고 나서, 다른 구문을 먼저 짜기 전에, 봇이 무엇을 낼지 정하겠습니다. | |
# 가위/바위/보 총 3가지 경우의 수가 있으니, 1부터 3까지 수 중에서 아무거나 뽑아서 bot_response 라는 변수에 담아보겠습니다. | |
bot_response = random.randint(1, 3) | |
# if 구문으로 경우의 수를 잡아줍시다. | |
# bot_response는 문자열이 아닌, 정수로 저장되기 때문에 if문으로 값을 비교 할 때 양옆에 따옴표나 str()을 안해주셔도 됩니다. | |
# 여담으로, 정수끼리는 <, >을 사용해서 대소비교도 가능합니다. | |
# 여기서부터는 흔히 말하는 '하드코딩'을 진행합니다. | |
# 경우의 수가 9개밖에 되지 않기 때문이기도 하고 마땅한 구문도 없어서 하드코딩으로 진행합니다 | |
if bot_response == 1: # 봇이 가위를 낸 경우, | |
if message.content == "가위": # 가위 vs 가위이기 때문에 비겼습니다. | |
await message.channel.send("비겼습니다") | |
elif message.content == "바위": # 바위 vs 가위이기 때문에 유저가 이겼습니다. | |
# elif는 타 언어에서의 else if와 같은 역할을 합니다. | |
# 물론, if를 도배하셔도 되는데, 여기서는 elif 사용하겠습니다. | |
await message.channel.send("제가 졌습니다") | |
else: # 두개 다 아니면 보자기 vs 가위일겁니다. | |
await message.channel.send("제가 이겼습니다") | |
# 이 아래부터는 같은 내용의 반복이기 때문에 주석만 간단하게 달아놓겠습니다. | |
elif bot_response == 2: # 봇이 바위를 낸 경우, | |
if message.content == "가위": # 가위 vs 바위 | |
await message.channel.send("제가 이겼습니다") | |
elif message.content == "바위": # 바위 vs 바위 | |
await message.channel.send("비겼습니다") | |
else: # 보자기 vs 바위 | |
await message.channel.send("제가 졌습니다") | |
else: # 가위도 바위도 아니면 보자기를 냈다고 볼 수 있습니다. | |
# 물론, 여기까지 elif 쓰시고 만약을 대비해서 세개도 아니고 엉뚱한 숫자를 선택했을 경우를 대비하셔도 되나, | |
# 왠만해선 그럴 일 없습니다. | |
if message.content == "가위": # 가위 vs 보자기 | |
await message.channel.send("제가 졌습니다") | |
elif message.content == "바위": # 바위 vs 보자기 | |
await message.channel.send("제가 이겼습니다") | |
else: # 보자기 vs 보자기 | |
await message.channel.send("비겼습니다") | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment