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
# Ö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.
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")
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")
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")