Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาคะแนนและชื่อผู้ชนะเกม Minion Game ใน Python

สมมติว่ามีผู้เล่นสองคนคือ Amal และ Bimal กฎเกม:

  • ทั้งคู่มีสตริง s เหมือนกัน
  • ทั้งคู่ต้องสร้าง substring จากตัวอักษรของ s
  • Bimal สร้างคำที่เริ่มต้นด้วยพยัญชนะ (Consonants)
  • Amal สร้างคำที่เริ่มต้นด้วยสระ (Vowels)
  • เกมจบเมื่อทั้งคู่สร้าง substring ทุกแบบที่เป็นไปได้

เกณฑ์การให้คะแนน: ผู้เล่นได้ 1 คะแนนสำหรับแต่ละครั้งที่ substring ปรากฏใน s ต้องหาผู้ชนะและคะแนน

ตัวอย่าง s = "BANANA" -> Bimal ชนะ 12 คะแนน

ขั้นตอนการแก้ปัญหา

  • vowels := เซตของสระ 'AEIOU'
  • p1 := 0 (คะแนน Bimal), p2 := 0 (คะแนน Amal)
  • สำหรับแต่ละ index i และตัวอักษร c ใน word:
    • ถ้า c เป็นสระ: p2 += len(word) - i
    • มิฉะนั้น: p1 += len(word) - i
  • เปรียบเทียบ p1 และ p2 คืนค่าผู้ชนะและคะแนน

ตัวอย่างโค้ด

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)