mbomb007 আমাদের একটি স্বতঃপ্রণালী প্রোগ্রাম তৈরি করতে বলেছে । এটি একটি আকর্ষণীয় চ্যালেঞ্জ, তবে আমি ব্যক্তিগতভাবে আমার প্রোগ্রামগুলিকে স্ব-বিয়োগাত্মক হতে উত্সাহিত করতে পছন্দ করি না। আমি ভাবতে চাই যে, প্রতিটি প্রোগ্রামের কেন্দ্রে একটি সুন্দর প্রজাপতি ভেঙে যাওয়ার অপেক্ষায় থাকে।
এর মতো, আমার প্রথম কোড গল্ফ চ্যালেঞ্জের জন্য, স্ট্যাক এক্সচেঞ্জকে একটি প্রজাপতির রূপান্তর করার জন্য আমি চ্যালেঞ্জ জানাই। আপনার প্রোগ্রামটির নিজস্ব কোডটি ইনপুট এবং আউটপুট হিসাবে I am a caterpillar!
একই ভাষাতে অন্য প্রোগ্রামের কোডের পরে গ্রহণ করা উচিত (আপনি আউটপুটগুলির মধ্যে একটি বিভাজক রাখতে পারেন বা নাও পারেন ... তবে আমরা প্রজাপতিগুলি কথা বলছি, তাই প্রাকৃতিকতা গণনা করা হয়!)। এই দ্বিতীয় প্রোগ্রাম আউটপুট করা উচিতI am a beautiful butterfly!
রূপান্তর: এই প্রোগ্রামটি নিজেই পরিবর্তিত হওয়া উচিত, এ কারণেই এটি নিজেকে ইনপুট হিসাবে পাস করা হচ্ছে। আমি একটি বিরক্তিকর নেস্টেড প্রোগ্রাম চাই না যা I am a caterpillar!
মুদ্রণ উত্স কোড অনুসারে একটি মুদ্রণ বিবৃতি ছাড়া কিছুই নয় । আপনাকে কোডটি নিজেই রূপান্তর করতে হবে, তাই সর্বাধিক বিরক্তিকর গ্রহণযোগ্য উত্তর হ'ল যা মুদ্রণ করে I am a caterpillar
, তারপরে ইনপুট (যা কোড হতে পারে) এর বাইরে একটি স্ট্রিং ছড়িয়ে দেয় এবং প্রিন্ট করে। অবশ্যই এটি লেখার জন্য খুব জটিল সামান্য প্রয়োজনীয়তা, তাই এটি "চ্যালেঞ্জের মনোভাব" হিসাবে বিবেচনা করা উচিত। আনুষ্ঠানিক প্রয়োজনীয়তাটি সেট করতে চলেছে "যদি আপনার প্রোগ্রামটি যদি আপনার প্রোগ্রামের সমান দৈর্ঘ্যের একটি এলোমেলো স্ট্রিং দেওয়া হয় I am a butterfly
তবে দ্বিতীয় প্রোগ্রামটি চালিত হওয়ার সময় মুদ্রণের 5% এরও কম সুযোগ থাকা উচিত ।"
সারাংশ:
- একটি প্রোগ্রাম লিখুন যা, যখন ইনপুট হিসাবে তার নিজস্ব কোড সরবরাহ করা হয়,
I am a caterpillar!
উত্স কোডের একটি ব্লক অনুসরণ করে (তাদের মধ্যে একটি সীমানা যুক্ত করে বা না দিয়ে) প্রিন্ট করে। - উত্স কোডের এই দ্বিতীয় ব্লকটি যখন একই ভাষা সংকলিত / ব্যাখ্যা করা হয়, তখন মুদ্রণ করে
I am a beautiful butterfly!
- যদি আপনার প্রোগ্রামটিকে তার নিজস্ব উত্স কোডটি ইনপুট হিসাবে খাওয়ানো না হয় এবং পরিবর্তে তার নিজস্ব কোডের সাথে মেলে না এমন অক্ষরের একটি এলোমেলো স্ট্রিং দেওয়া হয়, ফলাফলটি অবশ্যই
I am a butterfly!
কমপক্ষে 95% রচনা করতে বা সংকলন / ব্যাখ্যা করতে ব্যর্থ হতে হবে স্ট্রিংস (স্পিরিট: আপনি ইনপুট থেকে নিজের উত্স কোডটি পড়বেন এবং এটি একটি প্রজাপতিতে একসাথে সেলাই করবেন)।- আপনার পক্ষে এটি প্রমাণ না করার জন্য আমি স্বাচ্ছন্দ্যবোধ করছি, যতক্ষণ আপনি রূপান্তর ধারণার ধারণাকে ধরে রেখেছেন, নিজের কোডটি পরিবর্তন করছেন তবে আপনি যদি নিজের ইনপুটগুলি ব্যবহার করার জন্য লুফোল গেমস খেলতে চেষ্টা করছেন তবে আশা করি এটা প্রমাণ করার জন্য.
- স্ট্যান্ডার্ড লুফোলস প্রয়োগ হয়
আমি এগুলি তাদের সৌন্দর্যের দ্বারা বিচার করা উচিত, তবে এটি একটি নির্ধারিত অ-পরিমাণগত পদ্ধতির, তাই সাধারণ "বাইট সংখ্যা" রুটটি বিচার করতে ব্যবহৃত হতে পারে
বোনাস : -20% - আপনার প্রোগ্রামের প্রথম 3 টি অক্ষরের সাথে মেলে না এমন কোনও 3 অক্ষরের স্ট্রিং চয়ন করুন। যদি আমি শুঁয়োপোকা প্রোগ্রামটি চালনা করি তবে ইনপুটটি পরিবর্তন করুন যাতে প্রথম 3 টি অক্ষর নির্দিষ্ট বর্ণগুলিতে পরিবর্তিত হয়, I am Batman!
পরিবর্তে মুদ্রণ করুন। সর্বদা ব্যাটম্যান থাকুন। ( একই র্যান্ডম স্ট্রিং বিধিগুলি এর জন্য প্রয়োগ হয় ... রূপান্তর! )
তুচ্ছ উদাহরণ (অজগর):
"""
print "I am a beautiful butterfly!"
#print "I am Batman!"
"""
import sys
code = sys.stdin.read()
if code.startswith("YYZ"):
# swap the comments between the print statements
code = code.replace("#print", "_a").replace("print", "#print").replace("_a", "print")
code = [3:] # remove """ or XYZ
code = code.split('"""')[0]
print "I am a caterpillar!"
print code