나만의 Python Game 만들기
도서명:나만의 Python Game 만들기
저자/출판사:알,슈베이가르트/정보문화사
쪽수:520쪽
출판일:2014-06-26
ISBN:9788956746166
목차
저자의 글
책에 관하여
CHAPTER 01 파이썬 설치하기
파이썬 다운로드와 설치
윈도우용 설치
Mac OS X용
우분투와 리눅스용 설치
파이썬 시작하기
이 책의 사용법
예제 프로그램들
라인 번호와 스페이스
텍스트줄 바꿈 표기
온라인에서 따라하기
온라인에서 코드 검사하기
요약
CHAPTER 02 상호대화형 셸
간단한 수학 계산
정수와 부동소수점 수
표현식
표현식 평가
표현식 안에 또 다른 표현식을 포함하기
변수에 값 저장하기
한 개 이상의 변수 사용하기
변수 덮어쓰기
요약
CHAPTER 03 문자열
문자열
문자열 연결
IDLE 파일 에디터에서 프로그램 만들기
‘Hello World!’
hello.py
프로그램 저장하기
저장한 프로그램 열기
‘Hello World’ 프로그램 동작 원리
주석
함수
print() 함수
input() 함수
프로그램 종료하기
변수 이름
요약
CHAPTER 04 숫자 알아맞히기 게임
숫자 알아맞히기 게임
숫자 알아맞히기 게임 실행 예제 맛보기
숫자 알아맞히기 게임 소스 코드
import문
random.randint() 함수
모듈 안에 있는 함수 호출
함수에게 인자 넘겨주기
환영 인사
반복문
블록
불리언 자료형
비교 연산자
조건식
불리언, 비교 연산자, 조건식 연습
while문으로 반복문 만들기
플레이어가 추측한 숫자 입력
int() 함수를 이용해 문자열을 정수로 변환하기
변숫값 증가시키기
if문
Break문으로 반복문을 일찍 빠져나가기
플레이어가 이겼는지 검사하기
플레이어가 졌는지 검사하기
요약
프로그램을 따라가 볼 수 있는 웹사이트
CHAPTER 05 조크
print() 더 깊이 이해하기
조크 게임 실행 예제 맛보기
조크 게임의 소스 코드
코드가 어떻게 작동하는가?
확장 문자
다른 확장 문자들
작은따옴표와 큰따옴표
end 키워드 인자
요약
CHAPTER 06 드래곤 왕국
함수 소개
드래곤 왕국 게임하는 방법
드래곤 왕국 게임 실행 예제 맛보기
드래곤 왕국 소스 코드
코드가 어떻게 작동하는가?
displayIntro() 함수 정의하기
def문
chooseCave() 함수 정의하기
불리언 연산자
불리언 연산자가 있는 표현식 평가하기
and와 or 연산자 테스트
not 연산자 테스트
진리표
플레이어의 입력 받기
반환값
변수 영역
전역 영역과 지역 영역
checkCave() 함수 정의하기
파라미터
함수 정의 부분을 어디에 둘 것인가?
게임 결과 보여주기
어떤 동굴에 친절한 용이 있는지 결정하기
콜론(:)
프로그램이 실제 시작되는 곳
프로그램에서 함수 호출하기
플레이어에게 게임을 또 할 것인지 물어보기
프로그램 디자인하기
요약
CHAPTER 07 디버거 사용하기
버그
디버거
디버거 시작하기
스테핑
Go와 Quit 버튼
Step In, Over 그리고 Out
버그 찾아내기
브레이크 포인트
브레이크 포인트 사용 예제
요약
CHAPTER 08 플로우 차트
행맨 게임 방법
행맨 게임 실행 예제 맛보기
ASCII 아트
플로우 차트로 프로그램 디자인하기
플로우 차트 만들기
플로우 차트 박스에서 가지치기
게임을 끝내거나 다시 시작하기
다시 추측하기
플레이어에게 피드백 주기
요약
CHAPTER 09 행맨
행맨의 소스 코드
코드가 어떻게 작동하는가
다중 라인 문자열
상수
리스트
리스트 아이템의 값을 인덱스 대입으로 바꾸기
리스트 결합
in 연산자
del로 리스트의 아이템 지우기
리스트의 리스트
메소드
lower()와 upper() 문자열 메소드
reverse()와 append() 리스트 메소드
메소드와 함수의 차이
split() 리스트 메소드
코드가 어떻게 작동하는가?
플레이어에게 게임판 보여주기
range()와 list() 함수
for문
슬라이스와 슬라이스하기
빈칸으로 비밀 단어 보여주기
맞게 추측한 단어로 _ (언더스코어) 바꾸기
플레이어의 추측 얻어내기
elif(‘Else If’)문
플레이어가 유효한 추측을 입력했는지 확인하기
플레이어에게 또 게임을 할 것인지 물어보기
지금까지 정의한 함수 다시 보기
행맨의 주요 코드
변수 설정하기
플레이어에게 게임판 보여주기
행맨 프로그램을 바꾸기
딕셔너리
len()으로 딕셔너리의 크기 알아내기
딕셔너리와 리스트의 차이점
행맨의 단어 세트
andom.choice() 함수
리스트의 딕셔너리를 평가하기
다중 대입
플레이어에게 단어 종류를 알려주기
요약
CHAPTER 10 틱택토
틱택토 게임 실행 예제
틱택토의 소스 코드
프로그램 디자인
보드를 데이터로 표현하기
게임의 인공지능
코드 해설 : 첫 번째~81번째 줄
보드에 마크 표시하기
리스트 레퍼런스
makeMove()에서 리스트 레퍼런스 사용하기
플레이어가 이겼는지 검사하기
보드 데이터 복사하기
보드의 공간이 비었는지 확인하기
플레이어가 글자마크를 놓도록 하기
건너뛰기 평가
건너뛰기 평가의 예
코드 해설 : 83~94번째 줄
None 값
코드 해설 : 96~187번째 줄
요약
CHAPTER 11 베이글
실행 예제 맛보기
베이글의 소스 코드
프로그램 디자인하기
코드 해설 : 첫 번째~아홉 번째 줄
유일한 숫자들 섞기
random.shuffle() 함수
섞인 숫자에서 비밀번호 얻어내기
증가 대입 연산자
코드 해설 : 11~24번째 줄
sort() 리스트 메소드
join() 문자열 메소드
코드 해설 : 29~53번째 줄
문자열 삽입
코드 해설 : 55~76번째 줄
요약
CHAPTER 12 카르테시****좌표계
격자와 카르테시****좌표계
음수
수학적 트릭
절대값과 abs() 함수
컴퓨터 모니터에서 카르테시****좌표계
요약
CHAPTER 13 음파탐지기
수행 예제
음파 탐지기의 소스 코드
프로그램 디자인
코드 해설 : 첫 번째~38번째 줄
게임 보드 그리기
윗 부분에 X좌표 표시하기
바다를 표현하는 가로 행 그리기
아랫부분에 X좌표 표시하기
바다에서 가로 행의 상태 알아내기
코드 해설 : 40~62번째 줄
새 게임 보드 만들기
임의로 보물상자 만들기
움직임이 유효한지 검사하기
코드 해설 : 64~91번째 줄
가장 가까운 보물상자를 찾아내는 알고리즘
remove() 리스트 메소드
코드 해설 : 94~162번째 줄
플레이어의 움직임 얻어내기
게임을 또 할 것인지 물어보기
플레이어에게 게임 방법 보여주기
코드 해설 : 165~217번째 줄
요약
CHAPTER 14 시저 암호
암호학이란?
시저 암호
ASCII와 글자를 숫자로 대신하기
chr()과 ord() 함수
시저 암호의 실행 예제 맛보기
시저 암호의 소스 코드
코드 해설 : 첫 번째~34번째 줄
isalpha() 문자열 메소드
isupper()와 islower() 문자열 메소드
코드 해설 : 36~57번째 줄
요약
CHAPTER 15 리버시
수행 예제
리버시의 소스 코드
코드 해설
게임 보드 재설정하기
뒤집을 타일이 있는지 알아내기
유효한 좌표인지 확인하기
bool() 함수
drawBoard() 함수 바꾸기
요약
CHAPTER 16 인공지능 시뮬레이션
컴퓨터끼리 싸우도록 하기
AISim1.py 코드 해설
AISim2.py 코드 해설
백분율
나누기 결과는 실수가 된다
round() 함수
통계 보여주기
서로 다른 인공지능 알고리즘 비교하기
AISim3.py 코드 해설
요약
CHAPTER 17 그래픽과 애니메이션
Pygame 설치하기
Pygame으로 ‘Hello World’ 만들기
‘Hello World’ 소스 코드
‘Hello World’ 프로그램 수행하기
Pygame의 색깔
폰트와 pygame.font.SysFont() 함수
Font 객체의 render() 메소드
특성
생성자 함수와 type() 함수
Surface 객체의 fill() 메소드
pygame.draw.polygon() 함수
pygame.draw.line() 함수
pygame.draw.circle() 함수
pygame.draw.ellipse() 함수
pygame.draw.rect() 함수
pygame.PixelArray 데이터 타입
Surface 객체의 blit() 메소드
pygame.display.update() 함수
이벤트와 게임 루프
pygame.event.get() 함수
pygame.quit() 함수
애니메이션
애니메이션 프로그램의 소스 코드
애니메이션 프로그램 코드 해설
게임 루프 수행하기
몇몇 사항 변경하기
요약
CHAPTER 18 충돌 감지와 입력
충돌 감지 프로그램의 소스 코드
충돌 감지 함수
점이 사각형 안에 있는지 결정하기
화면에 돌아다니는 플레이어 사각형 그리기
먹이 사각형과 충돌했는지 검사하기
반복하고 있는 리스트에 대해 아이템을 더하거나 빼면 안된다
키보드 입력 프로그램 소스 코드
윈도우와 데이터 구조 설정하기
colliderect() 메소드
요약
CHAPTER 19 사운드와 이미지
이미지와 사운드 파일
스프라이트와 사운드 프로그램
스프라이트와 사운드 프로그램의 소스 코드
윈도우 설정하기와 데이터 구조
pygame.transform.scale() 함수
음악과 사운드 설정하기
사운드 온/오프 토글하기
윈도우에 플레이어 그리기
플레이어와 체리가 만났는지 검사하기
윈도우에 체리 그리기
요약
CHAPTER 20 도저
기본 Pygame 데이터 타입 다시 보기
도저의 소스 코드
모듈 가져오기
상수 변수 설정하기
함수 정의하기
Pygame 초기화하고 윈도우 설정하기
전체 화면 모드
시작 화면 보여주기
메인 게임 코드의 시작
게임 루프
이벤트 처리
Rect 객체의 move_ip() 메소드
새 악당 추가하기
pygame.mouse.set_pos() 함수
치트 코드 만들기
악당 제거하기
윈도우 그리기
플레이어의 점수 그리기
플레이어의 캐릭터 그리기
충돌 감지
게임 종료 화면
도저 게임 고치기
요약
부록 A 파이썬 버전 2와 버전 3의 차이점
print() 함수와 print구문
input()과 raw_input() 함수
range() 함수의 반환값
‘/’ 연산자로 나누기
format() 메쏘드와 %s로 문자열 포매팅하기
부록 B 구문, 함수 그리고 메소드 레퍼런스
구문
함수
random 모듈의 함수들
sys 모듈의 함수들
time 모듈의 함수들
메소드
부록 C 파이썬 설치하지 않고 파이썬 프로그램 수행하기
1단계 : py2exe 다운로드해서 설치하기
2단계 : setup.py 스크립트 작성하기
3단계 : setup.py 스크립트 수행하기
4단계 : 프로그램 배포하기
부록 D 파이썬에서 흔히 보는 에러 메시지
valid syntax
ImportError: No module named raandom
SyntaxError: EOL while scanning string literal
AttributeError: ‘str’ object has no attribute ‘lowerr’
IndentationError: expected an indented block
IndentationError: unexpected indent
IndentationError: unindent does not match any outer indentation level
TypeError: bad operand type for abs(): ‘str’
TypeError: abs() takes exactly one argument (2 given)
IndexError: list index out of range
KeyError: ‘spam’
인덱스