يوجد لدينا أربع روبوتات موزعين على زوايا رقعة مربعة مقسمة إلى مجموعة من المربعات الصغيرة، وفي بعض هذه المربعات يوجد أحجار يمنع على الروبوت أن يمر عليها أو أن يقف على هذا المربع الحاوي لها، وكذلك يمنع لكل روبوت أن ينتقل إلى مربع يحوي روبوت آخر (أي فعلياً يمنع إلتقاء روبوتين)، ويمنع خروج الروبوت من الرقعة ..
يوجد مربع واحد فقط يحوي الكنز

المطلوب:
نريد تصميم كومبايلر خاص بهذه المسألة باستخدام JavaCC، بحيث نمرر ملف نصي له التنسيق التالي:
الطول * العرض (هي أبعاد الرقعة)
عدد النقاط السوداء (عدد المربعات الحاوية على حجارة)
x y (إحداثيات اول حجر)
x y (إحداثيات تاني حجر)
.
.
.
x y (إحداثي آخر حجر)
xx yy (إحداثي نقطة الربح)
حركة يقوم بها أحد الروبوتات مثل
3 u
حركة يقوم بها روبوت آخر أو نفسو ما بتفرق
1 d
.
.
.
آخر حركة يقوم بها أحد الروبوتات
مثال:
ليكن عنا المربع التالي
يكون تنسيق الملف الخاص به :
5*5
3
2 4
3 1
4 3
3 4
3 u
1 d
2 l
4 l
.
.
...etc
3
2 4
3 1
4 3
3 4
3 u
1 d
2 l
4 l
.
.
...etc
اذا كان تنسيق الملف صحيحاً نقوم بتطبيق تحركات الروبوتات المدونة آخر الملف ابتداءً من السطر التالي لإحداثيات نقطة الربح في الملف..وإلا نظهر رسالة خطأ للمستخدم تخبره بالغلط.
عندما يقوم أحد الروبوتات بحركة معينة غير مسموحة نمنعه من الحركة ونبقيه مكانه ونظهر رسالة خطأ للمستخدم على أن الحركة كذا للروبوت رقم كذا غير مسموحة..
الخرج
1- رقم الروبوت الرابح (إن كانت التحركات المعطاة للبرنامج تؤدي بأحد الروبوتات إلى نقطة الربح)
2- طباعة تحركات كل الروبوتات (أي قائمة بالروبوتات مع الإحداثيات التي مروا بها جميعها)