챕터3 생성패턴에 미로게임을 만든다 가정하고 예를 보여준게 있음
미로 게임을 만드는데 구성 요소들에 필요한 모든 연산을 정의한 공통 추상 클레스를 하나 만들고 (MapSite)
방인지, 벽인지등을 판단해서 MapSite에 구현된 Enter이 실행되도록 함
// MazeGame.cpp : Defines the entry point for the console application. // #include "stdafx.h" // 방찾기 미로 게임 // 방은 정사각형으로 되어 있으며 동, 서, 남, 북 선택해서 이동 할 수 있다. enum Direction { East, West, South, North }; class MapSite { public: virtual void Enter() = 0; }; // 첫번째 미로 타입 : Room class Room : public MapSite { public: Room(int RoomNo); MapSite* GetSide(Direction) const; void SetSide(Direction, MapSite*); virtual void Enter(); private: MapSite* _sides[4]; int _roomNumber; }; class Wall : public MapSite { public: Wall(); virtual void Enter(); }; class Door : public MapSite { public: // 문을 초기화 하기 위해서는 문이 어느 방 사이에 있는지 알아야 함. Door(Room* = 0, Room* = 0); virtual void Enter(); Room* OtherSideFrom(Room*); private: Room* _room1; Room* _room2; bool _isOpen; }; class Maze { public: Maze(); void AddRoom(Room*); Room* RoomNo(int) const; }; class MazeGame { }; int _tmain(int argc, _TCHAR* argv[]) { return 0; }
'프로그래밍 > C/C++' 카테고리의 다른 글
c++ 11, 14, constexpr (0) | 2016.08.06 |
---|---|
람다, 클로져, Closure, 람다함수 사용법 (0) | 2013.07.23 |
CString, BSTR, char 자료형 변환 (0) | 2013.04.03 |
C++ 기초 (0) | 2012.06.15 |
템플릿 (0) | 2012.02.13 |