게임 프로그래머를 위한 자료구조와 알고리즘

Imgur
- 원서 페이지 - 정보문화사 상세 페이지 - 미리보기(PDF) - 가격 검색

게임 프로그래머를 위한 자료구조와 알고리즘.

마이크로소프트웨어 2004 년 8 월호 서적 벤치마크에서 베스트 도서로 선정되었습니다.

번역 및 편집 오류

대부분의 오류를 지적해주신 김성철 님께 감사드립니다.:)

확인된 것들

p.66 코드 설명 (2004-01-17)

첫 번째 줄에 "하나는 int 형의 원소들을 3 개 담는 배열"이라고 되어 있는데 실제로는 5 개입니다. Array<int, 5>니까요.

p.104 코드 6 번째 줄 (2004-01-19)

6: m_arrayp[p_index] = p_item;

m_arrayp는 m_array의 오타입니다.

6: m_array[p_index] = p_item;

106 쪽 8 줄 (2003-12-19)

'그것으로 색인 7의 항목이 제거된 것이다'라고 되어 있는데 제거된 것은 항목 3입니다.

정정: '그것으로 색인 3의 항목으로 제거된 것이다'

131 쪽 1 줄 (2003-12-19)

'비트를 해제할 때에는 비트 단위 OR를, 비트를 설정할 때에는 비트 단위 AND를 사용한다는...'에서 OR와 AND가 뒤바뀌었습니다.

정정: '비트를 해제할 때에는 비트 단위 AND를, 비트를 설정할 때에는 비트 단위 OR를 사용한다는...'

p.134 예제 코드 (2006-02-06)

다섯 번째 줄에 if(p_value = true)로 되어 있는데 오타입니다. 상등 비교할 것을 배정으로 해버린 전형적인 프로그래밍 실수...! if(p_value == true)가 맞습니다.

보고된 게시물

p.137 Player 클래스의 m_mexperience (2004-01-19)

멤버 m_mexperience는 m_experience의 오타입니다.

p.190 SListNode 클래스 (2004-01-19)

 SListNode<Datatype*> m_next;

포인터 지정이 잘못 되었습니다. 다음이 옳습니다.

 SListNode<Datatype> *m_next;

p.190 예제 코드 (2004-01-19)

 listm_next->m_data = 20;

->가 빠졌습니다. 다음이 옳습니다.

 list->m_next->m_data = 20;

p.207 Remove의 m_count--; 위치 (2006-02-06)

m_count가 의도와는 달리 두 번 감소되는 오류가 있습니다. Remove 함수 끝의 m_count--;를 else 절 안으로 옮겨야 합니다.

보고된 게시물

p.335 minx 는... (2003-12-27)

minx 는 20 x (400/64) x 1 라고 되어 있는데 20 - (400/64) - 1 이 맞습니다.

p.348 피해치 계산 (2009-12-20)

갑옷이 80이면 실제 피해치는 주어진 피해치의 80 퍼센트가 된다.

=>

갑옷이 80이면 실제 피해치는 주어진 피해치의 20 퍼센트가 된다.

(OccamsBbs:793)

p.391 팁 (2003-12-27)

데모의 소스 코드에 DrawSubTree라는 함수는 없고 DrawTree 라는 함수만 있습니다. 팁에서 말하는 함수가 그 DrawTree 입니다...

p.475 밑에서 세 번째 줄 O(log2n) 누락 (2004-01-06)

"자료의 수가 충분히 클 때 은 O(n)보다 훨씬 더 빠르다"

->"자료의 수가 충분히 클 때 O(log2n) 은 O(n)보다 훨씬 더 빠르다"

p.499 두 번째 문단 최대, 최소 설명(2004-01-06)

"그 값이 클수록 상태는 최대에게 유리하고 최소에게 불리하다. 반대로, 값이 작을수록 상태는 최대에게 유리하고 최소에게 불리하다." 두 경우 모두 최대가 유리하다고 되어 있는데, 후자는 최소에게 유리합니다.

-> "그 값이 클수록 상태는 최대에게 유리하고 최소에게 불리하다. 반대로, 값이 작을수록 상태는 최소에게 유리하고 최대에게 불리하다."

p.561 두 번째 문단 그래픽 운행? (2004-01-06)

'트리 운행과 그래픽 운행의'이라는 문구가 있는데 그래픽 운행이 아니라 그래프 운행입니다.

p.612 그림 18.10의 영문 (2004-01-06)

Low Ammo Warning이 그대로 남아 있는데 '탄약 적음 경고'로 바뀌었어야 합니다...

p.613 그림 18.11의 이름들 (2004-01-06)

그림에 쓰인 사건 이름들이 정확하지 않습니다. '회복약 찾기'는 '회복약 찾았음', '탄약 찾기'는 '탄약 찾았음'이 되어야 합니다. 그리고 가운데 대각선의 적 처치/GH/HA는 '적 처치/GH/LA'이어야 합니다.

김성철 님이 수정된 그림을 제공해 주셨습니다.
Image

p.681 알고리즘 단계 1 (2009-12-20)

  1. 힙의 밑에서 두 번째 수준의 가장 큰 값에 해당하는 색인을 찾는다.

=>

  1. 힙의 밑에서 두 번째 수준의 마지막(제일 오른쪽) 노드에 해당하는 색인을 찾는다.

(OccamsBbs:795)

p.682 첫 줄 (2009-12-20)

밑에서 두 번째 수준의 가장 큰 값은 제일 오른쪽에 있는 9이다.

=>

밑에서 두 번째 수준의 마지막 노드는 9이다.

p.703 두 번째 문단의 '두 번째 자리수' (2004-01-10)

두번째 자릿수는 마지막에서 두 번째 자릿수라는 뜻입니다. 알고리즘이 일단위 십단위 백단위 ...순서로 작동하니까요.

사실 지금 보니 저도 헷갈리는데, 애초에 순서를 뒤집어서.. 그러니까 p.702에서 마지막 자릿수라는 말을 쓰지 말고 "첫 번째 자리수(일단위)"라고 했으면 더 좋았을 것 같네요.

그리고 여기 저기 나오는 자리수는 오타입니다. 자릿수가 표준말입니다.

p.923 그림 B.7 (2005-02-01)

단계4 스택의 반환값(제일 아래칸)이 5로 되어 있는데 6이어야 본문과 일치합니다.

p.940 SDL_BlitSurface 호출 코드의 오타 (2004-02-18)

sourcerect, destrect 모두 포인터로 전달되어야 합니다. 즉:

SDL_BlitSurface(bitmap, &sourcerect, g_window, &destrect);

부록 CD 문제

부록 CD에 23 장 예제 파일들이 빠져 있는데, 원서 사이트의 http://www.premierpressbooks.com/downloads/updates/1931841942_ch23.zip 에 있습니다.

정보문화사 자료실에도 등록되었습니다: http://www.infopub.co.kr/jungbo/pds/group_pds/bbs.asp?rec_no=298&sub_no=0&dsp=2&lcnt=288&flg=detail&pdsid=1