Decide to write from scratch again, but much more simplistic
This commit is contained in:
@@ -234,12 +234,14 @@ def read_input():
|
|||||||
return inpt
|
return inpt
|
||||||
|
|
||||||
def move(x, y):
|
def move(x, y):
|
||||||
neo.update_open_set()
|
for i in neo.open_set:
|
||||||
|
print(i.position)
|
||||||
if map.get_cell(x, y) in neo.open_set: #TODO: FIX CHECK
|
if map.get_cell(x, y) in neo.open_set: #TODO: FIX CHECK
|
||||||
neo.set_position(x, y)
|
neo.set_position(x, y)
|
||||||
print(f"m {x} {y}")
|
print(f"m {x} {y}")
|
||||||
else:
|
else:
|
||||||
print("ERROR: CAN'T MOVE HERE")
|
print("ERROR: CAN'T MOVE HERE")
|
||||||
|
neo.update_open_set()
|
||||||
|
|
||||||
|
|
||||||
map = Map((8, 8))
|
map = Map((8, 8))
|
||||||
@@ -254,6 +256,7 @@ pg.display.set_caption("Matrix Universe")
|
|||||||
running = True
|
running = True
|
||||||
#pg.time.delay(7000)
|
#pg.time.delay(7000)
|
||||||
neo.set_position(0, 0) #TODO: ITS TEMPORARY
|
neo.set_position(0, 0) #TODO: ITS TEMPORARY
|
||||||
|
neo.update_open_set()
|
||||||
move(0, 0)
|
move(0, 0)
|
||||||
read_initial_inputs()
|
read_initial_inputs()
|
||||||
pg.time.delay(1500)
|
pg.time.delay(1500)
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
|
||||||
|
|
||||||
|
def get_position_input():
|
||||||
|
position_input_list = (input().split(" "))
|
||||||
|
position_input_tuple = ()
|
||||||
|
for i in position_input_list:
|
||||||
|
position_input_tuple += (i,)
|
||||||
|
return position_input_tuple
|
||||||
|
|
||||||
|
def get_walkable_cells():
|
||||||
|
walkable_cells = []
|
||||||
|
potential_positions = []
|
||||||
|
potential_positions.append((neo[0], neo[1] + 1))
|
||||||
|
potential_positions.append((neo[0], neo[1] - 1))
|
||||||
|
potential_positions.append((neo[0] - 1, neo[1]))
|
||||||
|
potential_positions.append((neo[0] + 1, neo[1]))
|
||||||
|
for i in potential_positions:
|
||||||
|
if i[0] in range(MAP_SIZE) and i[1] in range(MAP_SIZE):
|
||||||
|
walkable_cells.append(i)
|
||||||
|
return walkable_cells
|
||||||
|
|
||||||
|
def get_g(cell:tuple):
|
||||||
|
return abs((neo[0] - cell[0]) + (neo[1] - cell[1]))
|
||||||
|
|
||||||
|
def get_h(cell:tuple):
|
||||||
|
return abs((keymaster[0] - cell[0]) + (keymaster[1] - cell[1]))
|
||||||
|
|
||||||
|
def get_f(cell:tuple):
|
||||||
|
return get_g(cell) + get_h(cell)
|
||||||
|
|
||||||
|
def set_position(new_postion:tuple):
|
||||||
|
neo = new_postion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
MAP_SIZE = 8
|
||||||
|
map = []
|
||||||
|
start = (0, 0) #initial position of Neo
|
||||||
|
neo = start #position of Neo
|
||||||
|
keymaster = () #position of Keymaster
|
||||||
|
|
||||||
|
perception_radius = input()
|
||||||
|
position_input = get_position_input()
|
||||||
|
|
||||||
|
keymaster = (position_input[0], position_input[1])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print(neo)
|
||||||
|
print(get_walkable_cells())
|
||||||
|
|
||||||
|
while (True):
|
||||||
|
position_input = get_position_input()
|
||||||
|
set_position(position_input)
|
||||||
|
print(neo)
|
||||||
|
print(get_walkable_cells())
|
||||||
Reference in New Issue
Block a user