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

โปรแกรม Python หาคะแนนและชื่อผู้ชนะของเกมมินเนี่ยน


สมมติว่ามีผู้เล่นสองคน Amal และ Bimal พวกเขากำลังเล่นเกม กฎของเกมมีดังนี้ −

  • ผู้เล่นทั้งสองมีสตริงเดียวกัน s.

  • ทั้งคู่ต้องสร้างสตริงย่อยโดยใช้ตัวอักษรของ s

  • Bimal ต้องสร้างคำที่ขึ้นต้นด้วยพยัญชนะ

  • อามาลต้องสร้างคำที่ขึ้นต้นด้วยสระ

  • เกมจะจบลงเมื่อผู้เล่นทั้งคู่สร้างสตริงย่อยที่เป็นไปได้ทั้งหมดแล้ว

ตอนนี้เกณฑ์การให้คะแนนเป็นดังนี้:ผู้เล่นจะได้รับ 1 แต้มสำหรับการเกิดขึ้นของสตริงย่อยในสตริง s แต่ละครั้ง เราต้องหาผู้ชนะในเกมนี้และสกอร์ของเขาให้ได้

ดังนั้นหากอินพุตเป็นเหมือน s ="BANANA" ผลลัพธ์จะเป็น Bimal 12 เพราะ

Word :BANANA
Amal
Bimal(ผู้ชนะ)
สตริงย่อย
คะแนน
สตริงย่อย
คะแนน
A
3
B
1
AN
2
ไม่
2
ANA
2
BA
1
ANAN
1
NA
2
ANANA
1
BAN
1


NAN
1


BANA
1


นานา
1


กล้วย
1


BANANA
1
รวม 9
รวม 12

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • สระ :=ชุดของสระ
  • p1 :=0
  • p2 :=0
  • สำหรับแต่ละดัชนี i และอักขระ c ในคำ ให้ทำ
    • ถ้า c เป็นสระแล้ว
      • p2 :=p2 + ขนาดคำ - i
    • มิฉะนั้น
      • p1 :=p1 + ขนาดคำ - i
  • ถ้า p1> p2 แล้ว
    • ส่งคืน 'Bimal', p1
  • มิฉะนั้น เมื่อ p2> p1 แล้ว
    • ส่งคืน 'Amal', p2
  • มิฉะนั้น
    • คืน 'วาด'

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

def Solve(word):สระ =set('AEIOU') p1 =0 p2 =0 for i, c in enumerate(word):if c ในสระ: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)) 

อินพุต

"กล้วย"

ผลลัพธ์

('Bimal', 12)