Add cellular atomata to the map generator finally!
Use the new map generator mechanism to generate rooms via cellular atomata. Create a new CellularAtomatonRoomMethod class that uses the Cellular Atomton class to create a room. Add a FreefromRoom class that draws a room based on an ndarray of tiles. Along the way I discovered I have misunderstood how numpy arrays organize rows and columns. The numpy array creation routines take an 'order' argument that specifies whether arrays should be in C order (row major) or Fortran order (column major). Fortran order lets you index arrays with a more natural [x, y] coordinate order, and that's what the tutorials I've read have shown. So I've been using that. When I was developing the Cellular Atomaton, I wrote some code that assumed row- major order. I think I want to move everything to row-major / C-style, but that will take a bit more time.
This commit is contained in:
parent
e6327deeef
commit
635aea5e3b
4 changed files with 111 additions and 27 deletions
2
ca.py
2
ca.py
|
@ -26,7 +26,7 @@ def main(argv):
|
|||
|
||||
log.init()
|
||||
|
||||
bounds = Rect(Point(), Size(20, 20))
|
||||
bounds = Rect(Point(), Size(60, 20))
|
||||
|
||||
config = CellularAtomataMapGenerator.Configuration()
|
||||
config.number_of_rounds = args.rounds
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue