본문 바로가기

Studying/Python

(25)
17. miniProject(8) - 뱀 게임 1 (feat. turtle) 이번엔 좀 여러 단계를 거쳐야하는 프로젝트를 해보도록 하자. 지렁이 키우기라는 게임으로 우리에게 더 익숙한 종류의 게임을 만들어 볼것이다. 화면에 랜덤으로 노란색 먹이가 나타날 것이다. 몸길이가 20x20 정사각형 3개로 시작하는 뱀은 키보드에 맞게 화면을 돌아다니다 먹이를 먹으면 길이가 1개 추가된다. 뱀은 화면의 각 모서리에 머리를 부딪히면 죽는다. 또 몸길이가 너무 길어졌을 떄, 머리가 자신의 몸통과 부딪혀도 죽는다. 화면의 상단에는 현재 스코어와 최고 스코어가 표현될 것이고 최고 스코어는 data.txt 파일로 관리할 것이다. 뱀이 죽을 경우 자동으로 게임은 초기화, 재시작된다. 파일은 게임진행관련하여 main.py, 먹이가 랜덤으로 화면에 나타날 food.py, 점수판을 관리하는 socreboa..
16. miniProject(7) - 거북이 경주 게임 (feat. turtle) 이번엔 turtle graphics를 이용해서 6개의 거북이를 만들어 경주 게임을 만들어보자. turtle graphics의 Screen을 사욯하여 창을 띄운 후, turtle 거북이 모양으로 색을 각각 다르게 하여 6개를 화면에 띄운다. 그 후 , 어떤 색의 거북이가 우승할 지 입력을 받아 이를 나중 결과와 비교할 것이다. 각각의 거북이들은 랜덤의 속도로 이동할 것이며 화면 기준 왼쪽에서 출발하고 오른쪽으로 달린다. 오른쪽에 도달하면 게임이 끝나고 결과창을 콘솔에 출력하며 마무리 할 것이다. 그렇다면 코드를 작성해보자. 먼저 기본세팅부터 해보자. 먼저 turtle graphics에서 Turtle과 Screen을 import 한다. screen에 Screen을 할당하고 setup 메소드를 사용하여 가로 ..
15. miniProject(6) - hirst spot drawing (feat. turtle) 이번 글부터 자주 사용할 module 중 하나가 turtle 이다. turtle module 중 Turtle, Screen 클래스는 거북이가 그림을 그리는 그래픽 창을 정의한다. 쉽게 설명하면 간단한 그래픽을 그리는 명령을 거북이가 시뮬레이션하는 창을 띄우는 모듈이라고 이해하면 좋다. turtle에 대한 자세한 설명은 공식문서를 참고해보자. https://docs.python.org/3/library/turtle.html turtle — Turtle graphics — Python 3.10.5 documentation turtle — Turtle graphics Source code: Lib/turtle.py Introduction Turtle graphics is a popular way for int..
14. miniProject(5) - Quiz 프로그램 이번엔 일련의 참, 거짓 퀴즈를 풀고 정답인지 아닌지 나타내는 프로그램을 작성해보기로 하자. 이번엔 파일을 4개로 구분해서 진행하자. 먼저 quiz 내용을 저장해놓을 data.py을 만든다. data.py에는 우리가 main.py에서 다룰 question_data 라는 list가 여러 dict 형태로 중첩되어 있다. 여기서 text에 해당하는 value값으로 질문을, answer에 해당하는 value 값으로 답변을 가져올 것이다. 그 다음은 question_model.py 을 만들 것이다. 이 question_model.py에서는 data.py에서 text와 answer을 가져와 질문 형식을 만들어준다. 이제 실제 게임이 진행되는 과정을 다룬 quiz_brain.py를 만들어줄 것이다. QuizBrain..
13. miniProject(4) - 커피 자판기 이번에는 커피 자판기와 유사한 프로그램을 한번 만들어보자. 메뉴판(MENU)에는 "espresso, latte, cappuccino" 이렇게 3개의 메뉴가 준비되어 있다. 각 메뉴는 "water, milk, coffee" 이렇게 3개의 재료로 구성될 것이다. 콘솔 창에서 실행했을 떄, 우리에게 "espresso, latte, cappuccino" 중 어떤 메뉴를 선택할 것인지 물어볼 것이고, 그에 따라 우리는 5000원, 1000원, 500원, 100원 을 각각 몇개 투입할 것인지 입력할 것이다. 돈이 부족하면 그대로 거슬러 줄 것이고, 돈이 충분하면 계산해서 잔돈을 돌려줄 것이다. 그럼 단위별로 만들어보자. 먼저 메뉴는 이렇게 구성해놓자. MENU는 여러 dictionary가 중첩되어 있는 형태로 구성..
12. miniProject(3) - Higher or Lower 게임 이번에는 무작위로 나타나는 보기 A와 B 의 인스타 팔로워 수를 비교하여 높은 것을 골라 점수를 쌓는 게임을 만들어볼 것이다. 더 많은 팔로워 수를 보유한 보기를 선택하면, 기존 A와 B 항목 중 B 항목이 자동으로 새로운 A가 되고, 무작위로 뽑힌 새로운 항목이 B가 되어 게임이 반복 진행되게 된다. 큰 구상을 먼저 해보자. 가장 먼저 random으로 항목을 가져올 list로 구성된 data 파일이 준비되어야한다. 이 list는 수많은 dictionary로 구성될 것이며, key 값으로 'name', 'follower_count', 'description', 'country'가 설정될 것이다. 그 다음, (1) 랜덤으로 보기 A와 B를 뽑을 함수, (2) 랜덤으로 뽑힌 보기의 format을 설정할 함수..
11. miniProject(2) - 랜덤 숫자 맞추기 게임 이번엔 랜덤으로 설정된 숫자를 맞추는 작은 게임을 만들어보려한다. easy와 difficult로 난이도를 구분하여 각각 5, 10회의 기회가 있게끔 설정할 것이고, 정답 숫자는 1과 100사이에서 random으로 설정할 것이다. 큰 구조를 설정해보자. 정답과 추측을 비교하고 남은 시도를 차감하는 함수 하나, 플레이어가 난이도를 설정하는 함수 하나, 실제로 게임이 진행되는 함수 하나 이렇게 총 3개로 설계해보도록 하자. 먼저 난이도를 설정하는 함수이다. 전역변수로 easyLevelTurns와 hardLevelTurns를 각각 10과 5로 설정했다. 그리고 setDifficulty 함수를 선언하여 입력받은 level에 따라 return 값을 달리한다. 이제 추측값과 정답을 비교하고 이에 따른 남은 시도값을 ..
10. miniProject(1) - 블랙잭 게임 티스토리에 python 관련 개념정리를 하다가 django에 대해 공부를 하면서 티스토리 정리에 소홀했었다. django강의가 어느정도 정리가 되어서 이제는 python 과 django를 병행하며 주기적으로 게시물을 올리려 한다. 화이팅!!! 이번 글은 파이썬 코드를 이용하여 블랙잭 게임을 작성해보는 것이다. 블랙잭 게임에서는 각각 카드의 숫자가 점수를 나타내며, Ace 카드는 1 또는 11을, J, Q, K은 모두 10을 나타낸다. 블랙잭 게임 시작할 때, 2개의 카드를 플레이어와 컴퓨터가 랜덤으로 받게 되고 컴퓨터의 카드는 첫번째 카드만 공개한다. 2개의 카드 합산 점수를 확인하고 한 장의 카드를 더 받을지 말지 결정한다. 게임에서 승리하려면, 1) 처음 내가 받은 2개의 카드 점수 합이 21이 되거..