Chapter 01. 파이썬 설치하기
파이썬을 인터넷에서 다운로드해서 각각의 운영체제(윈도우/리눅스/맥)별로 PC에 설치하는 방법을 설명하고 있다. 또한, 인터프리터의 기본 개념과 이 책으로 공부하는 방법에 대해 알려준다.
Chapter 02. 상호대화형 셸
파이썬 개발 환경인 상호대화형 셸의 사용 방법과 파이썬 명령어를 입력하는 기본적인 방법들을 배워본다. 파이썬의 표현식과 연산자에 대해 알아보고 변수 안에 값을 저장해서 프로그래밍하는 방법을 설명한다.
Chapter 03. 문자열
변수에 텍스트를 어떻게 저장하고 서로 어떻게 연결시키는지, 화면에서 텍스트를 어떻게 보여주는지 등 파이ㅆ?ㄴ에서 텍스트를 이용하는 방법들에 대해 살펴본다. 그리고 독자들이 직접 만들어보는 첫 번째 프로그램인 “Hello World!”를 배워본다.
Chapter 04. 숫자 알아맞히기 게임
컴퓨터가 1부터 20까지의 숫자 중 무작위로 하나의 숫자를 선택하고 플레이어에게 그 숫자가 무엇인지를 알아맞히게 하는 게임을 만든다. 이 게임을 통해 무작위 수와 반복문, 사용자의 입력 방식에 대해 배울 수 있다. 또 이 게임을 만들면서 자료형 변환에 대해서도 배우게 된다.
Chapter 05. 조크
조크라는 게임을 만들면서 print(), input() 함수를 배운다. 키보드로 입력하기 어려운 문자를 쓰기 위한 확장 문자 사용 방법과 화면에 문자열을 원하는 형식으로 보여주는 방법에 대해 설명하고 있다.
Chapter 06. 드래곤 왕국
드래곤 왕국 게임에서는 함수에 대해 집중적으로 다루고 있다. 수를 만드는 방법, 함수 호출, 그에 따른 반환값이란 무엇인지 알아보고 변수 영역에서의 지역 변수와 전역 변수에 대해 설명한다.
Chapter 07. 디버거 사용하기
프로그램을 작성할 때 개발자들을 제일 곤혹스럽게 만드는 버그에 대해 알아본다. 프로그램을 작성한 다음에는 디버거를 사용해서 코드가 정말로 잘 작동하는지 확인하는 작업까지 살펴본다.
Chapter 08. 플로우 차트
게임을 직접 디자인해 보면서 복잡한 프로그램을 만들 때 필요한 플로우 차트를 그려보고 프로그램 기획과 설계 방법을 배워본다. 플로우 차트를 어떤식으로 만드는지 단계별로 설명하고 있어 확실히 이해할 수 있다.
Chapter 09. 행맨
본격적으로 게임 개발에 들어가는 챕터로, 메소드와 함수의 차이에 대해 배워보고 for문의 직접적인 활용 방법, range() 함수를 이용한 for문에 대해 설명한다. 그밖에도 else-if문과 딕셔너리에 대해 설명한다.
Chapter 10. 틱택토
이 챕터에서는 지금까지 나왔던 개념을 가지고 틱택토 게임의 인공지능을 만든다. 여기서 플레이어는 간단한 인공지능과 게임을 하게 되는데 틱택토의 인공지능을 단 몇 줄의 코드만으로도 쉽게 만들 수 있음을 보여준다.
Chapter 11. 베이글
베이글 게임은 상대가 3자리 숫자를 생각하면 또 다른 상대가 그 숫자를 맞히는 게임이다. 베이글 게임을 통해 파이썬의 새로운 메소드와 함수에 대해 알아보고 증가 대입 연산자와 문자열 삽입에 대해 배운다.
Chapter 12. 카르테시안 좌표계
게임에 많이 사용하는 수학적 개념에 대해 설명한다. 주로 2차원 게임 개발에 꼭 필요한 카르테시안 좌표계에 대해 알아보고 더불어 음수를 어떻게 다루는지도 설명한다. 또한, 음수와 양수를 더하고 뺄 때 유용한 트릭에 대해서도 배워본다.
Chapter 13. 음파탐지기
음파탐지기는 바다 아래에 가라앉은 보물을 찾아내는 게임으로 보물상자가 현재 위치에서 얼마나 멀리 떨어져있는지를 알아내서 최종적으로 보물상자의 정확한 위치를 파악하는 게임이다. 이 게임을 통해 remove() 리스트 메소드와 isdigit() 문자열 메소드에 대해 설명하고, 카르테시안 좌표계를 직접 게임에 적용하는 방법을 익힌다. 그리고 마지막으로 데이터 구조에 대해 설명한다.
Chapter 14. 시저 암호
시저 암호를 통해 메시지를 암호화하고 다시 해독하는 방법을 배운다. 프로그래밍에 있어서 처리하고자 하는 정보를 어떻게 숫자로 표현할지에 대해 주의 깊게 생각해야 한다. 이 챕터에서는 특히 정보를 숫자로 표현하는 방법을 강조해서 설명한다. 숫자뿐만 아니라 문자열로 어떻게 수학을 하는지도 알려준다.
Chapter 15. 리버시
리버시는 격자상에서 수행하는 보드 게임이다. 따라서 음파탐지기 게임처럼 XY 좌표가 있는 카르테시안 좌표계를 사용한다. 틱택토 게임에서 만들었던 것보다 훨씬 더 발전된 인공지능을 만들 수 있다. 또 리버시를 통해서 ASCII 아트로 얼마나 많은 일을 할 수 있는지 보여준다.
Chapter 16. 인공지능 시뮬레이션
리버시의 여러 가지 전략에 대해 모델을 만들고 컴퓨터로 리버시 게임을 시뮬레이션해본다. 리버시에서 이길 확률이 높은 수가 무엇인지 알아보거나, 시뮬레이션을 통해 훌륭한 전략을 결정하는 방법에 대해 설명한다.
Chapter 17. 그래픽과 애니메이션
이 챕터에서는 Pygame 라이브러리를 써서 좀 더 발전된 그래픽과 사운드가 있는 게임을 만들어 본다. 그래픽과 애니메이션, 충돌 감지와 입력, 사운드와 이미지에서는 Pygame 라이브러리를 써서 그래픽, 애니메이션, 마우스 입력, 사운드가 있는 게임을 만들고 Pygame의 기능을 보여주는 간단한 데모 프로그램도 만들어본다.
Chapter 18. 충돌감지와 입력
대부분의 그래픽 게임에서 충돌 감지를 사용한다. 충돌 감지는 화면상의 두 물건이 서로 충돌했는지 알아내는 방법으로 컴퓨터 게임에서 많이 사용한다. 이 챕터에서는 충돌 감지를 이용해 두 개의 사각형이 서로 충돌하는지를 알아낸다. 챕터 후반부에서는 Pygame 프로그램이 사용자로부터 키보드나 마우스로 입력을 받아들일 수 있는지도 살펴본다.
Chapter 19. 사운드와 이미지
그림과 이미지(스프라이트)를 보여주고 사운드를 울리도록 하는 방법에 대해 설명한다. Pygame에서 소리를 재생하고 이미지를 그리는 방법에 대해 상세하게 알려주기 때문에 GUI 윈도우를 만들 수 있고, 이미지와 기본 도형을 보여주는 수준까지 끌어올릴 수 있게 된다.
Chapter 20. 도저
앞에서 배운 모든 내용을 종합해서 그래픽과 사운드가 있는 도저 게임을 만들어 본다. 이 게임은 키보드와 마우스로 캐릭터를 조종해서 화면 위쪽에서 떨어지는 악당들을 오랫동안 피할수록 점수가 높아지는 게임이다.
부록
부록에서는 파이썬 버전 2와 버전 3의 차이점, 구문, 함수, 메소드 레퍼런스, 파이썬을 설치하지 않고 파이썬 프로그램을 수행하는 방법, 파이썬에서 흔히 보는 에러 메시지에 대해 알아본다.