Advertisement
HouseDimir

HouseGenerator

May 27th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.43 KB | None | 0 0
  1. import re
  2. import sys
  3. import math
  4. import random as rand
  5.  
  6. # The end result is intended to look like a list name House
  7. # that contains objects inside representing each floor. These
  8. # objects should also contain the rooms, which should contain
  9. # k-v pairs representing the type of room, as well as where
  10. # the windows and doors are positioned in the walls of the room
  11. # as shown below.
  12.  
  13. # House = [Floor1, Floor2, Floor3]
  14. # Floor1 = [Room_1, Room_2, Room_3, Room_4, staircase_1]
  15. # Room_1 = {rType : Kitchen, door_1 : middle,
  16. #           door_2 : outside, window : center}
  17. # staircase_1 = (bottom)
  18.  
  19. door_pos = ['inside', 'middle', 'outside']
  20. window_pos = ['left', 'center', 'right']
  21. stair_pos = ['top', 'left', 'bottom', 'right']
  22. room_type = ['Bathroom 1', 'Bathroom 2', 'Kitchen', 'Livingroom',
  23.             'Bedroom 1', 'Bedroom 2', 'Master Bedroom',
  24.             'Master Bathroom']
  25.  
  26. House = []
  27. Floor1 = []
  28. Floor2 = []
  29. Floor3 = []
  30. Room_1 = {}
  31. Room_2 = {}
  32. Room_3 = {}
  33. Room_4 = {}
  34. f1r1 = {}
  35. f1r2 = {}
  36. f1r3 = {}
  37. f1r4 = {}
  38. f2r1 = {}
  39. f2r2 = {}
  40. f2r3 = {}
  41. f2r4 = {}
  42. f3r1 = {}
  43. f3r2 = {}
  44. f3r3 = {}
  45. f3r4 = {}
  46.  
  47. def Room1Gen():
  48.     rtype = rand.sample(room_type, 1)
  49.     door_1 = rand.sample(door_pos, 1)
  50.     door_2 = rand.sample(door_pos, 1)
  51.     window = rand.sample(window_pos, 1)
  52.     Room_1['rtype'] = rtype[0]
  53.     Room_1['door_1'] = door_1[0]
  54.     Room_1['door_2'] = door_2[0]
  55.     Room_1['window'] = window[0]
  56.     for i in Room_1:
  57.         yield Room_1[i]
  58.  
  59. def Room2Gen():
  60.     rtype = rand.sample(room_type, 1)
  61.     door_1 = rand.sample(door_pos, 1)
  62.     door_2 = rand.sample(door_pos, 1)
  63.     window = rand.sample(window_pos, 1)
  64.     Room_2['rtype'] = rtype[0]
  65.     Room_2['door_1'] = door_1[0]
  66.     Room_2['door_2'] = door_2[0]
  67.     Room_2['window'] = window[0]
  68.     for i in Room_2:
  69.         yield Room_2[i]
  70.  
  71. def Room3Gen():
  72.     rtype = rand.sample(room_type, 1)
  73.     door_1 = rand.sample(door_pos, 1)
  74.     door_2 = rand.sample(door_pos, 1)
  75.     window = rand.sample(window_pos, 1)
  76.     Room_3['rtype'] = rtype[0]
  77.     Room_3['door_1'] = door_1[0]
  78.     Room_3['door_2'] = door_2[0]
  79.     Room_3['window'] = window[0]
  80.     for i in Room_3:
  81.         yield Room_3[i]
  82.  
  83. def Room4Gen():
  84.     rtype = rand.sample(room_type, 1)
  85.     door_1 = rand.sample(door_pos, 1)
  86.     door_2 = rand.sample(door_pos, 1)
  87.     window = rand.sample(window_pos, 1)
  88.     Room_4['rtype'] = rtype[0]
  89.     Room_4['door_1'] = door_1[0]
  90.     Room_4['door_2'] = door_2[0]
  91.     Room_4['window'] = window[0]
  92.     for i in Room_4:
  93.         yield Room_4[i]
  94.  
  95. room1 = Room1Gen()
  96. room2 = Room2Gen()
  97. room3 = Room3Gen()
  98. room4 = Room4Gen()
  99.  
  100. try:
  101.     for i in range(5):
  102.         next(room1)
  103.         next(room2)
  104.         next(room3)
  105.         next(room4)
  106. except StopIteration:
  107.     pass
  108.  
  109. Floor1.append(f1r1)
  110. Floor1.append(f1r2)
  111. Floor1.append(f1r3)
  112. Floor1.append(f1r4)
  113. Floor2.append(f2r1)
  114. # Floor2.append(f2r2)
  115. # Floor2.append(f2r3)
  116. # Floor2.append(f2r4)
  117. # Floor3.append(f3r1)
  118. # Floor3.append(f3r2)
  119. # Floor3.append(f3r3)
  120. # Floor3.append(f3r4)
  121. House.append(Floor1)
  122. House.append(Floor2)
  123. House.append(Floor3)
  124.  
  125. f1r1.update(Room_1)
  126. f1r2.update(Room_2)
  127. f1r3.update(Room_3)
  128. f1r4.update(Room_4)
  129. del(Room_1)
  130. del(Room_2)
  131. del(Room_3)
  132. del(Room_4)
  133. Room_1 = {}
  134. Room_2 = {}
  135. Room_3 = {}
  136. Room_4 = {}
  137.  
  138. try:
  139.     for i in range(5):
  140.         next(room1)
  141.         next(room2)
  142.         next(room3)
  143.         next(room4)
  144. except StopIteration:
  145.     pass
  146.  
  147. f2r1.update(Room_1)
  148. # f2r2.update(Room_2)
  149. # f2r3.update(Room_3)
  150. # f2r4.update(Room_4)
  151. # del(Room_1)
  152. # del(Room_2)
  153. # del(Room_3)
  154. # del(Room_4)
  155. # Room_1 = {}
  156. # Room_2 = {}
  157. # Room_3 = {}
  158. # Room_4 = {}
  159.  
  160. # try:
  161. #   for i in range(5):
  162. #       next(room1)
  163. #       next(room2)
  164. #       next(room3)
  165. #       next(room4)
  166. # except StopIteration:
  167. #   pass
  168.  
  169. # f3r1.update(Room_1)
  170. # f3r2.update(Room_2)
  171. # f3r3.update(Room_3)
  172. # f3r4.update(Room_4)
  173. # del(Room_1)
  174. # del(Room_2)
  175. # del(Room_3)
  176. # del(Room_4)
  177.  
  178. # If iterations of RoomGen1-4 to be applied to each
  179. # of the floors with some level of independence
  180. # there will need to be seperate variables for each
  181. # room of each floor. There should be a way to dynamcally
  182. # create and name these variables.
  183. # Room_1.copy(f1r1)
  184. # so on and so forth. The only issue this raises would be a
  185. # massive amount of dictionaries and lists which could
  186. # quickly increase processing time.
  187.  
  188. print('This is the layout of the House:')
  189. roomtype = 'rtype'
  190. # print(f1r1)
  191. # print(f1r1['door_1'])
  192. print(House)
  193. # for floor in House:
  194. #   for room in floor:
  195. #       print('hello')
  196. for floor_number, floor in enumerate(House):
  197.     print('Floor', floor_number + 1, ': ', sep='', end='')
  198.     for room in floor:
  199.         print(room[roomtype], end=' ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement