field cost
This commit is contained in:
parent
1bdef8cc56
commit
5e4af5773b
15
Board.py
15
Board.py
@ -11,8 +11,17 @@ def generate():
|
|||||||
for i in range(0, int(HORIZONTAL_TILES_NUMBER)):
|
for i in range(0, int(HORIZONTAL_TILES_NUMBER)):
|
||||||
board.append([])
|
board.append([])
|
||||||
for j in range(0, int(VERTICAL_TILES_NUMBER)):
|
for j in range(0, int(VERTICAL_TILES_NUMBER)):
|
||||||
board[i].append(Field(int(i * TILE_SIZE), int(j * TILE_SIZE), random.choice(states)))
|
current_state = random.choice(states)
|
||||||
|
current_cost = getCost(current_state)
|
||||||
|
board[i].append(Field(int(i * TILE_SIZE), int(j * TILE_SIZE), current_state, current_cost))
|
||||||
|
|
||||||
board[0][0] = Field(int(0 * TILE_SIZE), int(0 * TILE_SIZE), "TOOLS_FIELD")
|
board[0][0] = Field(int(0 * TILE_SIZE), int(0 * TILE_SIZE), "TOOLS_FIELD", cost=0)
|
||||||
board[1][0] = Field(int(1 * TILE_SIZE), int(0 * TILE_SIZE), "FUEL_FIELD")
|
board[1][0] = Field(int(1 * TILE_SIZE), int(0 * TILE_SIZE), "FUEL_FIELD", cost=0)
|
||||||
return board
|
return board
|
||||||
|
|
||||||
|
def getCost(state):
|
||||||
|
if state == 'toPlow': return 1
|
||||||
|
if state == 'toSeed': return 2
|
||||||
|
if state == 'toFertilize': return 3
|
||||||
|
if state == 'toWater': return 4
|
||||||
|
if state == 'toCut': return 5
|
||||||
|
13
Field.py
13
Field.py
@ -1,13 +1,18 @@
|
|||||||
class Field:
|
class Field:
|
||||||
def __init__(self, horizontal_index, vertical_index, state):
|
def __init__(self, horizontal_index, vertical_index, state, cost):
|
||||||
self.__horizontal_index = horizontal_index
|
self.__horizontal_index = horizontal_index
|
||||||
self.__vertical_index = vertical_index
|
self.__vertical_index = vertical_index
|
||||||
self.__state = state
|
self.__state = state
|
||||||
|
self.__cost = cost
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def state(self):
|
def state(self):
|
||||||
return self.__state
|
return self.__state
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cost(self):
|
||||||
|
return self.__cost
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def horizontal_index(self):
|
def horizontal_index(self):
|
||||||
return self.__horizontal_index
|
return self.__horizontal_index
|
||||||
@ -21,3 +26,9 @@ class Field:
|
|||||||
if state == "toPlow" or state == "toWater" or state == "toSeed" or \
|
if state == "toPlow" or state == "toWater" or state == "toSeed" or \
|
||||||
state == "toFertilize" or state == "toCut" or state == "TOOLS_FIELD" or state == "FUEL_FIELD":
|
state == "toFertilize" or state == "toCut" or state == "TOOLS_FIELD" or state == "FUEL_FIELD":
|
||||||
self.__state = state
|
self.__state = state
|
||||||
|
|
||||||
|
@cost.setter
|
||||||
|
def cost(self, cost):
|
||||||
|
if cost == 1 or cost == 2 or cost == 3 or \
|
||||||
|
cost == 4 or cost == 5 or cost == 0:
|
||||||
|
self.__cost = cost
|
13
FindPath.py
13
FindPath.py
@ -30,11 +30,16 @@ def whichStateLookingFor(tractor, TillageUnit):
|
|||||||
|
|
||||||
|
|
||||||
def nearestLookingField(board, tractor, TillageUnit):
|
def nearestLookingField(board, tractor, TillageUnit):
|
||||||
|
horizontal_tiles_number = int(HORIZONTAL_TILES_NUMBER)
|
||||||
|
vertical_tiles_number = int(VERTICAL_TILES_NUMBER)
|
||||||
|
|
||||||
|
print(horizontal_tiles_number, vertical_tiles_number)
|
||||||
|
a = input()
|
||||||
end_horizontal_index = 0
|
end_horizontal_index = 0
|
||||||
end_vertical_index = 0
|
end_vertical_index = 0
|
||||||
searching_field = whichStateLookingFor(tractor, TillageUnit)
|
searching_field = whichStateLookingFor(tractor, TillageUnit)
|
||||||
for i in range(0, int(HORIZONTAL_TILES_NUMBER)):
|
for i in range(horizontal_tiles_number):
|
||||||
for j in range(0, int(VERTICAL_TILES_NUMBER)):
|
for j in range(vertical_tiles_number):
|
||||||
field = board[i][j]
|
field = board[i][j]
|
||||||
if searching_field == field.state:
|
if searching_field == field.state:
|
||||||
end_horizontal_index = field.horizontal_index
|
end_horizontal_index = field.horizontal_index
|
||||||
@ -71,10 +76,8 @@ def graphsearch(tractor, board, TillageUnit, fringe: Queue, explored):
|
|||||||
|
|
||||||
|
|
||||||
def goaltest(elem, end_state):
|
def goaltest(elem, end_state):
|
||||||
print('element: ',elem,' stan koncowy; ', end_state)
|
print('element:', elem, 'state:', end_state)
|
||||||
if elem == end_state:
|
if elem == end_state:
|
||||||
print("heeee")
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
Loading…
Reference in New Issue
Block a user