Напишіть симулятор робота.
Випробувальному центру фабрики роботів потрібна програма, яка перевіряє рухи роботів.
Роботи мають три можливі рухи:
Роботів розміщують на гіпотетичній нескінченній сітці. Кожен робот повернутий у певному напрямку (north, east, south або west) і має координати {x,y}, наприклад {3,8}, причому координати зростають у напрямку north й east.
Далі робот отримує низку вказівок, після чого випробувальний центр перевіряє нову позицію робота і те, у якому напрямку він повернутий.
У цій вправі ми, можливо, помітили, що заготовка визначає гетери, як-от getX(), але тести звертаються до значення напряму як до .x. Це зумовлено тим, як Groovy визначає властивості. Розберімо це докладніше:
Ключові моменти щодо властивостей Groovy:
final).У цій вправі ми визначили лише потрібні гетери (а отже, і властивості, як описано вище), щоб спонукати до правильної реалізації. Які саме поля (і яких типів) найкраще підійдуть для нашого рішення - вирішувати нам.
Щоб глибше розібратися з полями та властивостями, зверніться до розділу 3.3 «Поля та властивості» у документації Groovy.