Sztuczna_Inteligencja/run.py
2019-03-24 19:57:16 +01:00

86 lines
2.5 KiB
Python

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()