Rastgele çıktıdan çift ya da üçlü bulmak

Merhabalar ödevimin büyük kısmını tamamladım ödevim bir iskambil destesi oluşturup o desteden rastgele 5 kağıt vermek ve bu kağıtlardan eğer eğer ikisi aynı ise ikili çıktısı üçü aynı ise üçlü çıktısı vermek.
örneğin:
K♣ K♥ 7♥ 6♣ 6♠ gibi bu mesela çift
9♣ 9♠ 9♥ 3♣ 5♥ bu ise üçlü bir el


gelebildiğim yer buraya kadar bana yardımcı olabilir misiniz ?

# Örnek olması amacıyla, elimizde şöyle bir 5'li olduğunu düşünelim.
kombinasyon_1 = ["♣ 9", "♠ 9", "♥ 9", "♣ 3", "♥ 5"]
degerler = []
for kart in kombinasyon_1:
    # Aradaki boşluğa göre ayırıp, sağdaki elemanı çekelim.
    degerler.append(kart.split(" ")[1])
# Yukarıdaki döngüden sonra;
# degerler = ["9", "9", "9", "3", "5"] şeklinde olacaktır.

ikili, uclu = False, False

# Elemanları tekrarsız olacak şekilde bir kümeye aktaralım.
degerler_2 = set(degerler)

# Şimdi degerler içerisindeki elemanların tekrar etme sayılarına göre,
# ikili veya uclu değerini True yapalım.
for deger in degerler_2:
    tekrar_sayisi = degerler.count(deger)
    if tekrar_sayisi == 3:
        uclu = True
    elif tekrar_sayisi == 2:
        ikili = True

if uclu is True:
    print("Üçlü")
elif ikili is True:
    print("İkili")
else:
    print("Ne ikili ne de üçlü")

Çözümünüzü alternatif olarak sözlükler ile yapabilirsiniz. Kartın sembolü ve de değeri her bir kart için bir sözlük içerisinde yer alabilir. Ve bu kombinasyonlar da kombinasyonlar isimli bir sözlük içerisinde yer alabilir.

kombinasyonlar = {"0. kombinasyon": {"0. kart": {"sembol": "♣", "değer": "9"},
                                     "1. kart": {"sembol": "♠", "değer": "9"},
                                     "2. kart": {"sembol": "♥", "değer": "9"},
                                     "3. kart": {"sembol": "♣", "değer": "3"},
                                     "4. kart": {"sembol": "♥", "değer": "5"}},
                  "1. kombinasyon": {"0. kart": {"sembol": "♣", "değer": "K"},
                                     "1. kart": {"sembol": "♠", "değer": "K"},
                                     "2. kart": {"sembol": "♥", "değer": "7"},
                                     "3. kart": {"sembol": "♣", "değer": "6"},
                                     "4. kart": {"sembol": "♥", "değer": "6"}}}

1 Beğeni
import random

sayılar=[1,2,3,4,5,6,7,8,9,10,"joker","kız","papaz"]
simgeler=["♠","♣","♥","♦"]
kagıtlar=[]
for simge in simgeler:
    for sayı in sayılar:
        kagıtlar.append(simge+""+str(sayı))

el=[]    
for i in range(5):
    kagıt_1=random.sample(kagıtlar,1)
    el=el+[kagıt_1]

print(el)

for i in el:
    if el.count(i)==2:
        print("çiftli")
    if el.count(i)==3:
        print("3lü")
    if el.count(i)==4:
        print("kare")

Bu işe yarar mı

ben bunu yapmayı unutmuşum oyüzden 2 li değerlerde 2 kere 3lü değerlerde 3 kere print edicek

bunu hangi satıra yazmam gerekiyordu ?

import random
sayılar=[1,2,3,4,5]
simgeler=["♠","♣","♥","♦"]
kagıtlar=[]
for simge in simgeler:
    for sayı in sayılar:
        kagıtlar.append(simge+""+str(sayı))
el=[]    
for i in range(5):
    kagıt_1=random.sample(kagıtlar,1)
    el=el+(kagıt_1)
print(el)
el_2 = set(el)
for i in el_2:
    if el.count(i)==2:
        print("çiftli")
    if el.count(i)==3:
        print("3lü")
    if el.count(i)==4:
        print("kare")

Bu şekilde

Eğer kumar mantığıyla yazılıyorsa bu kod tam olarak doğru sayılmaz çünkü eğer 2 tane farklı renkte “8” gelirse bunu çift olarak saymıyor çift olarak sayması için koşulumuz aynı renkte ve aynı sayı olması.

import random
sayılar=[1,2,3]
simgeler=["♠","♣","♥","♦"]
kagıtlar=[]
for simge in simgeler:
    for sayı in sayılar:
        kagıtlar.append(simge+""+str(sayı))
el=[]    
for i in range(5):
    kagıt_1=random.sample(kagıtlar,1)
    el=el+(kagıt_1)
print(el)

rakamlar=[]
for s in range(5):
    for i in el[s][1]:
        rakamlar.append(i)
    
rakamlar_2 = set(rakamlar)
say=0
for a in rakamlar_2:
    if rakamlar.count(a)==2:
        say=say+1
    if rakamlar.count(a)==3:
        print("3lü")
    
if say>0:
    print(f"{say} tane çiftli")

Bu kod sadece sayılar üzerinden çalışıyor

Çıktı:

['♦2', '♠2', '♥3', '♣1', '♥2']
3lü

bkz: Soru Sorarken Sıkça Düşülen Hatalar #4

1 Beğeni