Merge branch 'master' of https://git.wmi.amu.edu.pl/s444427/Sztuczna_Inteligencja_2020
This commit is contained in:
commit
6d4744f553
31
main.py
31
main.py
@ -32,6 +32,9 @@ if __name__ == "__main__":
|
|||||||
# Dominik
|
# Dominik
|
||||||
check = 0
|
check = 0
|
||||||
queue = []
|
queue = []
|
||||||
|
fromBar = 0
|
||||||
|
barNode = (3, 12)
|
||||||
|
node = ()
|
||||||
|
|
||||||
# Marcin Dobrowolski
|
# Marcin Dobrowolski
|
||||||
suggestionTreeRoot = SuggestionTree.buildTree(trainingData)
|
suggestionTreeRoot = SuggestionTree.buildTree(trainingData)
|
||||||
@ -179,17 +182,31 @@ if __name__ == "__main__":
|
|||||||
path = waiter.translatePath(path)
|
path = waiter.translatePath(path)
|
||||||
|
|
||||||
# Dominik
|
# Dominik
|
||||||
if check == 1:
|
if path == '' and fromBar == 0 and check == 1:
|
||||||
task = queue.pop(0)
|
task = queue.pop(0)
|
||||||
goal = (task[2][0], task[2][1])
|
tree.RemoveTask()
|
||||||
print(goal)
|
node = (task[2][0], task[2][1])
|
||||||
path = waiter.findPath(goal)
|
if task[0] == "goToBar":
|
||||||
print(path)
|
path = waiter.findPath(barNode)
|
||||||
|
fromBar = 1
|
||||||
|
else:
|
||||||
|
path = waiter.findPath(node)
|
||||||
path = waiter.translatePath(path)
|
path = waiter.translatePath(path)
|
||||||
print(path)
|
if fromBar == 1:
|
||||||
check = 0
|
check = 0
|
||||||
|
|
||||||
if len(queue) != 0 and check == 0 and path == '':
|
if path == '' and fromBar == 1:
|
||||||
|
path = waiter.findPath(node)
|
||||||
|
path = waiter.translatePath(path)
|
||||||
|
fromBar = 0
|
||||||
|
|
||||||
|
|
||||||
|
if path != '':
|
||||||
|
nextStep = path[0]
|
||||||
|
path = path[1:]
|
||||||
|
waiter.travel(nextStep, graphics)
|
||||||
|
|
||||||
|
if len(queue) != 0 and check == 0 and path == '' and fromBar == 0:
|
||||||
check = 1
|
check = 1
|
||||||
|
|
||||||
# AStar
|
# AStar
|
||||||
|
@ -16,11 +16,12 @@ class DecisionTree:
|
|||||||
graphics = Graphics()
|
graphics = Graphics()
|
||||||
self.waiter = Waiter(graphics)
|
self.waiter = Waiter(graphics)
|
||||||
self.matrix = Matrix(graphics=graphics)
|
self.matrix = Matrix(graphics=graphics)
|
||||||
|
self.tree = self.BuildTree(self.BuildDf())
|
||||||
|
|
||||||
def BuildDf(self):
|
def BuildDf(self):
|
||||||
actionName = 'order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check'.split(',')
|
actionName = 'order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,order,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,goToBar,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,eat,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check,check'.split(',')
|
||||||
distance = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27'.split(',')
|
distance = '0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27'.split(',')
|
||||||
priority = '1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4'.split(',')
|
priority = '1,1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4'.split(',')
|
||||||
|
|
||||||
dataset ={'actionName':actionName,'distance':distance,'priority':priority}
|
dataset ={'actionName':actionName,'distance':distance,'priority':priority}
|
||||||
df = pd.DataFrame(dataset,columns=['actionName','distance','priority'])
|
df = pd.DataFrame(dataset,columns=['actionName','distance','priority'])
|
||||||
@ -85,39 +86,30 @@ class DecisionTree:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Dodawanie zadan do listy zadan
|
#Dodawanie zadan do listy zadan
|
||||||
def TasksList(self, name, coordinate):
|
def TasksList(self, name, coordinate, waiterPos):
|
||||||
distance = []
|
distance = []
|
||||||
waiterNode = [self.waiter.X, self.waiter.Y]
|
print(waiterPos)
|
||||||
if name != "goToBar":
|
if name != "goToBar":
|
||||||
if self.matrix.matrix[coordinate[0] - 1][coordinate[1] - 1].walk_through == 1:
|
|
||||||
distance.append([abs(waiterNode[0] - (coordinate[0] - 1)) + abs(waiterNode[1] - (coordinate[1] - 1)), [coordinate[0] - 1, coordinate[1] - 1]])
|
|
||||||
if self.matrix.matrix[coordinate[0] + 1][coordinate[1] - 1].walk_through == 1:
|
|
||||||
distance.append([abs(waiterNode[0] - (coordinate[0] + 1)) + abs(waiterNode[1] - (coordinate[1] - 1)), [coordinate[0] + 1, coordinate[1] - 1]])
|
|
||||||
if self.matrix.matrix[coordinate[0] + 1][coordinate[1]].walk_through == 1:
|
if self.matrix.matrix[coordinate[0] + 1][coordinate[1]].walk_through == 1:
|
||||||
distance.append([abs(coordinate[0] - (coordinate[0] + 1)) + abs(waiterNode[1] - coordinate[1]), [coordinate[0] + 1, coordinate[1] ]])
|
distance.append([abs(coordinate[0] - (coordinate[0] + 1)) + abs(waiterPos[1] - coordinate[1]), [coordinate[0] + 1, coordinate[1] ]])
|
||||||
if self.matrix.matrix[coordinate[0] + 1][coordinate[1] - 1].walk_through == 1:
|
if self.matrix.matrix[coordinate[0] - 1][coordinate[1]].walk_through == 1:
|
||||||
distance.append([abs(waiterNode[0] - (coordinate[0] + 1)) + abs(waiterNode[1] - (coordinate[1] - 1)), [coordinate[0] + 1, coordinate[1] - 1]])
|
distance.append([abs(coordinate[0] - (coordinate[0] - 1)) + abs(waiterPos[1] - coordinate[1]), [coordinate[0] - 1, coordinate[1] ]])
|
||||||
if self.matrix.matrix[coordinate[0] - 1][coordinate[1] + 1].walk_through == 1:
|
|
||||||
distance.append([abs(waiterNode[0] - (coordinate[0] - 1)) + abs(waiterNode[1] - (coordinate[1] + 1)), [coordinate[0] - 1, coordinate[1] + 1]])
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
distance.append([abs(waiterNode[0] - 0) + abs(waiterNode[1] - 12), [0, 12]])
|
if self.matrix.matrix[coordinate[0] + 1][coordinate[1]].walk_through == 1:
|
||||||
distance.append([abs(waiterNode[0] - 1) + abs(waiterNode[1] - 12), [1, 12]])
|
distance.append([abs(waiterPos[0] - 3) + abs(waiterPos[1] - 12), [coordinate[0] + 1, coordinate[1] ]])
|
||||||
distance.append([abs(waiterNode[0] - 2) + abs(waiterNode[1] - 12), [2, 12]])
|
if self.matrix.matrix[coordinate[0] - 1][coordinate[1]].walk_through == 1:
|
||||||
distance.append([abs(waiterNode[0] - 3) + abs(waiterNode[1] - 12), [3, 12]])
|
distance.append([abs(waiterPos[0] - 3) + abs(waiterPos[1] - 12), [coordinate[0] - 1, coordinate[1] ]])
|
||||||
distance.append([abs(waiterNode[0] - 4) + abs(waiterNode[1] - 12), [4, 12]])
|
|
||||||
distance.append([abs(waiterNode[0] - 5) + abs(waiterNode[1] - 13), [5, 13]])
|
|
||||||
distance.append([abs(waiterNode[0] - 5) + abs(waiterNode[1] - 14), [5, 14]])
|
|
||||||
|
|
||||||
distance.sort(key=lambda x: x[0])
|
distance.sort(key=lambda x: x[0])
|
||||||
tasksList.append([name, distance[0][0], distance[0][1]])
|
tasksList.append([name, distance[0][0], distance[0][1]])
|
||||||
|
|
||||||
|
|
||||||
#Kolejkowanie zadan
|
#Kolejkowanie zadan
|
||||||
def Queue(self, tasksList):
|
def Queue(self, tasksList):
|
||||||
df = self.BuildDf()
|
df = self.BuildDf()
|
||||||
tree = self.BuildTree(df)
|
tree = self.tree
|
||||||
winnerNode = self.FindWinner(df)
|
winnerNode = self.FindWinner(df)
|
||||||
|
|
||||||
for i in tasksList:
|
for i in tasksList:
|
||||||
@ -153,6 +145,10 @@ class DecisionTree:
|
|||||||
print(queue)
|
print(queue)
|
||||||
return queue
|
return queue
|
||||||
|
|
||||||
|
def RemoveTask(self):
|
||||||
|
tasksList.remove(tasksList[0])
|
||||||
|
|
||||||
|
|
||||||
def print(self):
|
def print(self):
|
||||||
print(tasksList)
|
print(tasksList)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user