Нужно пояснение Алгоритма A* ,пошаговое каждого действия в программе mblock
Создать кординаты не сложно
from mblock import event
_D1_81_D1_82_D0_B5_D0_BD_D0_B0 = 0
def _D1_80_D0_B8_D1_81_D1_83_D0_B5_D0_BC__D0_BF_D0_BE_D0_BB_D0_B5():
global _D1_81_D1_82_D0_B5_D0_BD_D0_B0
# not supported yet
# not supported yet
sprite.show()
sprite.x = -210
sprite.y = 160
for count2 in range(9):
for count in range(10):
# not supported yet
# not supported yet
sprite.x = sprite.x + 39
sprite.clone('_myself_')
sprite.x = -210
sprite.y = (sprite.y - 39)
sprite.hide()
sprite.broadcast(str('старт'))
event.greenflag
def on_greenflag():
global _D1_81_D1_82_D0_B5_D0_BD_D0_B0
_D1_80_D0_B8_D1_81_D1_83_D0_B5_D0_BC__D0_BF_D0_BE_D0_BB_D0_B5()
event.received('смена костюма на 2')
def on_received():
global _D1_81_D1_82_D0_B5_D0_BD_D0_B0
if sprite.touching('Спрайт 3'):
Как видим не сложно сделать считывание ячеек
from mblock import event
import time
event.received('старт')
def on_received():
sprite.set_variable('лабиринт', 0)
sprite.set_variable('шаг', 0)
sprite.show()
sprite.x = -210
sprite.y = 160
time.sleep(1)
for count in range(int(#)):
v = sprite.get_variable('лабиринт')
sprite.set_variable('лабиринт', v + 1)
v = sprite.get_variable('шаг')
sprite.set_variable('шаг', v + 1)
sprite.x = (# + 40)
sprite.y = #
if sprite.touching('Спрайт 1') and # == '*':
sprite.broadcast(str('смена костюма на 2'))
sprite.hide()
Но не совсем понятно , как определить короткий Путь? алгоритм A* ?
Нужен именно алгоритм алгоритм A*
Не один пример не показывает детали , рассматриваться код целиком ,что не дает понимания ....
Нужно разложить на примитивы и пояснить сам принцип того что делается.
Вот так можно получить координаты, и нарисовать лаберинт
https://planet.mblock.cc/project/697261
Но даже если я создам клоны ....И получу номера все равно не понятно как это работает
например вот гиф мы видим как от точки игрока можно проложить путь , строго по клеткам ,как это работает?
кто способен пояснить?