티스토리 뷰
반응형
4일차 강의 요약
어쩌다보니 4강도 재밌게 완수했다 ㅎㅎㅎ 4일차 강의에서는 파이썬의 무작위화(randomization)화 개념과 리스트를 활용하여 데이터를 담는 연습을 중점적으로 배웠다. 주사위를 던지거나 가위바위보 내기를 할 때 어떤 수가 나올지 예측 불허의 상황을 만나게 되는데 파이썬에서는 random 모듈을 활용하면 이러한 무작위적인(=랜덤한) 상황을 코드로 표현해낼수 있다.
또한 랜덤한 경우의 수를 리스트(List)라는 형식에 담아 뽑아 쓸 수 있는데, 이 리스트는 중첩하여 사용할 수도 있고('Nested List') 리스트 안에 자료를 추가(append)하거나 제거할 수도 있다.
프로젝트: 가위바위보 게임 만들기
겉보기엔 아주 단순한 게임이고, 누군가는 매우 단순한 코드라 할 수 있지만 나에게는 매우 난이도 있었던 과제였다 ㅎㅎㅎ
쉽게 설명하면 나와 컴퓨터가 가위바위보를 하는 것인데, 나(사용자)의 선택은 제어 가능하지만 컴퓨터가 가위바위보중 뭘 낼지는 랜덤하게 정해져야 한다. 따라서 랜덤 함수가 쓰여야 하고, 내가 낸 값과 컴퓨터가 낸 값을 비교하여 누가 승자인지도 가리는 문구 또한 출력해야 하는게 이번 과제의 핵심이었다.
1. 내가 쓴 코드
(중간에 수정을 한번 해서, 완벽하게 비교해서 보긴 어렵다.)
import random
#Write your code below this line 👇
choice = [rock, paper, scissors]
my_choice = int(input("Type 0 for Rock, 1 for Paper or 2 for Scissors\n"))
if my_choice >= 3 or my_choice <0:
print("You typed an invalid number, you lose!")
else:
print(choice[my_choice])
computer_choice= random.randint(0,2)
print("Computer chose: ")
print(choice[computer_choice])
if my_choice == 2 and computer_choice == 1:
print("You win!")
elif my_choice ==0 and computer_choice ==2:
print("You win!")
elif my_choice == 1 and computer_choice ==0:
print("You win!")
elif computer_choice == 2 and my_choice == 1:
print("You lose!")
elif computer_choice ==0 and my_choice ==2:
print("You lose!")
elif computer_choice == 1 and my_choice ==0:
print("You lose!")
elif my_choice == computer_choice:
print("Try again.")
2. 안젤라 선생님 코드
import random
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"))
print(game_images[user_choice])
computer_choice = random.randint(0, 2)
print("Computer chose:")
print(game_images[computer_choice])
if user_choice >= 3 or user_choice < 0:
print("You typed an invalid number, you lose!")
elif user_choice == 0 and computer_choice == 2:
print("You win!")
elif computer_choice == 0 and user_choice == 2:
print("You lose")
elif computer_choice > user_choice:
print("You lose")
elif user_choice > computer_choice:
print("You win!")
elif computer_choice == user_choice:
print("It's a draw")
결론
- 예상했던 범위(0, 1, 2 중 입력)가 아니라, 의도하지 않은 값(3 이상의 아무 값)을 사용자가 넣는 경우에 대해서도 에러로 정의해주면 더 좋다. 모든 경우의 수에 대비하게끔 출력이 된다면 좀 더 프로페셔널 해보일 수 있다.
- 오늘 배운 가위바위보 게임은 사용자가 값을 입력하면 바로 결과가 리턴되면서 끝이 나는데, 만약 사용자와 컴퓨터가 비긴 게임이어서 다시 한번더 진행해야 한다면? 이것을 코드로 구현하려면 아마 반복문을 이용해야 겠지? 라는 생각까지만 함 (5강에서 배울 예정)
- 점점 어렵다. 일단 시작점을 정하는 일이 제일 어렵고, 여기서부터 조건에 다다르기까지의 과정을 코드로 작성해나가는 과정이 점점 복잡해지고 있는 듯 하다. 그치만 아직 재밌으므로 시간이 더 걸리더라도 끝까지 해보련다ㅎㅎㅎ
'study' 카테고리의 다른 글
[파이썬] 6강 for문, while문 용도에 맞게 사용하기 (들여쓰기 중요) (1) | 2024.03.23 |
---|---|
[파이썬] 5강 반복문 (for 반복문, range() 함수) _ 코드비교 (0) | 2024.03.20 |
[파이썬] 3강 논리 연산자_코드 비교 (2) | 2024.03.16 |
[파이썬] 2강 팁계산기 만들기 _ 코드 비교 (0) | 2024.03.12 |
Q-learning on a windy frozen lake! (0) | 2023.10.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 아야진해변
- 파이썬for문
- 유데미파이썬강의
- higher lower game
- 숫자업다운게임
- 파이썬 게임 만들기
- 안젤라유강의
- 복합과거
- 선형대수
- higherlower게임
- 파이썬 안젤라유 강의
- 아야진
- 파이썬강의소개
- 파이썬전역범위
- 파이썬thonny
- 큐러닝
- 안젤라유파이썬
- 벡터
- 프랑스어문법
- qlearning
- 파이썬안젤라유강의
- 파이썬디버거
- 파이썬초급강의
- 파이썬디버깅
- 파이썬반복문
- 고성
- 불어문법
- 파이썬 초급강의
- 반과거
- 파이썬안젤라유
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함