Я не знаком с Фитоном.Поэтому я объясняю математику за этим вопросом.В шахматах есть 8 направлений для линий, рядов и диагоналей:
Вы можете рассчитать направление между двумя полями [x1, y1] и[x2, y2] вот так:
delta_x = x2 - x1
delta_y = y2 - y1
Теперь проверьте, лежат ли два поля на строке, линии или диагонали:
if delta_x = 0 or delta_y = 0 or ABS(delta_x) = ABS(delta_y) then
dir = [SGN(delta_x), SGN(delta_y)]
else
dir = 0
end if
с SGN (z) возвращает +1, если z> 0, -1, если z <0, или 0, если z = 0 и ABS (z) возвращает абсолютное значение z. </p>
Теперь dir - это направление от поля [x1, y1] к[x2, y2] или dir = 0, потому что оба поля не лежат в одной строке, линии или диагонали.Чтобы найти все поля между двумя полями, вы можете использовать цикл:
[x , y] = [x1, y1]
loop
[x, y] = [x, y] + dir ' a field between the two given fields.
until [x, y] = [x2, x2]