কম্পিউটার টিউটোরিয়াল

পাইথনে মিনিয়ন গেমের বিজেতা এবং স্কোর বের করার প্রোগ্রাম

ধরুন দুটি খেলোয়ায়ার Amal এবং Bimal। তারা একটি গেম খেলছে। গেমের নিয়ম নিচের মতো:

  • দুই খেলোয়ায়ারের একই স্ট্রিং s আছে
  • দুইজনের স্ট্রিংয়ের অক্ষর ব্যবহার করে সাবস্ট্রিং বানাতে হবে
  • Bimal-কে কনসোন্যান্ট দিয়ে শুরু হওয়া ওয়ার্ড বানাতে হবে
  • Amal-কে ভয়েল দিয়ে শুরু হওয়া ওয়ার্ড বানাতে হবে
  • গেমটি শেষ হবে যখন দুজনই সব সম্ভাব্য সাবস্ট্রিং বানিয়ে ফেলবে

স্কোরিং Криটেরিয়া: একজন খেলোয়ায়ার প্রতিটি সাবস্ট্রিংর স্ট্রিং s-এ থাকার প্রতিটি ঘটনার জন্য ১ পয়েন্ট পাবে। আমাদের এই গেমের বিজেতা এবং তার স্কোর বের করতে হবে।

উদাহরণস্বরূপ, যদি ইনপুট s = "BANANA" হয়, তবে আউটপুট হবে Bimal, 12 কারণ:

Word : BANANA
AmalBimal (WINNER)
SubstringScoreSubstringScore
A3B1
AN2N2
ANA2BA1
ANAN1NA2
ANANA1BAN1
NAN1
BANA1
NANA1
BANAN1
BANANA1
Total 9Total 12

সমাধানের ধাপসমূহ

  • vowels := {'A','E','I','O','U'} সেট
  • p1 := 0 (Bimal), p2 := 0 (Amal)
  • প্রতিটি ইন্ডেক্স i এবং ক্যারেক্টার c ইন word এর জন্য:
    • যদি c ভয়েল হয়, তবে p2 += len(word) - i
    • অন্যথায় p1 += len(word) - i
  • যদি p1 > p2, তবে 'Bimal', p1 রিটার্ন করুন
  • অন্যথায় যদি p2 > p1, তবে 'Amal', p2 রিটার্ন করুন
  • অন্যথায় 'Draw' রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

def solve(word):
    vowels = set('AEIOU')
    p1 = 0
    p2 = 0
    for i, c in enumerate(word):
        if c in vowels:
            p2 += len(word) - i
        else:
            p1 += len(word) - i
    if p1 > p2:
        return 'Bimal', p1
    elif p2 > p1:
        return 'Amal', p2
    else:
        return 'Draw'

word = "BANANA"
print(solve(word))

ইনপুট

"BANANA"

আউটপুট

('Bimal', 12)
  1. পাইথনে স্টোন সরিয়ে সর্বোচ্চ স্কোর বের করার প্রোগ্রাম

  2. Python দিয়ে অ্যারে গেমের বিজয়ী বের করার প্রোগ্রাম

  3. পাইথনে সংখ্যা মুছে যাতে সর্বোচ্চ অ্যাডিটিভ স্কোর পাওয়া যায় সেটি বের করার প্রোগ্রাম

  4. পাইথনে x, y, z অক্ষরের নির্দিষ্ট সংখ্যা সম্বলিত সাবসিকোয়েন্স গণনা