top of page

Secret Auction


Hands-on Mentor Projects
Hands-on Mentor Projects


Secret Auction Nedir?

Secret Auction (Gizli Müzayede), bir grup katılımcının gizli tekliflerde bulunduğu bir açık artırma oyunudur. Katılımcılar tekliflerini sunar ve en yüksek teklifi veren kazanır. Bu oyun, tekliflerin gizli tutulması nedeniyle stratejik düşünmeyi teşvik eder ve genellikle eğlence amaçlı düzenlenir.



Proje Hedefleri ve Öğrenci Faydaları

Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kullanıcı etkileşimi ve veri işleme konularında deneyim kazanacaklardır.


Projenin Hedef Çıktıları

  • Temel Python yapıları ve kontrol akışlarını kullanarak bir gizli müzayede uygulaması oluşturma.

  • Kullanıcıdan veri alma ve bu verileri işleyerek müzayede akışını yönetme.

  • Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma.


Projenin Adım Adım Görevleri

  1. Katılımcılardan teklifleri alma.

  2. En yüksek teklifi belirleme.

  3. Kazananı ve teklifini ekrana yazdırma.

  4. Fonksiyonlar kullanarak kodu daha modüler hale getirme.


Fonksiyonsuz Çözüm


Adım 1: Katılımcılardan Teklifleri Alma

İlk adımda, katılımcılardan teklifleri alınacaktır.


# Katılımcılardan teklifleri alma
teklifler = {}
devam = True

while devam:
    isim = input("İsminizi girin: ")
    teklif = int(input("Teklifinizi girin: "))
    teklifler[isim] = teklif
    devam_mi = input("Başka teklif var mı? (evet/hayır): ").lower()
    if devam_mi == 'hayır':
        devam = False

Bu kod parçası, kullanıcıdan isim ve teklif alır ve teklifleri teklifler sözlüğüne ekler. Kullanıcı, başka teklif olup olmadığını belirterek devam edip etmeyeceğine karar verir.


Adım 2: En Yüksek Teklifi Belirleme

İkinci adımda, en yüksek teklifi veren belirlenir.


# En yüksek teklifi belirleme
en_yuksek_teklif = 0
kazanan = ""

for isim, teklif in teklifler.items():
    if teklif > en_yuksek_teklif:
        en_yuksek_teklif = teklif
        kazanan = isim

Bu kod parçası, en yüksek teklifi ve bu teklifi veren katılımcıyı belirler.


Adım 3: Kazananı ve Teklifini Ekrana Yazdırma

Üçüncü adımda, kazanan ve teklifi ekrana yazdırılacaktır.


# Kazananı ve teklifini ekrana yazdırma
print(f"Kazanan: {kazanan}, Teklif: {en_yuksek_teklif}")

Bu kod parçası, kazananın ismini ve teklifini ekrana yazdırır.



Fonksiyonlarla Çözüm


Adım 1: Katılımcılardan Teklifleri Alma Fonksiyonu

İlk adımda, katılımcılardan teklifleri alınacaktır.


def teklifleri_al():
    """Katılımcılardan teklifleri alır."""
    teklifler = {}
    devam = True

    while devam:
        isim = input("İsminizi girin: ")
        teklif = int(input("Teklifinizi girin: "))
        teklifler[isim] = teklif
        devam_mi = input("Başka teklif var mı? (evet/hayır): ").lower()
        if devam_mi == 'hayır':
            devam = False

    return teklifler

Bu fonksiyon, katılımcılardan isim ve teklif alır ve teklifleri teklifler sözlüğüne ekleyerek döndürür.


Adım 2: En Yüksek Teklifi Belirleme Fonksiyonu

İkinci adımda, en yüksek teklifi veren belirlenir.


def en_yuksek_teklifi_belirle(teklifler):
    """En yüksek teklifi belirler."""
    en_yuksek_teklif = 0
    kazanan = ""

    for isim, teklif in teklifler.items():
        if teklif > en_yuksek_teklif:
            en_yuksek_teklif = teklif
            kazanan = isim

    return kazanan, en_yuksek_teklif

Bu fonksiyon, en yüksek teklifi ve bu teklifi veren katılımcıyı belirler ve döndürür.


Adım 3: Kazananı ve Teklifini Ekrana Yazdırma Fonksiyonu

Üçüncü adımda, kazanan ve teklifi ekrana yazdırılacaktır.


def sonucu_yazdir(kazanan, en_yuksek_teklif):
    """Kazananı ve teklifini ekrana yazdırır."""
    print(f"Kazanan: {kazanan}, Teklif: {en_yuksek_teklif}")

Bu fonksiyon, kazananın ismini ve teklifini ekrana yazdırır.


Adım 4: Oyunu Başlatma Fonksiyonu

Bu fonksiyon, Secret Auction oyununu başlatır ve oyunun akışını yönetir.


def oyunu_baslat():
    """Secret Auction oyununu başlatır."""
    teklifler = teklifleri_al()
    kazanan, en_yuksek_teklif = en_yuksek_teklifi_belirle(teklifler)
    sonucu_yazdir(kazanan, en_yuksek_teklif)

# Oyunu başlatma
oyunu_baslat()

Bu fonksiyon, Secret Auction oyununu başlatır ve oyunun akışını yönetir. Kullanıcı tekliflerini alır, en yüksek teklifi belirler ve sonucu ekrana yazdırır.


Kullanılan Konular

  • Veri Tipleri: Bu projede, sözlükler (teklifler) ve stringler (katılımcı isimleri, teklif) kullanılmıştır.

  • Sözlükler: Teklifler sözlük şeklinde tutulmuştur.

  • Koşullu İfadeler: if-else yapıları, en yüksek teklifi belirlemek ve kullanıcıdan başka teklif olup olmadığını sormak için kullanılmıştır.

  • Fonksiyonlar: Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır.

  • Döngüler: while döngüsü, kullanıcı tekliflerini almak için kullanılmıştır.

 

bottom of page