Робин Гуда вам в ленту
У дороги сидит нищий. Из леса выходит Робин Гуд и бросает к ногам нищего мешок золота со словами:
— Я Робин Гуд, я отбираю золото у богатых и отдаю бедным!
Нищий ликует:
— Наконец–то и мне улыбнулось счастье! Я сказочно богат!
Робин Гуд протыкает бывшего нищего мечом, забирает золото и уходит.
Маньяк.
Между тем, в рамках логики работы программы Robin-Hood, всё сделано правильно.
label 1: искать поблизости богатого;
убить богатого, забрать золото;
искать поблизости бедного;
отдать золото бедному;
goto label 1;
На втором проходе цикла происходит именно то, что описано. В результате работы программы мешок с золотом перемещается по локации до тех пор, пока там не останется никого, кроме самого Робин Гуда. После чего программа должна завершиться эксепшном по таймауту поиска.
В некотором смысле, это именно то, что произошло с советским союзом.
Эти мне программисты…. Вот так и ИИ у них как жывой.
Действительно, не тратить же на цель стрелу, когда она так дорого стоит.
И не забудьте про ресурс лука – он тоже небесконечен.
Ресурс меча?
Ресурс меча больше. Его вытер, да изредка поточил – и ура. А лук – тетива снашивается быстро, а делается из бабских волос и смолы. Где найти столько длинноволосых баб, чтобы тетивы постоянно менять? Не напасесси.
А русалки?
перед “искать поблизости бедного”
label 1.5: самоликвидация по причине собственного разбогатения)
Хреновый из тебя программист – так даже цикл до конца не дойдет ни разу.
Кроме того, это концептуальная ошибка. Временное хранилище (аккумулятор) и не должно входить в обзорную область поиска – иначе нарушится логика.