শীশ, এটি কি সত্যিই চতুর্থ? আপনার সমস্ত বৃদ্ধদের জন্য, মূল চ্যালেঞ্জ একই, তবে আমরা একটি কাস্টম ভাষার পরিবর্তে জাভা ব্যবহার করছি। আপনার আগ্রহের ক্ষেত্রে এখানে বিগত তিনটি কোডবোট চ্যালেঞ্জ রয়েছে।
কোডবটসের লক্ষ্য হ'ল আপনার বটকে যতটা সম্ভব ভাইরাল করা । প্রতিটি বট একটি পতাকা বহন করে, এবং আপনি নিশ্চিত করুন যে আপনার পতাকা করতে হবে সর্বত্র ।
এপিআই
বটগুলি একটি প্রমিত "প্রোটোকল" অনুসরণ করবে এবং নীচের পদক্ষেপের সাথে সুসংগতভাবে বোটগুলি অগ্রগতি করবে:
IPAddress selectMessageRecipient()
বট কে চয়ন করতে দেয় যে সে কে "বন্ধুত্বপূর্ণ" বার্তা প্রেরণ করতে চায়।Message sendMessage()
কোনও বটকে বার্তা পাঠানোর বিষয়বস্তু চয়ন করতে অনুমতি দেয় chooseprocessMessage(IPAddress, Message)
বট প্রাপ্ত প্রতিটি বার্তার জন্য ডাকা হয়।FunctionType selectFunctionToBlock()
বর্তমান টার্নের জন্য ওভাররাইট করা থেকে একটি ফাংশন আটকে দেয়। পদক্ষেপ 7 দেখুন।IPAddress selectAttackTarget()
কোন বটকে তিনি ডিডিএস করতে চান তা চয়ন করতে অনুমতি দেয়। DDOS আক্রমণ সফল হয় যদি বট একই সাথে 3 টি বট দ্বারা চিহ্নিত করা হয়। যদি কোনও আক্রমণ সফল হয়, তবে আক্রমণকারীদের প্রত্যেকে 6 এবং 7 পদক্ষেপ করতে পারে performreadData(ReadonlyBot)
কোনও বটকে অরক্ষিত বটগুলিতে সঞ্চিত ডেটা পড়ার অনুমতি দেয়।FunctionType selectFunctionToReplace()
এই চ্যালেঞ্জের শিরা । আপনার বট থেকে তাদের বটে অনুলিপি করতে আপনাকে 1 টি ফাংশন (এখানে তালিকাভুক্ত 8 টির মধ্যে) বাছাই করার অনুমতি দেওয়া হয়েছে। তারপরে, আপনার ফাংশনটি তাদের পরিবর্তে ডাকা হবে । যদি একাধিক বট একই ফাংশনটি নির্বাচন করে তবে একটি এলোমেলো সফল হবে।String getFlag()
গেমের শেষে বলা হয়, এবং আপনার জমা দেওয়ার মতো একটি স্ট্রিং ফিরিয়ে আনা উচিত। আপনার ফাংশনটি সর্বদা একই স্ট্রিংটি ফেরত পাঠায়। গেমের শেষে সর্বাধিক পতাকা সহ জমাটি জয়লাভ করে।
সংগ্রহস্থল
আপনার কাছে 3 টি স্টোরেজ, একটি ঠিকানাবুক , একটি লগ এবং একটি ভেরিয়েবল রয়েছে । আপনার ফাংশনটি চলমান বটটিতে এই ফর্মগুলির সঞ্চয় স্থানটি স্থানীয় (তাই যদি আপনার ফাংশনটি অনুলিপি করা হয় তবে এই বস্তুর প্রত্যেকটির বিষয়বস্তু আলাদা হবে)। এই সমস্ত অবজেক্ট ম্যানুয়ালি সংশোধন বা সাফ করা যেতে পারে। এই অবজেক্টগুলি পেতে, আপনার ক্লাসে একটি গিটার রয়েছে (উদাঃ getLog()
)।
ঠিকানার বই একটি তালিকা সঞ্চয় করে IPADDRESS একটি সঙ্গে, প্রতিটি AddressType , যা আপনি ঠিকানাগুলি বিভিন্ন ধরনের শ্রেণীভুক্ত করতে পারবেন। ঠিকানার বই সবসময় অন্তত 1 টি ঠিকানা উপস্থিত থাকবে (যদি এটি সাফ করা হয়, একটি র্যান্ডম এক যোগ করা হবে)। একাধিক আইপিএড্রেসগুলি পেতে আপনার ঠিকানাবুক সাফ করার অনুমতি নেই।
লগিন ব্যবস্থা নেওয়া সমস্ত ক্রিয়া, সেইসাথে তথ্য একটি তালিকা সঞ্চয় করে। এটিতে সমস্ত সফল আক্রমণের ইতিহাসও রয়েছে (যদিও আপনি জানেন না যে তারা কোন কার্যগুলি ওভাররোট করে)
ভেরিয়েবল বস্তুর আপনি STRING একটি স্ট্রিং নাম সংযুক্ত ভেরিয়েবল সঞ্চয় করতে দেয়। গেম শুরুর সময়, চলকগুলিতে একটি একক ভেরিয়েবল থাকবে,ID
, যা এলোমেলোভাবে উত্পাদিত আইডি থাকে যা আপনার বট ধরণের স্বতন্ত্র।
আপনার অন্যান্য অ্যাক্সেস ফাংশন রয়েছে:
int getTurnNumber()
বর্তমান টার্নের সাথে একটি পূর্ণসংখ্যা ফেরত দেয়bool functionsMatch(ReadonlyBot, FunctionType)
রিডনলিবটের ফাংশনটি আপনার সাথে মেলে কিনা তা পরীক্ষা করেIPAddress personalAddress()
আপনার আইপিএড্রেস ফেরত দেয়
কীভাবে বাস্তবায়ন করা যায়
- আপনি গিথুব থেকে কোডটি পেতে পারেন
- আপনার বটটি
\bots
ফোল্ডারে যুক্ত করুন এবং তারপরে আপনার বটটিতে একটি রেফারেন্স যুক্ত করুনcontroller\CodeBotFactory.java
- আপনার বট অবশ্যই বাড়াতে হবে
codebots.bot.CodeBot
বাcodebots.bots.DefaultCodeBot
- আপনি জাভা 8 প্রয়োজন যদি আপনি নিয়ামকটি চালাতে চান।
- আপনি কোডটি চালাতে পারেন (ধরে নিচ্ছেন আপনি
/src
ফোল্ডারে আছেন)javac codebots\*.java
সংকলন ব্যবহার করে, তারপরেjava codebots.Main
চালাতে পারেন। - আপনি পারে না কোনো অ ধ্রুবক সদস্য ভেরিয়েবল আপনার ক্লাসে
- প্রতিবিম্ব অনুমোদিত নয়।
- উপরে তালিকাভুক্ত পদ্ধতিগুলির বাইরে বটগুলির মধ্যে (একই বা বিভিন্ন ধরণের) যোগাযোগের ফর্মগুলি অনুমোদিত নয়।
- বোবা এবং / অথবা আত্মঘাতী বটগুলি অনুমোদিত, তবে সমস্ত বটগুলি বিদ্যমান এন্ট্রিগুলির তুলনায় কার্যত পৃথক হওয়া উচিত।
- আপনি যদি আপনার বট এলোমেলোতা চান তবে ব্যবহার করুন
getRandom()
- আপনার কোড দক্ষ রাখতে চেষ্টা করুন। আমি প্রোফাইলিং এবং নিয়ামককে দ্রুত তৈরি করতে বেশ ভাল সময় ব্যয় করেছি।
স্কোর
105.2501 এক্সপেলিয়ার্স!
104.5803 আমি সহায়তা করছি!
104.2746 আমি কে?
103.8529 বোবা বোট
103.2028 Replacer
102.7045 বিশৃঙ্খলা
102.4046 হারমেট বট
102.2849 Swarmer
100.5598 এলোমেলো বট আপনাকে ভালোবাসে
99.966 আস্থা বিশ্বস্ত!
99.0185 কোডবটস.বটস.ডাফল্টকোডবট
91.2942 কোডবটস.বটস.মার্কডবট
91.1423 কেবল আপনার বন্ধুত্বপূর্ণ প্রতিবেশীর মেইল সরবরাহকারী রোবট।
89.4645 নাল