یک شبیهساز ربات بنویسید.
مرکز آزمایش یک کارخانهی ربات به برنامهای نیاز دارد که حرکات ربات را بررسی کند.
رباتها سه حرکت ممکن دارند:
رباتها روی یک شبکهی بینهایت فرضی قرار میگیرند، رو به جهت خاصی (شمال، شرق، جنوب یا غرب)، در مجموعهای از مختصات {x,y}، مثلاً {3,8}، که مختصات به سمت شمال و شرق افزایش مییابد.
سپس ربات تعدادی دستور دریافت میکند و در این مرحله، مرکز آزمایش موقعیت جدید ربات و جهتی را که رو به آن است بررسی میکند.
در این تمرین، ممکن است متوجه شده باشید که قطعهکد اولیه getterهایی مثل getX() را تعریف میکند، اما تستها مقدار را مستقیماً با .x میخوانند. این به خاطر نحوهی تعریف ویژگیها در Groovy است. بیایید این موضوع را بشکافیم:
trait است که برای ذخیرهی داده به کار میرود.نکات کلیدی دربارهی ویژگیها در Groovy:
private نیستند getter و setter میسازد (یا فقط یک getter، اگر فیلد با final علامتگذاری شده باشد).getter یا setter بهصورت شفاف فراخوانی میشود.getter یا setter وجود داشته باشد.در این تمرین، ما فقط getterهای لازم را مشخص کردهایم (و طبق توضیحات بالا، در نتیجه ویژگیهای لازم را) تا پیادهسازی درست را الزامی کنیم. خودتان آزادید تصمیم بگیرید کدام فیلدها (و نوعشان) برای راهحل شما مناسبترند.
اگر میخواهید دربارهی فیلدها و ویژگیها بیشتر بدانید، به فصل ۳.۳. فیلدها و ویژگیها در مستندات Groovy مراجعه کنید.