Python Rastgele Uygulamalar

 Bu başlıkta Python'da random vb modüller kullanılarak yapılabilecek uygulamaları derleyeceğim.

import random
print("""Sayı Tahmin Oyununa Hoşgeldiniz
1'den 10'a kadar bir sayı giriniz.""")
i = 0
while(i < 5):
    randSayi = random.randint(1,10)
    sayi = int(input("Sayı:"))
    if(randSayi == 1):
        pass
    elif(randSayi > sayi):
        print("Sayı:",randSayi,"Tahmin:",sayi)
        i += 1
    elif(randSayi < sayi):
        print("Sayı:",randSayi,"Tahmin:",sayi)
        break
if(i == 5):
    print("Tebrikler")
else:
    print("Kaybettiniz")
    Bu örnekte bilgisayar 1 ila 10 arası bir sayı rastgele bir sayı türeterek kullanıcıdan gelen veriyle karşılaştırıyor. Eğer girilen sayı türetilen sayıdan küçükse başarılı sayılıp döngünün bir sonraki aşamasına geçiliyor. Türetilen sayının 1'e eşit olması durumunda pass deyimi sayesinde hiçbir işlem yapılmadan geçiliyor. Girilen sayının türetilen sayıdan büyük olması halindeyse başarısız sayılıp oyun sonlanıyor.
import random
kosul = True
turetilen_sayi = [5]
tur = 0
while(kosul and tur < 5):
    print(turetilen_sayi[len(turetilen_sayi) - 1])
    secim = input("b mi k mi?")
    turetilen_sayi.append(random.randint(1,10))
    if(secim == "k"):
        kosul = turetilen_sayi[len(turetilen_sayi) - 1] < turetilen_sayi[len(turetilen_sayi) - 2]
    if(secim == "b"):
        kosul = turetilen_sayi[len(turetilen_sayi) - 1] > turetilen_sayi[len(turetilen_sayi) - 2]
    tur += 1
if(tur < 5):
    print("Kaybettiniz.")
else:
    print("Tebrikler.")
    İkinci örnekte rastgele bir sayı türetiliyor ve kullanıcıya yeni sayının eskisinden büyük olup olmayacağı soruluyor. Tüm bu veriler listeler aracılığı ile kontrol ediliyor.
import random
alfabe = "abcçdefgğhıijklmnoöprsştuüvyz"
buyuk_harfler = alfabe.upper()
sayilar = "1234567890"
ozel_karakterler = ",;-_*!+&%^."
sifre = ""
mod = 0
hane = int(input("Şifreniz kaç haneli olsun?"))
while(len(sifre) < hane):
    mod = random.randint(1,4)
    if mod == 1:
        sifre += alfabe[random.randint(0,len(alfabe)) - 1]
    if mod == 2:
        sifre += buyuk_harfler[random.randint(0,len(buyuk_harfler)) - 1]
    if mod == 3:
        sifre += sayilar[random.randint(0,len(sayilar)) - 1]
    if mod == 4:
        sifre += ozel_karakterler[random.randint(0,len(ozel_karakterler)) - 1]
print("Şifreniz:",sifre)
    Basit bir parola oluşturucu. Rastgele belirlenen 4 karakter tipi arasından rastgele bir biçimde karakter seçiyor ve bunu sifre değişkenine aktarıyor. Kullanıcının girdiği karakter sayısına ulaşıncaya dek işlem devam ediyor.
import random
sayi = str(random.randint(1000,9999))
print(sayi)
dizi = []
for i in range(0,10):
    if str(i) in sayi:
        dizi.append(i)
if len(dizi) < 4:
    print("rakamlar birbirinden farklı değil.")
else:
    print("rakamlar birbirinden farklı.")
    Şimdiyse bilgisayar tarafından rastgele oluşturulan bir sayının rakamlarının farklı olup olmadığını kontrol ettik. Bu işlemi 4 haneli sayılar için tasarladık(sebebini bir sonraki örnekte göreceksiniz). 4 haneli rakamları farklı bir sayıyı oluşturan rakamların kümesinin eleman sayısı 4 olmak zorunda olacağından range fonksiyonu ile 0'dan 9'a kadar olan tüm rakamların oluşturulan sayıda yer alıp almadığını kontrol ettik. Eğer sayı yer alıyorsa dizimize ekledik ve son olarak dizinin eleman sayısını len fonksiyonu ile kontrol ettik.
import random
rastgele_sayi = str(random.randint(1000,9999))
dizi = []
tahmin_sayisi = 1
cikti = ""
tahmin = input("Tahmininizi giriniz: ")
while(len(dizi) < 4):
    for i in range(0,10):
        if str(i) in rastgele_sayi:
            dizi.append(i)
while(rastgele_sayi != tahmin):
    cikti = ""
    for i,n in enumerate(rastgele_sayi):
        for z,x in enumerate(tahmin):
            if x == n and z == i:
                cikti += "+"
            if x == n and z != i:
                cikti += "-"
    print(tahmin_sayisi,".tahmininizde çıkan sonuç:",cikti," Tahmininiz:",tahmin)
    tahmin_sayisi += 1
    tahmin = input("Tahmininizi giriniz: ")
print("Tebrikler, doğru tahmin!")
    Burada bilinen bir sayı tahmin oyununun Python uyarlamasını yaptık. Oyundaki amacınız her rakamı farklı olan 4 haneli bir sayıyı size verilen ipuçlarından yararlanarak bulmaktır. + doğru rakamın doğru yerde bulunduğu anlamına gelir. - rakamı ise doğru rakamın yanlış yerde olduğu anlamına, bu ipuçlarından yararlanarak doğru sayıyı en az denemede bulmaya çalışırsınız. Rakamları farklı 4 haneli bir sayı oluşturabilmek için daha önceki örneğimizdeki kodu kullandık. Sayıları karşılaştırmak içinse öncelikle enumerate metodunu kullanarak her rakamı basamaklarıyla eşleştirdik ve for döngüsü kullanarak konumlarını kıyasladık. Eğer rakam ve bulunduğu konum birbirine eşitse cikti değişkenine + ekledik ancak rakam eşit konum farklıysa çıktı değişkenine - ekledik. Böylece kullanıcıya ipucunu sunmuş olduk.

Hiç yorum yok:

Yorum Gönder