গল্ফ মি একটি ওওপি!
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের দুটি গুরুত্বপূর্ণ উপাদান হ'ল উত্তরাধিকার ও রচনা। একসাথে, তারা সমস্যাগুলি সমাধানের জন্য সহজ অথচ শক্তিশালী শ্রেণীর শ্রেণিবদ্ধতা তৈরি করার অনুমতি দেয়। আপনার কাজটি শ্রেণি শ্রেণিবিন্যাস সম্পর্কে বিভিন্ন ধরণের বক্তব্যকে বিশ্লেষণ করা এবং শ্রেণিবিন্যাস সম্পর্কে প্রশ্নের উত্তর দেওয়া।
ইনপুট
শ্রেণীর শ্রেণিবিন্যাস সম্পর্কে একটি বিবৃতি এবং প্রশ্নগুলির একটি সিরিজ, কোনও ফাইল বা স্ট্যান্ডার্ড ইনপুট থেকে পড়া, আপনার ভাষার জন্য যেটি সেরা। আপনি যদি ফাইল অপশনটি ব্যবহার করেন তবে ফাইলের নামটি আপনার কোডের প্রথম আর্গুমেন্ট হিসাবে (ফাংশন আর্গুমেন্ট বা কমান্ড লাইন আর্গুমেন্ট, আপনি যে কোনওটি বেছে নিন) হিসাবে পাস হবে। ফর্ম্যাটটি নিম্নরূপ:
<statement> : <name> is a <name>. | <name> has a <name>.
<question> : Is <name> a <name>? | Does <name> have a <name>?
<name> : a-z | A-Z | sequence of alphanumerics or underscores, starting with a letter
ইনপুটটি সর্বদা বিবৃতি, তারপরে প্রশ্ন থাকবে। সমস্ত শ্রেণীর নাম একটি বড় ইংরেজী বর্ণ ( A-Z
) দিয়ে শুরু হবে এবং সমস্ত সদস্যের নাম একটি ছোট অক্ষরের ইংরেজি বর্ণ ( a-z
) দিয়ে শুরু হবে । সমস্ত নাম কেস-সংবেদনশীল - ABC123
এর মতো শ্রেণি নয় Abc123
।
তাহলে - এখানে কোনো চক্রাকার উত্তরাধিকার হবে না B
থেকে উত্তরাধিকারী A
, A
থেকে অধিকার পাইবে না B
বা কোনো B
'র সন্তান।
কেবল শ্রেণীর নামগুলি একটি শ্রেণিবিন্যাসের অংশ হবে - যেমন বিবৃতি যেমন ঘটে foo is a bar.
বা document has a name.
না ঘটে।
আউটপুট
সত্যের বা মিথ্যা মানগুলির একটি সিরিজ, প্রশ্নের উত্তর হিসাবে, স্ট্যান্ডার্ড আউটপুটকে লেখা বা আপনার ফাংশনের রিটার্ন মান হিসাবে। যদি আপনার কোনও প্রশ্নের উত্তর দেওয়ার জন্য পর্যাপ্ত তথ্য না থাকে (উদাহরণস্বরূপ এমন প্রশ্নগুলির মধ্যে যেগুলি নামগুলির সাথে জড়িত আপনি বিবৃতিতে দেখেননি), একটি মিথ্যা মান দিয়ে উত্তর দিন।
পরীক্ষার মামলা
মামলা 1:
ইনপুট:
B is a A.
C is a B.
A has a foo.
Does B have a foo?
Is C a A?
Is D a A?
আউটপুট:
True
True
False
কেস 2:
ইনপুট:
Cop is a Person.
Criminal is a Person.
Sheriff is a Cop.
Crooked_Cop is a Cop.
Crooked_Cop is a Criminal.
BankRobber is a Criminal.
Cop has a badge.
Criminal has a criminal_record.
Person has a name.
Is Crooked_Cop a Person?
Does Criminal have a name?
Is Crooked_Cop a BankRobber?
Does Person have a potato?
Is Cop a Cop?
আউটপুট:
True
True
False
False
True
বিধি
- আপনি কোনও ফাংশন বা কোনও প্রোগ্রাম দিয়ে উত্তর দিতে পারেন
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ
- এটি কোড-গল্ফ , তাই বাইট জেতে সংক্ষিপ্ততম সঠিক উত্তর
- বিজয়ী উত্তরটি এক সপ্তাহের মধ্যে বেছে নেওয়া হবে
শুভকামনা, এবং ওওপি আপনার সাথে থাকুক!
লিডারবোর্ড
এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে লিডারবোর্ড তৈরি করে) ক) ভাষা প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।
আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:
## Language Name, N bytes
N
আপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:
## Ruby, <s>104</s> <s>101</s> 96 bytes
যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:
## Perl, 43 + 2 (-p flag) = 45 bytes
আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
Criminal is a Person
। Person has a name
।
Does Criminal have a name?
সমানTrue
? সমস্ত বস্তুর একটি নাম আছে?