2022.05.20 python 가위바위보 게임_정리노트
오늘은 -!! 파이썬 듣다가 나는 무식하게 풀었지만, solution 을 보니까 다르게 풀었길래 ㅎ...
정리하며 if 나 정리해봅시다-!!
문제
가위바위보 게임을 해보자!
input 으로 숫자로 사용자의 가위,바위,보 값을 받는다.
0 은 바위
1 은 보
2 는 가위
가위바위보 게임 느낌을 내기 위해서 아스키코드 이모티콘 가지고 와서 사용함.
rock-paper-scissors ascii 라고 치면 다른 분들도 많이 있고, 내꺼 복사해서 써도 됨.
https://emojicombos.com/ASCII-Emoticons
요론 이모티콘 다덜 잘 만들어놨더라구 여기서 해서 좀 더 게임처럼 만들기!
먼저 나는 그냥 가위 바위 보 다...조건을 걸어서 썼다 ㅎㅁㅎ..
내가 푼 코드
import random // 랜덤으로 컴퓨터를 돌리기 위해서
//재밌는 아스키코드
rock = '''
_______
---' ____)
(_____)
(_____)
(____)
---.__(___)
'''
paper = '''
_______
---' ____)____
______)
_______)
_______)
---.__________)
'''
scissors = '''
_______
---' ____)____
______)
__________)
(____)
---.__(___)
'''
print("Hello this games")
user = input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors. ")
//리스트에 아스키코드들 가져와주기
games_list = [rock, paper, scissors]
// user input 값 정수로 변환
user = int(user)
// random 모듈을 import 해와서 0,1,2 중 랜덤으로 정수 뽑아주기
random_num = random.randint(0,2)
// games_list 에서 랜덤으로 뽑아온 정수번째의 아스키코드 보여주기
computer = games_list[random_num]
// user 가 선택한 아스키코드(모양) 보여주기 + \n으로 이쁘게 한줄씩 띄워줌
print("\nUser\n"+games_list[user])
//computer 가 랜덤으로 가져온 아스키코드(모양) 보여주기 + \n으로 이쁘게 한줄씩 띄워줌
print("\nComputer\n" + computer)
// user가 묵이라면
if user == 0:
// computer 묵이라면 비긴거니까 Draw print
if random_num == 0:
print("Draw! Let's play again")
// computer 가 보라면 user 가 진거니까 lose print
elif random_num == 1:
print("You lose...")
// computer 가 가위라면 user가 이긴거니까 win print
else:
print("You Win!")
// user 가 보라면 위의 if 문과 동일하게
elif user == 1:
if random_num == 0:
print("You Win!")
elif random_num == 1:
print("Draw! Let's play again")
else:
print("You lose...")
// 마지막!! user 가 가위라면 위의 내용과 동일하게 !
else:
if random_num == 0:
print("You lose..")
elif random_num == 1:
print("You win!")
else:
print("Draw! Let's play again")
ㅎㅎ... 무식하게도 풀었네
실행 결과 예시
이번 챌린지 조금 어렵다 해서 ?? 왜 어렵지 했던 내가 바보다.. 해결 코드를 봅시다...!
해결 코드
import random
rock = '''
_______
---' ____)
(_____)
(_____)
(____)
---.__(___)
'''
paper = '''
_______
---' ____)____
______)
_______)
_______)
---.__________)
'''
scissors = '''
_______
---' ____)____
______)
__________)
(____)
---.__(___)
'''
game_images = [rock, paper, scissors]
user_choice = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.\n"))
// 유저가 잘못 입력한 코드까지 에러처리 해주고 있다!
if user_choice >= 3 or user_choice < 0:
print("You typed an invalid number, you lose!")
// 유저가 잘못 입력하지 않으면 user의 아스키 코드(모양을) print
else:
print(game_images[user_choice])
// computer 의 random int
computer_choice = random.randint(0, 2)
print("Computer chose:")
// random 으로 반환한 코드의 아스키코드(모양) print
print(game_images[computer_choice])
// 3. 밑에서 수가 큰 것으로 비교하지 못하는 경우는 user 가 0인 경우는 큰 것으로 비교하지 못함.
// 그래서 0인 바위만 win print
if user_choice == 0 and computer_choice == 2:
print("You win!")
// 4. 마찬가지로 computer 가 0인 경우 더 큰 수는 없기에 따로 lose print
elif computer_choice == 0 and user_choice == 2:
print("You lose")
// 1. computer 가 선택한 정수가 user 가 선택한 정수보다 크면 (가위 - 보, 보 - 바위)
// lose print
elif computer_choice > user_choice:
print("You lose")
// 2. user 가 선택한 정수가 computer 가 선택한 정수보다 크면 (보 - 바위 , 가위 - 보)
elif user_choice > computer_choice:
print("You win!")
// 5. user 가 선택한 정수와 computer 가 선택한 정수가 같으면 비김 처리
elif computer_choice == user_choice:
print("It's a draw")
이렇게 대소 구분을 통해 풀었더라구..허허 if 순서와는 다르게 나혼자 이해하려고 1-5번 순으로 적었다..! 이런 흐름이었군 하면서 기본적인 잘못 입력된 값 예외 처리까지..! 정리하면 좋을 것 같아 이렇게 적어봤다 굿굿.
실행 결과 예시
간단한 포스팅만 점점 늘어나는 나의 블로그.. 우당탕탕 다시 돌아가서 당황스럽겠지만 시리즈도 아니고 내가 공부하는 거 기록하는 건데 머 어때 ㅎㅁㅎ 하면서 오늘의 포스팅 끝!
'python' 카테고리의 다른 글
2022.05.11 python 윤년 계산기 (0) | 2022.05.11 |
---|---|
2020.09.03_알고리즘_자연수 뒤집어 배열로 만들기 (0) | 2020.09.03 |
2020.09.01_알고리즘_자릿수 더하기 (0) | 2020.09.02 |
2020.08.29_알고리즘_모의고사 (0) | 2020.08.29 |
2020.08.26_알고리즘_완주하지 못한 선수 (4) | 2020.08.27 |
댓글