স্কোর
জমাগুলি প্রবেশ করায় এই বিভাগটি পূরণ করা হবে।
সাধারণ
1. bopjesvla Perl 54
2. edc65 Javascript (ES6) 91
3. name language score
4. name language score
5. name language score
বোনাস রাউন্ড
1. name language score
2. name language score
3. name language score
4. name language score
5. name language score
কারেল জে আলফাবোট
পটভূমি
জাভার জনপ্রিয় পরিচিতি কোর্স হলেন কারেল জে রোবট (আমি নিজে এটি ব্যবহার করছি)। রোবটটি রাস্তাগুলির গ্রিড (পজিটিভ পূর্ণসংখ্যার ওয়াই-কো-অর্ডিনেটস) এবং অ্যাভিনিউগুলি (পজিটিভ ইন্টিজার এক্স-কো-অর্ডিনেটস) পাশাপাশি বিপারদের সাথে যোগাযোগ করে, যা গ্রিডে স্থাপন এবং সংরক্ষণ করা যেতে পারে (নোট করুন যে কারেল এবং কোনও বিপার কেবল জালিতে থাকতে পারে) পয়েন্ট)। কারেল (রোবট) কেবল পাঁচটি ক্রিয়া সম্পাদন করতে হবে: 1 দিয়ে এগিয়ে যান, জায়গায় রেখে বাম দিকে ফিরে যান, একটি বীপার নামিয়ে রাখুন, একটি বিপার বাছাই করুন এবং নিজেকে বন্ধ করুন।
আমার কম্পিউটার সায়েন্স ক্লাসে, আমাদের প্রথম অ্যাসাইনমেন্টগুলির মধ্যে একটি হ'ল কীভাবে ডানদিকে ঘুরিয়ে, ঘুরে দাঁড়াতে, এবং 1 দ্বারা এগিয়ে যাওয়ার এবং একটি বিপার রেখে দেওয়ার সম্মিলিত ক্রিয়া সম্পাদন করা শিখতে l কিছু দিন পরে একটি কার্যনির্বাহী হ'ল এই পদ্ধতিগুলি ব্যবহার করা এবং বর্ণমালার অক্ষর তৈরি করতে নতুন পদ্ধতি রচনা করা।
স্বাভাবিকভাবেই, আমি যখন এই কার্যভারটি শেষ করেছি, আমি বর্ণমালার প্রতিটি অক্ষর, পাশাপাশি দশটি সংখ্যাসূচক সংখ্যা তৈরির জন্য আরও পদ্ধতি লিখেছি এবং আমি রোবোটের বাইরে কীভাবে ওয়ার্ড প্রসেসর তৈরি করতে পারি তা নির্ধারণ করার পরিকল্পনা করি, যেখানে একটি স্ট্রিং STDIN এ প্রবেশ করানো হত এবং রোবটটি চিঠিগুলির অনুরূপ এমনভাবে গ্রিডে বিপারকে রাখবে।
যতবার আমি private void draw#প্রতিটি চরিত্রের জন্য লিখেছি #, আমি তার পরে একটি মন্তব্য যুক্ত করেছি যা আমাকে যে আদেশগুলি প্রয়োজন তার ক্রমটির সংক্ষিপ্ত বিবরণ জানাবে।
আমার নিকট আমার নীচের কমান্ডগুলি (সিউডোকোডে লিখিত) রয়েছে (স্পষ্টকরণ - এগুলি কেবলমাত্র কার্যকর আদেশ)।
Turn Left
Rotate the robot 90˚ counterclockwise
Abbreviated as "l"
Turn Right
Rotate the robot 90˚ clockwise
Abbreviated as "r"
Move
Move one space forwards
Abbreviated as "m"
Put Beeper
Put a beeper on the spot that Karel is on
Abbreviated as "p"
Drop Beeper
Move, then Put Beeper
Abbreviated as "d"
Turn Around
Turn Left, then Turn Left
Abbreviated as "a"
পরিবেশ
রোবট অবশ্যই নিম্নলিখিত ক্রমে এগিয়ে যেতে হবে।
- নূন্যতম অঞ্চলের 5xN আয়তক্ষেত্রের নীচে বাম কোণে রোবটটি শুরু হবে চিঠিটি আঁকতে হবে।
- রোবট চিঠিটি আঁকবে।
- রোবটটি আয়তক্ষেত্রের নীচে ডান কোণে চলে আসে।
- রোবট দুটি স্পেস ডানদিকে নিয়ে যায় এবং অবশ্যই উত্তর / উপরে মুখোমুখি হয়
একটি উদাহরণ মাধ্যমে কাজ করা যাক। ধরুন আমরা আকর্ষণ করতে চাই A। রোবটের অবস্থান হ'ল অক্ষর যা এর দিক নির্দেশ করে (উত্তর, দক্ষিণ, পূর্ব, পশ্চিম)। চিঠিটি মূলধন করা হয় যদি রোবটটি একটি বিপার এবং ছোট হাতের স্পট নিয়ে থাকে তবে যদি রোবটটি কোনও বিপার ছাড়াই কোনও স্থানে থাকে। oবিপার এবং দাগগুলি উপস্থাপন করে. বিপার ছাড়াই দাগগুলি উপস্থাপন করে।
আমরা পরে দেখতে হবে, Aএটি হয়।
.ooo.
o...o
ooooo
o...o
o...o
এখানে একটি সম্ভাব্য সমাধান।
Grids ..... ..... ..... ..... ..... ..... ..... ..... .....
..... ..... ..... ..... ..... ..... ..... ..... .....
..... ..... ..... N.... E.... oE... ooE.. oooE. oooW.
..... ..... N.... o.... o.... o.... o.... o.... o....
n.... N.... o.... o.... o.... o.... o.... o.... o....
Letters p d d r d d d a
..... ..... ..... ..... ..... n.... e.... .E... .oE..
..... ..... ..... ..... N.... o.... o.... o.... o....
ooWo. oWoo. Wooo. Nooo. oooo. oooo. oooo. oooo. oooo.
o.... o.... o.... o.... o.... o.... o.... o.... o....
o.... o.... o.... o.... o.... o.... o.... o.... o....
m m m r d m r d d
.ooE. .oooe .ooos .ooo. .ooo. .ooo. .ooo. .ooo.
o.... o.... o.... o...S o...o o...o o...o o...o
oooo. oooo. oooo. oooo. ooooS ooooo ooooo ooooo
o.... o.... o.... o.... o.... o...S o...o o...o
o.... o.... o.... o.... o.... o.... o...S o...E
d m r d d d d l
mmlচতুর্থ বুলেটটি শেষ করার চূড়ান্ত অন্তর্নিহিত কারণ এটি প্রতিটি অক্ষরে উপস্থিত রয়েছে এবং কারণ আমি উপরের প্রস্তাবিত সমাধানটিতে ফিরে গিয়ে আরও দুটি কলাম যুক্ত করতে চাই না।
সুতরাং, একটি সমাধান করা Aহয় pddrdddammmrdmrdddmrddddlmml।
মনে রাখবেন এটি আপনার সমাধান হতে হবে না। আপনার অ্যালগরিদম প্রতিটি স্তম্ভের মধ্য দিয়ে যেতে পারে, সঠিক জায়গায় বিপার রেখে এবং অন্যান্য বিপারগুলি কোথায় স্থাপন করা হয়েছে বা কোথায় স্থাপন করা হবে তার উপর নির্ভর করে না। আপনার অ্যালগরিদম কী তা বিবেচনা না করেই, রোবট গ্রিডে প্রতি স্থানটিতে কেবল একটি বিপার রাখতে পারে।
কার্যক্রম
আপনার প্রোগ্রামটি তার ইনপুট হিসাবে লেটারের গ্রিডটি কী হবে তার একটি 5xN গ্রিড গ্রহণ করবে। নোট করুন যে ইনপুটটিতে কোনও রোবট নেই; রোবটটি উত্তর দিকে মুখ করে নীচে বাম দিকে (দক্ষিণ-পশ্চিম) কোণে রয়েছে বলে ধারণা করা হচ্ছে।
আউটপুট হ'ল অক্ষরের ক্রম যা ক্রমের জন্য শর্টহ্যান্ড।
নমুনা ইনপুট
.ooo.
o...o
ooooo
o...o
o...o
o...o.ooooo
o...o...o..
ooooo...o..
o...o...o..
o...o.ooooo
নমুনা আউটপুট
pddrdddammmrdmrdddmrddddlmml
prmmmlmlmmdrdrdddlmlmmdrdrmmmdrddddlmmlprdddlmldmmrmrmdmlmldmmrdrddddrmmmdlmml
এটি কোড গল্ফ, ফেলা। স্ট্যান্ডার্ড সিজি বিধি প্রযোজ্য। বাইটস মধ্যে সংক্ষিপ্ত কোড।
বোনাস রাউন্ড
বিধি
আপনি যদি বোনাস রাউন্ডে অংশ নিতে চান তবে আপনার কোডগুলি মুভি-দক্ষ করে তোলার বিষয়ে নিশ্চিত হন! নীচে আমার প্রোগ্রামটি যখন চলতে থাকে তখন তৈরি 5x5 অক্ষরের সমস্ত একটি গ্রন্থাগার রয়েছে। বোনাস রাউন্ডের উদ্দেশ্য হ'ল এমন একটি প্রোগ্রাম লিখুন যা এর জন্য একটি সিকোয়েন্স মুদ্রণ ABCDEFGHIJKLMNOPQRSTUVWXYZকরে যতটা সম্ভব কম পদক্ষেপ থাকে। STDIN এ কোনও ইনপুট নেই। কোড কোডের দৈর্ঘ্যে নয় বরং এর "মুভ স্কোর" এ গ্রেড করা হবে । সরানো স্কোরটি সুইপার অ্যালগরিদমগুলিকে নিরুৎসাহিত করার জন্য ডিজাইন করা হয়েছে যা আয়তক্ষেত্রের প্রতিটি পয়েন্ট দেখতে আসে।
d: 1
l: 1
m: 4
p: 1
r: 1
চিঠিপত্র
.ooo. oooo. ooooo oooo. ooooo ooooo .oooo o...o
o...o o...o o.... o...o o.... o.... o.... o...o
ooooo oooo. o.... o...o oooo oooo. o.ooo ooooo
o...o o...o o.... o...o o.... o.... o...o o...o
o...o oooo. ooooo oooo. ooooo o.... oooo. o...o
ooooo ....o o...o o.... ooooo o...o ooooo oooo.
..o.. ....o o..o. o.... o.o.o oo..o o...o o...o
..o.. ....o oo... o.... o.o.o o.o.o o...o oooo.
..o.. o...o o..o. o.... o...o o..oo o...o o....
ooooo .ooo. o...o ooooo o...o o...o ooooo o....
oooo. oooo. ooooo ooooo o...o o...o o...o o...o
o..o. o...o o.... ..o.. o...o o...o o...o .o.o.
o..o. oooo. ooooo ..o.. o...o .o.o. o.o.o ..o..
oooo. o..o. ....o ..o.. o...o .o.o. o.o.o .o.o.
....o o...o ooooo ..o.. ooooo ..o.. ooooo o...o
o...o ooooo
.o.o. ...o.
..o.. ..o..
.o... .o...
o.... ooooo
মূল চ্যালেঞ্জ হিসাবে একই পদ্ধতি অনুসরণ করতে হবে: প্রতিটি অক্ষরের মধ্যে একটি স্থান পৃথকীকরণের সাথে অক্ষরগুলি একবারে আঁকতে হবে।
স্ট্যান্ডার্ড সিজি বিধি প্রযোজ্য। সর্বনিম্ন মুভ স্কোর জিততে প্রবেশ করুন।
সংক্ষিপ্তসার হিসাবে, উভয় কোডই মূলত একই জিনিস করবে। প্রথম কোডটিতে কোডে ন্যূনতম সংখ্যক বাইট থাকতে হবে এবং দ্বিতীয় কোডের মধ্যে ন্যূনতম চালের সংখ্যা ব্যবহার করা উচিত।