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

เกม 3-6-9 (Clap Game) ใน Python

ภาพรวม

เกม 3-6-9 (เกาหลี): นับ 1 ถึง n แต่ถ้าตัวเลขหาร 3 ลงตัว หรือ มีหลัก 3,6,9 → พูด "clap" แทน (โค้ดต้นฉบับใช้ "no-fill")

ตัวอย่าง n=20

['1', '2', 'clap', '4', '5', 'clap', '7', '8', 'clap',
 '10', '11', 'clap', 'clap', '14', 'clap', 'clap',
 '17', 'clap', 'clap', '20']

โค้ด Python

class Solution:
    def solve(self, n):
        string = "clap"
        ls = [str(i) for i in range(1, n+1)]
        for i in range(len(ls)):
            if int(ls[i]) % 3 == 0:
                ls[i] = string
            elif '3' in ls[i]:
                ls[i] = string
            elif '6' in ls[i]:
                ls[i] = string
            elif '9' in ls[i]:
                ls[i] = string
        return ls

ob = Solution()
print(ob.solve(20))

วิธีเขียนสั้นกว่า

def clap_game(n):
    return ['clap' if i%3==0 or any(d in str(i) for d in '369') else str(i) for i in range(1,n+1)]

ผลลัพธ์

['1', '2', 'clap', '4', '5', 'clap', '7', '8', 'clap', '10', '11', 'clap', 'clap', '14', 'clap', 'clap', '17', 'clap', 'clap', '20']