Higher Level Language ¶
{{|
from bun import *
from bun import *
# 빌딩의 건설
bobst = Building("공대", 7)
bobst.floors(("1층","2층","3층","4층","5층","6층","7층"))
bobst.floor(1).buildRooms((("교수실","복도","강의실1-2"),
bobst.floor(1).room(2,2).connectRoom(bobst.floor(2).room(2,2),"up") #층의 연결
bobst.floor(2).room(2,2).connectRoom(bobst.floor(1).room(2,2),"down") #층의 연결
bobst = Building("공대", 7)
bobst.floors(("1층","2층","3층","4층","5층","6층","7층"))
bobst.floor(1).buildRooms((("교수실","복도","강의실1-2"),
("강의실1-1","복도","강의실1-3"),
("로비","계단","복도"))
# 방과 방의 연결("로비","계단","복도"))
bobst.floor(1).room(2,2).connectRoom(bobst.floor(2).room(2,2),"up") #층의 연결
bobst.floor(2).room(2,2).connectRoom(bobst.floor(1).room(2,2),"down") #층의 연결
# 건물과 건물의 연결
playground = Building("운동장", 1)
playground.connectBuilding("north", bobst)
bobst.connectBuilding("south", playground)
playground.connectBuilding("north", bobst)
bobst.connectBuilding("south", playground)
# Character
bok = Character("김소현",playground)
bok.move("north", 2)
bok.move("up", 3)
bok.position() # tell current position
bok = Character("김소현",playground)
bok.move("north", 2)
bok.move("up", 3)
bok.position() # tell current position
|}}
Code (with dynamic typing, w/o string parsing ) ¶
~cpp # -*- coding: UTF-8 -*- class Building: def __init__(self, name, numFloors): self.name = name self.numFloors = numFloors self.connectedComponent = {} def floors(self, floorNames): self.floors = [] for name in floorNames : self.floors.append(Floor(name, buildingName)) def __str__(self): return self.name def connectBuilding(self, direction, building): self.connectedComponent[direction] = building def floor(self, roomID): return self.floors[roomID] class Floor: def __init__(self, floorName, buildingName): self.name = floorName self.buildingName = buildingName def buildRooms(self, roomNames): self.roomGrid = [] for roomTup in roomNames: rooms = [] for name in roomTup: rooms.append(Room(name)) self.roomGrid.append(rooms) def __str__(self): return self.name class Room: def __init__(self, roomName, floorName): self.roomName = roomName self.floorName = floorName self.connectedComponent = {} def connectRoom(self, room, direction): self.connectedComponent[direction] = room class Character: def __init__(self, name, currentPosition): self.currentPosition = currentPosition self.name = name self.tellPosition() def __str__(self): return self.name def move(self, direction, step): for i in range(0, step): if self.currentPosition.connectedComponent.has_key(direction) : self.currentPosition = self.currentPosition.connectedComponent[direction] else: return '갈 수 없습니다' self.tellPosition() def tellPosition(self): print '현재 당신의 위치는 %s 입니다' % self.currentPosition