diff --git a/main.py b/main.py index 602ce49..333c372 100644 --- a/main.py +++ b/main.py @@ -34,6 +34,7 @@ if __name__ == "__main__": fromBar = 0 barNode = (3, 12) node = () + goalList = [0, 0] # Marcin Dobrowolski suggestionTreeRoot = SuggestionTree.buildTree(trainingData) @@ -43,6 +44,7 @@ if __name__ == "__main__": # Maksymilian go = 0 randGo = 0 + plate = 0 waitPos = [[1, 2], [1, 5], [1, 8], [5, 4], [5, 8], [8, 2], [8, 5], [8, 8], [12, 3], [12, 7]] @@ -50,7 +52,7 @@ if __name__ == "__main__": [8, 2], [8, 5], [8, 8], [12, 3], [12, 7]] pltPos = [[2, 3], [2, 6], [2, 9], [4, 4], [4, 8], - [9, 3], [9, 6], [9, 9], [11, 3], [11, 8]] + [9, 3], [9, 6], [9, 9], [11, 4], [11, 8]] plateArr = [] @@ -108,75 +110,6 @@ if __name__ == "__main__": queue = tree.ReturnQueueList() tree.print() - if event.key == pygame.K_m: - if (not [waiter.X, waiter.Y] in waitPos) or go == 0: - if [waiter.X, waiter.Y] in waitPos: - model = 'waiter_' + waiter.direction - for x in range(-1, 2): - waiterX = waiter.X + (x * 0.1) - graphics.clear(waiterX, waiter.Y - 1) - rand = randrange(9) - - # if this plate is exists - print(rand) - if plateArr and len(plateArr) >= rand and plateArr[rand] in plateArr: - randGo = rand - goal = (plateArr[randGo].table[0], plateArr[randGo].table[1]) - path = waiter.findPath(goal) - path = waiter.translatePath(path) - print('sec-1') - - go = 1 - - # if this plate is not exists - else: - - randTable = random.choice(tabPos) - randIndex = tabPos.index(randTable) - tableCord = tabPos[randIndex] - plateCord = pltPos[randIndex] - print('rand{}'.format(randIndex)) - pictureAI = 'test-{}'.format(randIndex) - plateArr.append(Plate(graphics, plateCord, tableCord, 'plate-full.png', pictureAI)) - tabPos.pop(randIndex) - pltPos.pop(randIndex) - print(plateArr, pltPos) - - goal = (plateArr[len(plateArr) - 1].table[0], plateArr[len(plateArr) - 1].table[1]) - randGo = len(plateArr) - 1 - path = waiter.findPath(goal) - path = waiter.translatePath(path) - print('sec-2') - go = 1 - else: - if plateArr[randGo].checked: - predict = 'CHECKED' - else: - predict = use_model_to_predict(plateArr[randGo].pictureAI) - - if predict == 1: - predict = 'EMPTY' - plateArr[randGo].checkPlate() - else: - predict = 'FOOD' - print('sec-3') - text_speech('arialnarrow.ttf', 25, predict, (255, 255, 255), (0, 128, 0), - (waiter.X * 50 + 25), (waiter.Y * 50 - 25), False, False, screen=graphics.screen) - pygame.display.flip() - go = 0 - - if event.key == pygame.K_a: - newGuests.append(Guest(graphics)) - - guest = newGuests[len(newGuests) - 1] - goal = [0, 0] - goal[0] = guest.cord[0] - goal[1] = guest.cord[1] - - tree.TasksList('order', goal, [waiter.X, waiter.Y]) - tree.TasksList('goToBar', goal, [waiter.X, waiter.Y]) - queue = tree.ReturnQueueList() - # Marcin Dobrowolski if event.key == pygame.K_0: newGuests.append(Guest(graphics)) @@ -211,6 +144,78 @@ if __name__ == "__main__": path = waiter.findPath(goal) path = waiter.translatePath(path) + if event.key == pygame.K_a: + if path == '': + newGuests.append(Guest(graphics)) + + guest = newGuests[len(newGuests) - 1] + goalList[0] = guest.cord[0] + goalList[1] = guest.cord[1] + + tree.TasksList('order', goalList, [waiter.X, waiter.Y]) + tree.TasksList('goToBar', goalList, [waiter.X, waiter.Y]) + queue = tree.ReturnQueueList() + + if plate == 1 and (goalList == [waiter.X-1, waiter.Y] or goalList == [waiter.X+1, waiter.Y]): + if (not [waiter.X, waiter.Y] in waitPos) or go == 0: + if [waiter.X, waiter.Y] in waitPos: + model = 'waiter_' + waiter.direction + for x in range(-1, 2): + waiterX = waiter.X + (x * 0.1) + graphics.clear(waiterX, waiter.Y - 1) + rand = randrange(9) + + # if this plate is exists + print(rand) + if plateArr and len(plateArr) > rand and plateArr[rand] in plateArr: + randGo = rand + goal = (plateArr[randGo].table[0], plateArr[randGo].table[1]) + path = waiter.findPath(goal) + path = waiter.translatePath(path) + print('sec-1') + + go = 1 + plate = 0 + + # if this plate is not exists + else: + + randTable = goalList + randIndex = pltPos.index(goalList) + tableCord = tabPos[randIndex] + plateCord = pltPos[randIndex] + print('rand{}'.format(randIndex)) + pictureAI = 'test-{}'.format(randIndex) + plateArr.append(Plate(graphics, plateCord, tableCord, 'plate-full.png', pictureAI)) + tabPos.pop(randIndex) + pltPos.pop(randIndex) + print(plateArr, pltPos) + + goal = (plateArr[len(plateArr) - 1].table[0], plateArr[len(plateArr) - 1].table[1]) + randGo = len(plateArr) - 1 + path = waiter.findPath(goal) + path = waiter.translatePath(path) + print('sec-2') + go = 1 + plate = 0 + else: + if plateArr[randGo].checked: + predict = 'CHECKED' + else: + predict = use_model_to_predict(plateArr[randGo].pictureAI) + + if predict == 1: + predict = 'EMPTY' + plateArr[randGo].checkPlate() + else: + predict = 'FOOD' + print('sec-3') + text_speech('arialnarrow.ttf', 25, predict, (255, 255, 255), (0, 128, 0), + (waiter.X * 50 + 25), (waiter.Y * 50 - 25), False, False, screen=graphics.screen) + pygame.display.flip() + go = 0 + plate = 0 + # Dominik if queue and path == '' and fromBar == 0: print(queue) @@ -221,6 +226,7 @@ if __name__ == "__main__": if task[0] == "goToBar": path = waiter.findPath(barNode) fromBar = 1 + else: path = waiter.findPath(node) path = waiter.translatePath(path) @@ -229,6 +235,7 @@ if __name__ == "__main__": path = waiter.findPath(node) path = waiter.translatePath(path) fromBar = 0 + plate = 1 # AStar if path == '' and actions: