Простой ответ - member?
. Если вы хотите узнать, существует ли данный элемент в списке, member? item wallcoor
вернет истину, если элемент в wallcoor
, и ложь, если это не так.
Но я боюсь, что вы сравниваете здесь яблоки и апельсины. Из вашего кода видно, что heading-equ
дает вам уравнение линии, описывающей путь черепахи в данном месте с заданным заголовком, но вы сравниваете это со списком точек, описывающих стену. Я бы подумал, что вместо этого вы посмотрите, где уравнение для пути пересекается с уравнением для стены, чтобы увидеть, где черепаха ударит о стену. Более того, что если черепаха упадет в стену между -17 11 и -16, 11? Расположение черепахи не всегда в центре участка. Конечно, я, возможно, полностью неверно истолковал, что такое heading-equ
.
Вопрос, похожий на этот, задается в Как реализовать предотвращение препятствий в Netlo go, используя концепцию двух пересекающихся линий (заголовок черепахи против стена из заплат) . Вы можете это проверить.
Просто для того, чтобы подробно остановиться на подходе пересекающейся линии, ваша стена имеет уравнение y = 11
Если у вас есть уравнение для пути черепахи, то вы можете выяснить, где эти две линии пересекаются, решая их одновременно. Затем вы можете посмотреть, находится ли эта точка пересечения между (скажем) x > -9.5 and x < -0.5
, чтобы увидеть, находится ли пересечение в этом дверном проеме. (Я поставил дверь между краями пятен -10 11 и 0 11.) Вам также необходимо проверить, находится ли пересечение за пределами мира (x < -17.5 or x > 17.5
). Если это так, черепаха поразит край света, прежде чем ударит о стену.
Существует еще один общий подход к этому, заключающийся в том, что черепаха смотрит вперед на препятствие. В Библиотеке моделей вы найдете два хороших примера в разделе «Примеры кода»: «Пример заглядывания вперед» и «Пример следования стенам».
Надеюсь, это поможет, Чарльз