skip to main | skip to sidebar

workshop of a bard

2009. 5. 19.

LISP 으로 어드벤처 게임을... 5장 전체 구조 짜기

이제 전체 프로그램의 구성을 살펴보자.




  • Main LOOP
    • 해당 방의 상황을 플레이어에게 알려주고, 현재 플레이어 상태를 출력
    • 보물을 집는다
    • 괴물과 싸운다
    • 음식을 먹는다
    • 물품을 구입한다
  • 플레이어가 계속 살아있고, 아직 출구에 나가지 않았다면 Main LOOP 로
  • 축하 메세지 출력, 혹은 게임 오버 메시지 출력
  • 끝
전체적인 구조가 위와 같다. (원래 소스코드는 BASIC이었슴..)
이제 대략적인 가상 코드를 작성해보자.

(identify)
(init_routine)
(loop
  (game-loop)
  (if (end-codition?) (return))
(congratulation)


다음으로 필요한 것은 다음과 같다.

(major-handling)
(describe-room-with-light)
(describe-monster-treasure)
(ask-player-move)
(fight)
(room-description)
(death)
(pick-up-treasure)
(tell-player-fight)
(eat-food)
(inventory)
(floor-plan)


등이다.

init-routine은 다음과 같다
assign-variable
fill floor plan array
get-player's name
allot treasure to room
allot monster to room

개략적인 코드가 완성되었다면 이제부터는 실제 코딩..
6장부터 험난한 코드 컨버팅이 시작된다. =.=



작성자: Ya'aman 시간: 14:12
라벨: 게임, Lisp

댓글 없음:

댓글 쓰기

최근 게시물 이전 게시물 홈
피드 구독하기: 댓글 (Atom)

팔로어

프로필

내 사진
Ya'aman
Anyang, Kyunggido, South Korea
전체 프로필 보기

블로그 보관함

  • ►  2015 (1)
    • ►  5월 (1)
  • ►  2010 (14)
    • ►  6월 (1)
    • ►  5월 (1)
    • ►  3월 (2)
    • ►  2월 (2)
    • ►  1월 (8)
  • ▼  2009 (47)
    • ►  12월 (3)
    • ►  11월 (8)
    • ►  10월 (3)
    • ►  9월 (3)
    • ►  8월 (2)
    • ►  7월 (1)
    • ►  6월 (2)
    • ▼  5월 (12)
      • LISP 으로 어드벤처 게임을... Ch 11
      • LISP 으로 어드벤처 게임을 ... CH 10
      • 2D 플랫폼이 훌륭했던 이유..
      • 문자열 뒤집기...
      • LISP으로 어드벤처 게임을... Ch 9
      • 2등으로 성공하기..
      • LISP으로 어드벤처 게임을... Ch8
      • LISP으로 어드벤처 게임을... Ch6, Ch7
      • LISP 으로 어드벤처 게임을... 5장 전체 구조 짜기
      • LISP으로 어드벤쳐 게임을... 4장. Floor Plan
      • LISP으로 어드벤쳐 게임을... Prolog
      • MIT에서 Scheme대신 Python으로 이전한 이유
    • ►  4월 (7)
    • ►  3월 (4)
    • ►  1월 (2)
  • ►  2008 (236)
    • ►  12월 (2)
    • ►  10월 (2)
    • ►  9월 (8)
    • ►  8월 (115)
    • ►  7월 (25)
    • ►  6월 (2)
    • ►  5월 (7)
    • ►  4월 (33)
    • ►  3월 (32)
    • ►  2월 (10)
  • ►  2007 (17)
    • ►  7월 (5)
    • ►  6월 (11)
    • ►  1월 (1)
  • ►  2006 (6)
    • ►  10월 (3)
    • ►  9월 (1)
    • ►  5월 (2)
  • ►  2004 (7)
    • ►  10월 (1)
    • ►  9월 (5)
    • ►  8월 (1)