টেট্রিসে ঘোরানো উপাদানের অবস্থান নির্ধারণ করুন


24

টেট্রিস-টাইলস 4x4 বুলিয়ান ম্যাট্রিক্স হিসাবে সঞ্চয় করা হয়। প্রতিটি ঘোরানো পদক্ষেপের নিজস্ব ম্যাট্রিক্স থাকে, টি- ব্লকের উপস্থাপনাটি এর মতো দেখায়:

[
    0, 0, 0, 0,
    0, 1, 1, 1,
    0, 0, 1, 0,
    0, 0, 0, 0
],
[
    0, 0, 1, 0,
    0, 0, 1, 1,
    0, 0, 1, 0,
    0, 0, 0, 0
],
[
    0, 0, 1, 0,
    0, 1, 1, 1,
    0, 0, 0, 0,
    0, 0, 0, 0
],
[
    0, 0, 1, 0,
    0, 1, 1, 0,
    0, 0, 1, 0,
    0, 0, 0, 0
]

আমি যখন ব্লকটি ঘোরানো হয় এবং বোর্ডের সাথে সংঘর্ষ হয় তখন এটির অবস্থান নির্ণয়ের কোনও উপায় অনুসন্ধান করার চেষ্টা করছি (বোর্ডটিও একটি ম্যাট্রিক্স)। মূল টেট্রিস কোনও ব্লকের আবর্তনের অনুমতি দেয় না যখন ঘোরার ফলে সংঘর্ষ হয়। গেমের আধুনিক রূপগুলি সংঘর্ষের সমাধান করবে এবং ব্লকটিকে একটি বৈধ অবস্থানে নিয়ে যাবে।

এখানে কিছু পরিস্থিতি সমাধান করা উচিত। বোর্ডটি 6x6, লাল = অ্যাক্টিভ ব্লক, ধূসর = স্থানযুক্ত / দখলকৃত ব্লক। প্রতিবার, একটি ঘড়ির কাঁটার বিপরীতে ঘূর্ণন সঞ্চালন করা উচিত। সবুজ ওভারলে ব্লকের ম্যাট্রিক্স নির্দেশ করে। তীরটি ঘূর্ণনটি সমাধানের জন্য ফলাফল সংশোধন করার ইঙ্গিত দেয়:

টেট্রিস ব্লক ঘূর্ণন

  1. বোর্ডের বাম দিকে ব্লক। যেহেতু ব্লকটি বোর্ডটি ছাড়তে পারে না, তাই এটি ঘোরানোর পরে আবার ভিতরে shouldুকে যেতে হবে।
  2. ব্লক "গ্রাউন্ড" হিট, তবে এখনও স্থাপন / প্রতিশ্রুতিবদ্ধ নয়। এই ক্ষেত্রে, টাইলটি সংঘর্ষের সমাধানের জন্য উপরে উঠতে হবে ("I" -ব্লক ক্ষেত্রে, চলাচলটি 2 কোষ আপ হবে)।
  3. টাইল দখলকৃত ব্লকে আঘাত করবে, সংঘর্ষের সমাধান করতে অবশ্যই বাম দিকে সরানো হবে।
  4. টাইল ঘোরানো যায় না।

এই সমস্যাটি মোকাবেলার জন্য সেরা পন্থাটি কী হবে? সর্বোত্তমভাবে, সমাধানটি জেনেরিক হওয়া উচিত, যেমন। নির্বিচারে আকারের এবং জনবহুল বোর্ডে স্বেচ্ছাসেবী 4x4 ম্যাট্রিক্স ব্লক নিয়ে কাজ করুন।


আকর্ষণীয় .. আমি এক বছর আগে একটি টেট্রিস করেছি এবং আমি কেবল ম্যাট্রিক্স ঘোরালাম এবং আসলটি রেখেছি। কিছু ওভারল্যাপ করা থাকলে আমি অরজিনালটি ব্যবহার করি। ভাল কাজ করেছেন। আমি প্রায়শই টেস্টপ্লে করেছিলাম এবং কখনও সমস্যায় পড়ি না। নিশ্চয়ই ভাগ্যবান হয়েছে। আন্তঃবিরোধী বিষয়টির জন্য ধন্যবাদ!
snitch182

উত্তর:


16

আপনি যে পরিস্থিতিতে বর্ণনা করেছেন তাকে " ওয়াল কিক " বলা হয়।

দেয়াল কিক তখন ঘটে যখন কোনও প্লেয়ার যখন স্কোয়ারগুলিতে স্থান না থাকে সেখানে টেট্রোমিনো সাধারণত ঘোরার পরে দখল করবে।

...

সবচেয়ে সহজ ওয়াল কিক অ্যালগরিদম ... হ'ল টেট্রোমিনোকে একটি জায়গা ডান দিকে নিয়ে যাওয়ার চেষ্টা করা, এবং তারপরে একটি স্থান বামে, এবং যদি না করা যায় তবে ব্যর্থ।

এখানে বিভিন্ন টেট্রিস রোটেশন সিস্টেম রয়েছে, উইকিয়ায় সমস্ত নথিবদ্ধ: রোটেশন সিস্টেম

এসআরএস হ'ল "অফিসিয়াল" টেট্রিস স্পেসিফিকেশন এবং এটিতে টেবিলগুলিতে জড়িত প্রাচীরের কিকগুলির পক্ষে বেশ জটিল অ্যালগরিদম রয়েছে। চূড়ান্ত টুকরা এমনকি এমনকি মূল টুকরা ওভারল্যাপ নাও করতে পারে!

DTET ঘূর্ণন সিস্টেম অন্য পাঁচটি প্রাচীর কিক পরীক্ষণ ব্যতীত শুধু ডান এবং বাম দ্বারা সরলতম আলগোরিদিম প্রসারিত করে। সমস্ত টুকরা একই নিয়ম অনুসরণ করে।


+1, আকর্ষণীয় উইকি যদিও আই ব্লক এক স্থান বাম বা ডান সরানো কাজ করবে না। আরও উন্নত রোটেশন সিস্টেমগুলিও বিভিন্ন ব্লকের জন্য বিভিন্ন বিধি প্রয়োগ করে বলে মনে হচ্ছে .. আমি এমন একটি পদ্ধতি খুঁজে পেতে চাই যা সমস্ত ব্লক সম্ভাবনার জন্য কাজ করে (যদি খুব ব্যয়বহুল না হয়)।
বামমজ্যাক

1
@ অ্যালবামজ্যাক: ঠিক আছে, তবে ডিটিইটি সিস্টেমের মতো সমস্ত ব্লকের জন্য একই টেবিলটি ব্যবহার করুন। এটি কেবল বাম এবং ডান পাশে আরও অবস্থান পরীক্ষা করে। আপনি নিজের সিস্টেম তৈরি করতে পারেন এবং চাইলে অনেকগুলি অবস্থান চেক করতে পারেন। যাইহোক, সমস্ত টুকরা জন্য একই টেবিল ব্যবহার করা "অপ্রাকৃত" প্রাচীর কিক্স অনুমতি দিতে পারে।
লেফটিয়াম

সম্পাদনা করার জন্য ধন্যবাদ। এগুলি উইকিয়ায় থাকা উপাদানের চেয়ে আসলে আরও ভাল। অনেক প্রশংসিত.
বামমজ্যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.