ডোমিনোস সেটআপ দেওয়া আপনার কাজ হ'ল কোন ডোমিনোস পড়ে এবং কোনটি না তা নির্ধারণ করা।
ইনপুট
ডোমিনো সেটআপটির একটি আয়তক্ষেত্রাকার ASCII উপস্থাপনা নিন। নিম্নলিখিত অক্ষরগুলি ASCII গ্রিডের জন্য ব্যবহৃত হয়:
(স্পেস): খালি ঘর
|
,-
,/
,\
: Dominoes
ডোমিনোস 8 টি দিকের মধ্যে পড়ে যেতে পারে যা নিম্নলিখিত বর্ণগুলি দ্বারা প্রতিনিধিত্ব করা হয় (ডাব্লুএএসডি ওরিয়েন্টেশনের অনুরূপ):
Q W E
A D
Z X C
ডোমিনো শুরুতে ধাক্কা দিয়ে গেছে তা বোঝাতে এক বা একাধিক ডোমিনোস এই অক্ষরের একটি দ্বারা প্রতিস্থাপন করা হবে। এখানে একটি উদাহরণ:
D||||/
- /
- -
- -
/|||||
আমি চাই না যে এই চ্যালেঞ্জটি ইনপুট পার্সিংয়ের অনুশীলনে রূপান্তরিত করুক যাতে নিম্নলিখিত যেকোন ইনপুট ফর্মের অনুমতি দেওয়া হয়:
- গ্রিড সহ একটি স্ট্রিং (optionচ্ছিকভাবে এটির সাহায্যে এর মাত্রাগুলি দ্বারা পূর্বে)
- প্রতিটি লাইনের জন্য একটি স্ট্রিং সহ একটি অ্যারে / তালিকা / টিপল (বিকল্পভাবে প্রস্থ এবং উচ্চতার পূর্ণসংখ্যার পাশাপাশি)
- প্রতিটি গ্রিড কোষের জন্য একটি স্ট্রিং / অক্ষর সহ একটি (নেস্টেড) অ্যারে / তালিকা / টিপল (বিকল্পভাবে প্রস্থ এবং উচ্চতার ভেরিয়েবলগুলির সাথে)
আপনি STDIN থেকে পড়তে পারেন বা কোনও ফাংশন আর্গুমেন্ট নিতে পারেন বা ইনপুটটি কোনও ভেরিয়েবলের মধ্যে সঞ্চয় করার আশাও করতে পারেন।
আউটপুট
STDOUT এ লিখুন বা কোনও বৈধ ইনপুট ফর্ম্যাটে ফলস্বরূপ গ্রিডটি প্রত্যাবর্তন করুন (বা কোনও পরিবর্তনশীল সংরক্ষণ করুন) যা ডমিনোস পড়েছে এবং কোনটি পড়ে না তা নির্দেশ করে। অর্থাত, প্রতিটি পতিত ডোমিনো এর সাথে প্রতিস্থাপন করুন#
এবং প্রতিটি স্ট্যান্ডিং ডোমিনো যেমন ইনপুটটিতে থাকে তেমন ছেড়ে দিন।
বিধি
অবশ্যই, ডোমিনোস সেটআপের মাধ্যমে তাদের পতনের প্রচার করে। জাতিগুলির শর্ত যেমন হতে পারে, আমরা ধরে নিই যে নির্দিষ্ট সময়ের পদক্ষেপ রয়েছে এবং পড়ন্ত সময় প্রতি ধাপে একটি গ্রিড সেল প্রচার করে।
ডোমিনোস সাধারণত আপনি যেভাবে স্বজ্ঞাতভাবে তাদের কাছে প্রত্যাশা করতেন সেভাবে পড়ে যায় তবে সাধারণ জ্ঞানের একটি কঠোর স্পেসিফিকেশন বেশ দীর্ঘ হয় to এর জন্য দুঃখিত, আমি আশা করি উদাহরণগুলি সাহায্য করবে। এখানে একটি সংক্ষেপ সমস্ত অনন্য দ্বি-টাইল সংমিশ্রণ (ঘূর্ণন এবং প্রতিবিম্ব পর্যন্ত) সহ একটি সংক্ষিপ্তসার রয়েছে। কঠোর নিয়মের জন্য পড়ুন।
প্রতিটি ডোমিনো কেবল দুটি দিকেই পড়ে যেতে পারে:
W Q E
A | D - / \
X C Z
যখনই কোনও ডোমিনো পড়ে যায় তখন এটি পতনের দিকের ঘরে কোষকে প্রভাবিত করে। যদি সেই ঘরে একটি ডোমিনো থাকে যা একই দিক বা 45 ডিগ্রি দ্বারা পৃথক কোনও দিক থেকে পড়ে যেতে পারে তবে সেই ডোমিনো পরবর্তী সময় ধাপে তা করে।
উদাহরণ:
D| -> DD (falls in same direction)
D/ -> DC (falls at 45 degrees)
C -> C (falls at 45 degrees)
- X
যখনই একটি ত্রিভুজ ভিত্তিক ডোমিনো ( /
বা\
) পড়ে যায় তখন এটি দুটি কোষকেও প্রভাবিত করে যা তার পতনের দিকের দিকে তার কোষ এবং কোষ উভয়কে স্পর্শ করে। যদি এই কোষগুলিতে একটি ডোমিনো থাকে যা মূল ডোমিনো হিসাবে একই দিকে যেতে পারে বা অক্ষ থেকে সংলগ্ন দিকে এটি থেকে দূরে থাকতে পারে, তবে পরবর্তী সময় পদক্ষেপে ডোমিনো এমনটি করে।
উদাহরণ:
C/ -> CC (the cell in the direction of the fall is the one below
the /, so it falls in the same direction)
C| -> CD (falls in the axis-aligned direction away from the C)
C- -> C- (the direction away from the Q is W,
or but neither - nor \ can fall to W)
C\ -> C\
ব্যতিক্রম : যদি কোনও ডোমিনো একবারে উভয় বৈধ দিকে ঠেলাঠেলি করে (যেমন উপরের কোনও বিধি বিবাদে থাকে) তবে তা পড়ে না।
উদাহরণ:
D|A -> D|A (central domino in pushed in both directions)
Z Z (although it's pushed in one direction by two dominoes
D\A -> D\A and in the other by only one, it doesn't fall)
X X (the domino is being pushed from two opposing sides
D-A -> DXA D and A, but neither is valid for that domino. Hence,
there is no conflict and the X can push the domino over)
Z Z (pushed in the same direction by two dominoes, so falls)
\A -> ZA
Z Z Z (once the conflict arises, the affected
\ -> Z -> Z domino is locked in its position and can't
D|A D|A D|A be pushed over by future dominoes)
উদাহরণ
8 5
D||||/ ######
- / - #
- - --> - #
- - - #
/||||| /|||||
===============================================
17 9
E|/|||/ #######
- - # #
- - # #
- - # #
/|||/|||||||||/ --> ###############
/ - # #
/ - # -
/ - # #
/|||||\ #######
===============================================
19 8
\|/ ###
- - # #
D||||/|\ /|||/ ######## #####
/ - # #
- \- --> - \#
\- \ - #- \ #
D||||\ / \ / ###### / \ #
|\ ||||| |\ #####
==============================================
11 11
-\\\/|\|\-| -\##/|###-|
-|\\||\-|\- -|#####-|\-
|\//\//|-/- |#//\//|#/-
\|//|-|\-\| #####-|##\|
---||/-\//| #-######//|
///|||\---- --> #/#####----
-|/---|-|-\ #|##--|-|-\
--|--\/|/// ####-\/|///
/|//--|//-| ####--|//-|
|/\-|||-/-\ |/\####-/-\
E||\-|\---/ ####-|\---/
আপনি যদি ভাবেন যে আমি কোনও ভুল করেছি (বিশেষত শেষটির সাথে) me
E
(এটি নয় যে এটি কোনও পার্থক্য করে ...)। দেখে মনে হচ্ছে আপনি খালি ন্যূনতম ইনডেন্টেশন গভীরতা হ্রাস করে অক্ষরের একটি গুচ্ছ সংরক্ষণ করতে পারেন।