전체 글 1090

[테트리스] 7. 게임 필드 표현하기

▶ 미션 _ 완성해야 할 함수 1. FIELD = [] pygame.draw.rect array.insert(i,x) 2. set_game_field() 3. draw_game_field() 책의 가이드를 따라, 하나씩 미션을 수행해봅시다. set_game_field()에서 전체적인 맵 값을 입력하고, draw_game_field()에서 입력한 필드값을 출력해보겠습니다. 1. FIELD = [] 우선, 일단 정보가 없어서 좀 막막하긴 한데... 일단은 pygame 라이브러리 설명서 좀 읽어보기로 했다. 여기서는 pygame.draw.rect를 사용한다고 하니 한번 찾아보자. ▷ pygame.draw.rect https://www.pygame.org/docs/ref/draw.html#pygame.draw...

[테트리스] 6. 스켈레톤 코드 분석해보기

▶ 전체코드 """ tetris.py - Copyright 2016 Kenichiro Tanaka """ import sys from math import sqrt from random import randint import pygame # 전역 변수 pygame.init() smallfont = pygame.font.SysFont(None, 36) largefont = pygame.font.SysFont(None, 72) BLACK = (0,0,0) pygame.key.set_repeat(30, 30) # 전체 게임판의 사이즈를 의미하는 SCREEN_WIDTH와 SCREEN_HEIGHT SCREEN_WIDTH = 600 SCREEN_HEIGHT = 600 screen = pygame.display.se..

[테트리스] 5. 스켈레톤 코드 다운 및 실행

테트리스는 「게임으로 배우는 파이썬」에서 제공된 기본 소스코드에 추가하는 방식으로 개발해보도록 하겠습니다. 1. 소스코드 파일 다운받기 더보기 """ tetris.py - Copyright 2016 Kenichiro Tanaka """ import sys from math import sqrt from random import randint import pygame # 전역 변수 pygame.init() smallfont = pygame.font.SysFont(None, 36) largefont = pygame.font.SysFont(None, 72) BLACK = (0,0,0) pygame.key.set_repeat(30, 30) SCREEN_WIDTH = 600 SCREEN_HEIGHT = 600 s..

[테트리스] 3. 게임 설계

그러면 우선 내가 테트리스 게임을 어떻게 어디까지 구현을 할 것인가를 정해야합니다. 저는 크게 5가지 단계를 표현해보도록 하겠습니다. 1. 블록과 맵 표현하기 2. 시간이 지남에 따라 블록이 아래로 내려오는 것 구현 3. 방향키 ← → 를 누르면 블록이 좌우로 움직이게 하는 것 4. 화살표 ↑ 를 누르면 블록 모양이 바뀌도록 설정해주기 5. 맨 아래 블록이 꽉차면, 라인이 사라지고 점수 업그레이드 복잡한 기능은 나중에 하나씩 추가하기로 하고, 일단 1인용 싱글플레이 1단계까지만 해보도록 할게요

[테트리스] 2. 게임 예시 (다른 사람 코드 구경하기)

Git hub에는 많은 오픈 소스코드가 있다. 그래서 이 소스코드들을 잘 활용하는 것도 중요하다. 나는 예전에는 아무것도 없는 상태에서 내가 전부 창조해야겠다고 생각을 했었는데, 그렇게 하니까 걱정과 부담만 늘어나고 아무것도 되지 않더라. 특히 프로그래밍 분야에 있어서는 다른 사람이 만든 라이브러리나 모듈, 코드들을 잘 갖다가 쓰는게 중요하다고 한다. 내 주변에는 정말 뛰어난 사람들이 많다. 이름만 대면 알만한 대학에서 석박사를 하는 사람이 주변에 널렸고 (심지어 편의점에서 만나는 사람도 박사님이라는) 대학생 때 SCI급 논문을 쓰는 사람도 있고, 자신만의 게임을 개발해서 펀드도 받고 스팀에 출시하고 회사랑 계약한 친구도 있다. 이번에 포공 석사에 들어간 친구에게, "어떻게 잘해?"라고 물어봤을 때, 자..

[테트리스] 1. 개발 환경 준비하기

개발 환경에 있어서, 인텔리제이나 파이참을 쓰는 것이 좋지만 (특히 알고리즘에서 재귀함수 같은거 다룰 때 디버깅 하려면 파이참이 편하니까) 나는 개인적으로 연습할 때는 주피터 노트북을 좋아하는 편이라 (부분부분 나눠서 할 수 있으니까) 여기서도 한번 주피터를 써보려고 한다. 1. 우선 아나콘다를 설치해야한다. 아나콘다는 라이브러리들을 쉽게 설치하고 관리할 수 있게 도와주는 도구인데, 아나콘다를 설치하면 주피터 노트북에 쉽게 들어갈 수 있다. https://www.anaconda.com/download Free Download | Anaconda Anaconda's open-source Distribution is the easiest way to perform Python/R data science an..

[테트리스] 0. 동기

「테트리스 게임 만들기」는 내가 대학교 1학년 당시 전산동아리 WING으로 활동할 때, 나를 가르쳐주셨던 멘토선배가 내준 과제였다. 사실 당시에는 내가 C언어 기초문법도 모르는 상태에서 대학에 들어간 거라 허덕거리고 있었는데, 선배가 며칠 지켜보더니 안되겠다 싶었는지 설계부터 구현까지 떠먹여주듯 가르쳐주셨다. 당시 화이트 보드에 블록 하나하나를 그리고, 어떤 프로세스로 진행할 것인지 순서대로 정리했던 것이 기억난다. 그래서 감사하기도 하고, 나에게는 추억이 많이 남아있는 과제이다. 이 때는 깃허브도 모르고, 소스코드를 저장해야겠다는 개념도 없었어서 그냥 슉~ 지나가버렸는데, 그때 배웠던 것을 다시 기억하고 복습하고 싶어서 다시 만들어보기로 했다. 물론 맨 땅에 헤딩을 할 수는 없으니까, 다른 소스코드를 ..