Implemented walker class and methods random_turn, next_pos, move_in_bounds

This commit is contained in:
Charles Peyrat 2020-12-04 18:01:54 +01:00
parent 428bbae736
commit a5c53c898e
1 changed files with 39 additions and 2 deletions

View File

@ -1,9 +1,46 @@
from enum import Enum
from random import choice, random, randint
from dungeonbattle.interfaces import Map, Tile
class Generator:
def __init__(self, params):
class Directions(Enum):
up = auto()
down = auto()
left = auto()
right = auto()
class Walker:
def __init__(self, x, y):
self.x = x
self.y = y
self.dir = choice(list(Directions))
def random_turn(self):
self.dir = choice(list(Directions))
def next_pos(self):
if self.dir == Directions.up:
return self.x, self.y + 1
elif self.dir == Directions.down:
return self.x, self.y - 1
elif self.dir == Directions.right:
return self.x + 1, self.y
elif self.dir == Directions.left:
return self.x - 1, self.y
def move_in_bounds(self, width, height):
nx, ny = self.next_pos()
if 0 < nx < width and 0 < ny < height:
self.x, self.y = nx, ny
class Generator:
def __init__(self, params = DEFAULT_PARAMS):
self.params = params
def run(self):