ট্র্যাক
/
Groovy
Groovy
/
অনুশীলনী
/
রোবট সিমুলেটর
রোবট সিমুলেটর

রোবট সিমুলেটর

সহজ

নির্দেশনা

একটি রোবট সিমুলেটর লিখুন।

একটি রোবট কারখানার টেস্ট ফ্যাসিলিটির রোবটের নড়াচড়া যাচাই করার জন্য একটি প্রোগ্রাম দরকার।

রোবটদের তিনটি সম্ভাব্য নড়াচড়া আছে:

  • ডান দিকে ঘোরা
  • বাম দিকে ঘোরা
  • সামনে এগোনো

রোবটদের একটি কাল্পনিক অসীম গ্রিডে রাখা হয়, যেখানে তারা {x,y} কোঅর্ডিনেটে, যেমন {3,8}, একটি নির্দিষ্ট দিকে (উত্তর, পূর্ব, দক্ষিণ বা পশ্চিম) মুখ করে থাকে; উত্তর ও পূর্ব দিকে গেলে কোঅর্ডিনেট বাড়ে।

এরপর রোবট বেশ কিছু নির্দেশনা পায়, আর তখনই টেস্টিং ফ্যাসিলিটি যাচাই করে রোবটের নতুন অবস্থান এবং এটি কোন দিকে মুখ করে আছে।

  • "RAALAL" অক্ষর-স্ট্রিংটির অর্থ:
    • ডান দিকে ঘোরা
    • দুইবার সামনে এগোনো
    • বাম দিকে ঘোরা
    • একবার সামনে এগোনো
    • আবারও বাম দিকে ঘোরা
  • ধরুন একটি রোবট {7, 3} অবস্থানে উত্তর দিকে মুখ করে যাত্রা শুরু করল। তাহলে নির্দেশনার এই ধারাটি চালালে শেষে সেটি {9, 4} অবস্থানে পশ্চিম দিকে মুখ করে থাকবে।

Groovy-তে প্রপার্টি ও ফিল্ড

এই অনুশীলনীতে আপনি হয়তো লক্ষ্য করেছেন যে স্টাবটি getX()-এর মতো গেটার ডিফাইন করে, কিন্তু টেস্টগুলো .x দিয়ে সরাসরি মানটি অ্যাক্সেস করে। এর কারণ Groovy প্রপার্টি যেভাবে ডিফাইন করে। চলুন বিষয়টি ভেঙে দেখি:

  • একটি ফিল্ড হলো ক্লাস, ইন্টারফেস বা ট্রেইটের একটি সদস্য, যা ডেটা সংরক্ষণ করার কাজে ব্যবহৃত হয়।
  • একটি প্রপার্টি হলো ক্লাসের একটি বাইরে থেকে দৃশ্যমান বৈশিষ্ট্য।

Groovy প্রপার্টি সম্পর্কে মূল বিষয়গুলো:

  • Groovy স্বয়ংক্রিয়ভাবে নন-প্রাইভেট ফিল্ডের জন্য গেটার ও সেটার তৈরি করে (আর ফিল্ডটি final হিসেবে চিহ্নিত থাকলে শুধু একটি গেটার)।
  • প্রপার্টিগুলো নাম দিয়েই অ্যাক্সেস করা যায় (এই অনুশীলনীর টেস্টে যেভাবে করা হয়েছে) এবং তখন স্বচ্ছভাবে গেটার বা সেটার কল হয়।
  • প্রচলিত নিয়ম অনুযায়ী, পেছনে কোনো ব্যাকিং ফিল্ড না থাকলেও Groovy প্রপার্টি চিনে নেবে, শর্ত শুধু গেটার বা সেটার থাকা।

এই অনুশীলনীতে আমরা কেবল প্রয়োজনীয় গেটারগুলো উল্লেখ করেছি (আর উপরের নিয়ম অনুযায়ী সেটাই প্রপার্টি), যাতে সঠিক ইমপ্লিমেন্টেশন নিশ্চিত হয়। আপনার সমাধানের জন্য কোন ফিল্ডগুলো (এবং তাদের টাইপ) সবচেয়ে উপযুক্ত, তা আপনি নিজেই ঠিক করতে পারেন।

ফিল্ড ও প্রপার্টি নিয়ে আরও জানতে চাইলে Groovy ডকুমেন্টেশনের ৩.৩ অধ্যায়: ফিল্ড ও প্রপার্টি দেখুন।


সূত্র

একটি বিখ্যাত কোম্পানির ইন্টারভিউ প্রশ্ন থেকে অনুপ্রাণিত।
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Groovy Exercism

রোবট সিমুলেটর শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Groovy ট্র্যাকের 66টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।