কার্য
একটি সাধারণ আইআরসি বট তৈরি করুন যা ব্যবহারকারীর অভ্যর্থনা জানানোর মতো সাধারণ কাজ করে।
বিস্তারিত
(আপনি এই আরএফসি নথিটি দেখতে পারেন may )
এগুলি সম্পাদন করে এমন একটি সম্পূর্ণ প্রোগ্রাম লিখুন:
প্রোগ্রামটি ইনপুট
nicknameএবংrealnameব্যবহারকারীর কাছ থেকে।- সমস্ত
nicknameএবংrealnameকোন ফর্মটি[A-Za-z0-9]+মঞ্জুর করা উচিত, তবে অন্য ফর্মগুলি অনুমোদিত কিনা তা গুরুত্বপূর্ণ নয়। উদাহরণস্বরূপ, ব্যবহারকারী যদি1234qwertyহিসাবেnicknameএবং5319009যেমন চানrealnameতবে প্রোগ্রামটি সেই নামগুলি ব্যবহার করা উচিত, তবে প্রোগ্রামটি^^☆Rick Astley☆^^(যা বর্ণহীন ও দশমিক অন্তর্ভুক্ত) হিসাবে (nicknameবাrealname) হিসাবে ব্যবহার করতে পারে বা না পারে তা গুরুত্বপূর্ণ নয়, এমনকি এই নামটি প্রত্যাখ্যানও হতে পারে বলে ভেবেছিল সার্ভার দ্বারা
- সমস্ত
প্রোগ্রামটি
serverAddressব্যবহারকারী থেকে ইনপুট দেয়।- আকারে
serverAddressহয়serverIP:serverPort, যেখানেserverIPসার্ভারের IP ঠিকানা নেই এবংserverPortসার্ভারের পোর্ট NUM হতে পারে।
- আকারে
প্রোগ্রামটি
serverPortআইআরসি সার্ভারে পোর্টের সাথে সংযোগ স্থাপন করেserverIPএবং এটির নামnicknameএবং রিয়েল নামটিrealnameপ্রেরণ করেUSER realname 0 * :realnameএবং এটির মাধ্যমে সেট করা উচিতNICK nickname।প্রোগ্রামটি এমন একক ইনপুট
channelNameদেয় যা অন্তর্ভুক্ত না#করে এবং চ্যানেলে যোগদান করে#channelName।একটি ব্যক্তিগত বার্তা পাঠান
Hello, world!করতে#channelNameভালো চ্যানেল:PRIVMSG #channelName :Hello, world!তারপরে, প্রোগ্রামটি এগুলি করে:
উ: কেউ যোগদান করে তাকে বলে অভিবাদন যদি
Hello, @!করতে#channelNameহয়, যেখানে @ তাকে ডাক নাম হয় / তার।বি। প্রোগ্রামটি যদি লাথি মেরে থাকে তবে পুনরায় যোগদানের চেষ্টা করুন।
গ। যদি কোনও ব্যক্তিকে লাথি দেওয়া বা নিষিদ্ধ করা হয় তবে বলুন
POW HAHA।D. যদি কোনও ব্যক্তি (
PARTবাQUIT) চলে যায় তবে বলুনGoodbye, @!, @ কোথায় তার ডাকনাম।E. কেউ যদি কিছু পাঠ্য সহ
Turing testবা বলেনturing test, বলুনI'm a human!।এফ। যদি কেউ কিছু পাঠ্য সহ বলে থাকে তবে সার্ভারে
6*9প্রেরণQUIT :42করে প্রস্থান করুন ।জি। যদি কেউ
all your base are belong to us(কেস-সংবেদনশীল) সহ কিছু পাঠ্য বলেQUIT :What you say!থাকে তবে সার্ভারে প্রেরণ করে প্রস্থান করুন ।এইচ। যদি কেউ বলেন যে কোনও স্থানের পূর্ববর্তী কিছু পাঠ্য এবং উপরের ক্রিয়াকলাপটি পাঠ্য দ্বারা সম্পাদিত হয় না, তবে পাঠ্যের সকলের চারকোডের যোগফল (প্রথম স্থান ব্যতীত) লিখুন।
যদি একটি ত্রুটি ঘটেছে
যদি কোনও ত্রুটি (যেমন সংযোগ ত্রুটি বা অবৈধ nickname) ঘটে থাকে তবে আপনি যা করতে চান তা করতে পারেন। উদাহরণস্বরূপ, যদি nicknameইতিমধ্যে ব্যবহৃত হয়, প্রোগ্রামটি বন্ধ হয়ে যেতে পারে, nicknameব্যবহারকারীর কাছ থেকে নতুন পায় বা স্বয়ংক্রিয়ভাবে পরিবর্তন করে nicknameআবার চেষ্টা করতে পারে।
সীমাবদ্ধতা
কার্যক্রম
- আইআরসি ক্লায়েন্ট / বট তৈরির জন্য কোনও অভ্যন্তরীণ ফাংশন বা লাইব্রেরি ব্যবহার করা উচিত নয়। অর্থাত্ আইআরসি ক্লায়েন্ট লাইব্রেরির মতো কিছু
- কোনও ইনপুট আসার আগে এটি কী ইনপুট করবে তা অনুরোধ জানানো উচিত । উদাহরণস্বরূপ, ইনপুট আগে
serverAddress, এটা সূচিত করা উচিতWrite the address of server:,serverIP:serverPort >,serverAddress >, অথবা কিছু টেক্সট ব্যবহারকারী চিনতে পারেন। - ইউটিএফ -8 ব্যবহার করে বেশ কয়েকটি আইআরসি সার্ভারে কাজ করা উচিত। (যেমন একক সার্ভারের জন্য নয়)
- সার্ভারে পাঠানো বার্তাগুলি হওয়া উচিত নয়
NOTICE। (আরএফসি 2812, 3.3.2 বিজ্ঞপ্তি:NOTICEএবং এর মধ্যে পার্থক্যPRIVMSGহ'ল স্বয়ংক্রিয় জবাবগুলি কোনওNOTICEবার্তার জবাবে প্রেরণ করা উচিত নয় )) - অনুরোধটি (
#channelNameবাnickname) থেকে এসেছে এমন বার্তা পাঠানো উচিত । - অবশ্যই
PONGযখনPINGএড করা উচিত ।
পুনশ্চ
ঠিক আছে, আমি এটি তৈরি করেছি, কারণ আইআরসি বট সম্পর্কে কোনও ধাঁধা ছিল না।
সম্পাদন করা
@ ডেমকির মন্তব্য পড়ার পরে আমি বিজয়ী বাছাইয়ের নিয়মটি পরিবর্তন করেছি।
ডিফল্ট
bonus= +0যদি কোনওভাবে প্রোগ্রাম কোনও চ্যানেলের সাথে সংযোগ করতে পারে (তা না হলেও
#channelName),bonus= 1প্রোগ্রামটি যদি পদক্ষেপটি 1 ~ 5 করতে পারে,
bonus* = 2।প্রতিটি কাজের জন্য A ~ H পদক্ষেপ 6,, যদি প্রোগ্রামটি প্রয়োগ করে,
bonus* =1.2।প্রতিটি ছয়টি বিধিনিষেধের জন্য, যদি প্রোগ্রামটি অনুসরণ করে,
bonus* =1.05।
এবং score = int(codelength/bonus)।
সর্বনিম্ন স্কোর সহ প্রোগ্রামটি বিজয়ী। দুটি উত্তরের যদি একই স্কোর থাকে তবে সর্বাধিক ভোট সহ উত্তর জিতবে।
সম্পাদনা সম্পাদনা: আমি মনে করি 1.2এবং 1.054 এবং 5 ধাপে কিছুটা বড় সমন্বয় করা উচিত .. আপনি এই সম্পর্কে কী ভাবেন?
বিজয়ীর সিদ্ধান্ত নেওয়া হয়েছে, তবে আমি মনে করি খুব কম এন্ট্রি ছিল।
যে কেউ এখনও কোড জমা দিতে পারেন ..: পি