import pygame, sys from waiter import Waiter from table import Table from gridElement import GridElement from pygame.math import Vector2 class Game(object): def __init__(self): pygame.init() self.x = 20 self.y = 18 self.screen = pygame.display.set_mode((self.x * 50, self.y * 50)) self.fpsClock = pygame.time.Clock() self.idTable = 0 self.idOrder = 0 self.idItem = -1 self.waiterNumberInGrid = Vector2() pygame.display.set_caption('Automatic Waiter') self.background = pygame.image.load("./Images/tlo.jpg") # The most important lists self.grid = [] self.row = [] for b in range(self.y): for i in range(self.x): if ((i == 0) or (i == 8) or (i == 16)) and ((b == 2) or (b == 8)): self.row.append(Table(i * 50, b * 50, self)) elif i == 18 and b == 14: self.row.append(Waiter(self, i * 50, b * 50)) self.waiterNumberInGrid.x = i self.waiterNumberInGrid.y = b else: self.row.append(GridElement(i * 50, b * 50, self)) if i == 19: self.grid.append(list(self.row)) self.row.clear() self.showGrid(self.grid) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit(0) self.draw() self.grid[int(self.waiterNumberInGrid.y)][int(self.waiterNumberInGrid.x)].move(self) pygame.display.flip() print(self.waiterNumberInGrid) self.fpsClock.tick(10) def draw(self): tempTable = [] for row in self.grid: for gridElement in row: if gridElement.type == "gridElement": gridElement.draw() else: tempTable.append(gridElement) for otherElement in tempTable: otherElement.draw() def convert(self, object): if object.type == "gridElement": return 'G' elif object.type == "table": return 'T' elif object.type == "waiter": return 'W' def showGrid(self, grid): charakterList = [] row = [] for y in range(self.y): row = list(map(self.convert, grid[y])) charakterList.append(row) print(row) if __name__ == "__main__": Game()