Python Yaptığım oyun nasıl?

Elinize sağlık, yeni başlayan birisi için fena değil. Ben de ilham olması için Python'a ilk başladığım sıralar yazdığım oyunu bırakayım;

Python:
import random
import colorama
import os

colorama.init(autoreset=False)
kartlar = {"Amogus":[11,1],
           "İmpostor":10,
           "Abigus":10,
           "Harlaus":10,
           "1":1,
           "2":2,
           "3":3,
           "4":4,
           "5":5,
           "6":6,
           "7":7,
           "8":8,
           "9":9
           }

baslangic_yazisi = f"""{colorama.Fore.BLACK}{colorama.Back.GREEN}



Ameriganın oyunlarını bırakıp yerli ve milli yüzde yüz 21 oyununa hoşgeldin.

/////////////////////////////////// *** \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ cCc ////////////////////////////////////


Devam etmek için entere bas.
    


    """

def dagit() -> list:
    dagitilan_kartlar = list()
    # İki tane dağıtılan kartların bulunduğu bir liste oluşturulur.
    for i in range(2):
        dagitilan_kartlar.append(random.choice(list(kartlar.keys())))
    kartlarin_degerleri = 0
    for kart in dagitilan_kartlar:
        if ("İmpostor" in dagitilan_kartlar or "Harlaus" in dagitilan_kartlar or "Abigus" in dagitilan_kartlar) and kart == "Amogus":
            kartlarin_degerleri += kartlar[kart][0]
        elif ("İmpostor" not in dagitilan_kartlar and "Harlaus" not in dagitilan_kartlar and "Abigus" not in dagitilan_kartlar) and kart == "Amogus":
            kartlarin_degerleri += kartlar[kart][1]
        elif kart != "Amogus":
            kartlarin_degerleri += kartlar[kart]
    # Dağıtılan iki rastgele kardın toplamı bulunur.
    return [dagitilan_kartlar,kartlarin_degerleri]
    # Sonuç return edilir.

def kart_cek(deste) -> None:
    # Rastgele yeni bir kart çekilir.
    cekilen = random.choice(list(kartlar.keys()))
    deste[0].append(cekilen)
    if cekilen == "Amogus":
        deste[1] += kartlar[cekilen][1]
    else:
        deste[1] += kartlar[cekilen]


def rakip(deste) -> None:
        if deste[1] < 10: 
            if random.choices([1,0],[21-deste[1],deste[1]], k=1)[0] == 1:
                # Rakip rastgele bir işlem yapar ve hamle sayısı bir arttırılır.
                kart_cek(deste)
            else:
                return False
        elif deste[1] >= 10:
            if random.choices([1,0],[11-(deste[1]-10),deste[1]-10],k=1)[0] == 1:
                kart_cek(deste)
            else:
                return False

def oyuncu(deste):
    while True:
        hamle = input("Çek/Pas?(Ç/P) ")
        if hamle.lower() == "ç":
            kart_cek(deste)
            break
        elif hamle.lower() == "p":
            return False
        elif hamle.lower() == "q":
            os.system("color 0f")
            os.system("cls")
            exit()
        else:
            print("Geçersiz işlem.")

def baslat() -> None:
    os.system("cls")
    os.system("title Yerli 21")
    os.system("color 20")
    # Arkaplanı ayarlar.
    print(baslangic_yazisi)
    devam = input()
    if devam.lower() == "q":
        os.system("color 0f")
        os.system("cls")
        exit()
    elif devam.lower() == "l":
        while True: oyun()
    oyun()
    os.system("color 0f")

    

def karsilastir(rakibin_destesi,oyuncu_destesi) -> None:
    # Bu fonksiyonda kimin kazandığı kontrol edilir.
    oyuncu_kazanma_mesaji = f"----------------------------------------\nSen kazandın.\nRakibin destesi: {','.join(rakibin_destesi[0])}\n----------------------------------------\n"
    rakip_kazanma_mesaji = f"----------------------------------------\nRakip kazandı.\nRakibin destesi: {','.join(rakibin_destesi[0])}\n----------------------------------------\n"
    berabere_mesaji = f"----------------------------------------\nBerabere.\n----------------------------------------\n"
    if rakibin_destesi[1] > 21:
        print(oyuncu_kazanma_mesaji)
    elif oyuncu_destesi[1] > 21:
        print(rakip_kazanma_mesaji)
    elif oyuncu_destesi[1] > 21 and rakibin_destesi[1] > 21:
        print(berabere_mesaji)
    else:
        if rakibin_destesi[1] == oyuncu_destesi[1]:
            print(berabere_mesaji)
        elif rakibin_destesi[1] > oyuncu_destesi[1]:
            print(rakip_kazanma_mesaji)
        elif oyuncu_destesi[1] > rakibin_destesi[1]:
            print(oyuncu_kazanma_mesaji)

def oyun():
    rakip_kart = dagit()
    oyuncu_kart = dagit()
    print(f"""
----------------------------------------
Rakip:
{rakip_kart[0][0]}{",?"*(len(rakip_kart)-1)}

Sen:
{",".join(oyuncu_kart[0])}
----------------------------------------
    """)
    while oyuncu_kart[1] < 21 and rakip_kart[1] < 21:
        oyuncu_hamlesi = oyuncu(oyuncu_kart)
        rakip_hamlesi = rakip(rakip_kart)
        print(f"""
----------------------------------------
Rakip:
{rakip_kart[0][0]}{",?"*(len(rakip_kart[0])-1)}

Sen:
{",".join(oyuncu_kart[0])}
----------------------------------------
    """)
        if oyuncu_hamlesi == False and rakip_hamlesi == False:
            break
    karsilastir(rakip_kart,oyuncu_kart)
    input()
    os.system("cls")

if __name__ == "__main__":
    baslat()
else:
    print("Beni nereye import etmeye çalışıyorsun?")
    exit()
 

Yeni konular

Geri
Yukarı