Random modülü, Python içinde sözde-rastgele sayıların üretilmesi için kullanılır. Tabii ki evrenimizde hiçbir şey rastgeleliğin eseri değildir, fizik kuralları sonucunda her zar atışının sonucu, her çekilişin kazananı bellidir. Ama random modülünün kompleks bir algoritma ile oluşturduğu sayı dizisinden alınan sayılar birçok pratik kullanım için yeterince “rastgele”dir. 

Random modülünün çok kompleks matematiksel kullanımları vardır. Bu bölüm sadece temel fonksiyonlarını işlemektedir. 

Random modülünü kullanmak için önce programımıza yüklememiz gerekiyor. Bunu “import” ile random modülünü alarak yaparız:

Bölüm 1: Random ile Rastgele Sayılar Elde Etmek

random()

Şimdi, önce en basit random fonksiyonunu  alalım: random(). Bütün bu fonksiyonlar  modülümüzün parçası olduğu için hepsinin başında ait oldukları modül yazacaktır. random() fonksiyonu şu şekilde kullanılır:

Bu fonksiyonun ürettiği sayı “float” türünden 0.0 ile 1.0 arasında bir ondalık sayıdır. 

randrange(x,y,z)

x ve y arasında, z ile bölümünün kalanı x olan  bir sayı döndürür. Aşağıdaki gibi kullanılabilir:

Bu kodun çıktısı, 0 ile 100 arasında bulunan ve 4 ile tam bölünen (bölümünün kalanı 0 olan) bir sayıdır. 

randint(x,y)

x ve y arasında,x dahil y dahil olmamak üzere rastgele bir integer bulur. 

Bölüm 2: Random ile Listeler Üzerinde İşlemler

sample(liste,x)

Bir listeden, x kadar eleman alarak yeni bir liste döndürür. Yani:

Bu kodun çıktısı, listedeki  5 harften iki tanesini içeren bir listedir. Bu liste [‘e’,’l’] , [‘c’,’e’] ve diğer bütün kombinasyonlar olabilir. 

shuffle(liste)

Bir listenin elemanlarının sırasını karıştırır.  Fonksiyonun kendisi çıktı vermediğinden dolayı doğrudan print() ile yazdırılamaz ancak karıştırılan liste sonradan yazdırılabilir:

Bu kodun çıktısı en baştaki listenin karıştırılmış halidir.

choice(liste)

Listeden rastgele bir eleman seçer. 

——-

Taş-Kağıt-Makas

Taş, kağıt, makas oyununu python ile yazmak için önce mümkün olan seçenekleri bir tablo yapalım. Taş kağıt ve makas değerlerini sayılar ile de temsil edebiliriz, ancak daha anlaşılır olması için stringler ile yapalım.

Şimdi, rakibin seçimi x olmak üzere bu üç değerden birisi olacaktır. Dolayısıyla bu üç değerden birisini seçelim:

Şimdi de oyuncu seçimini yapsın:

Şimdi zaman karşılaştırma yapma zamanı. Öncelikle berabere gelmeyi ölçelim:

Bundan sonra, “elif” kullanarak oyuncunun kazandığı durumları yazalım. Taş-kağıt-makas’ta kazandığımız 3 durum vardır:

Oyuncu y, rakip x olmak üzere:

y taş ve x makas ise;

y kağıt ve x taş ise,

y makas ve x kağıt ise

kazanırız. Şimdi bu üç durumu koda çevirelim:

NOT: and ifadesi birleştirdiği mantıksal ifadelerin aynı anda doğru olduğu durumda, or ise birleştirdiği ifadelerin en az birisinin doğru olduğu durumda doğrudur. Yukarıda parantezler içinde yazılan 2’şer durumun ikisi birlikte doğruysa o parantezin tümü doğrudur ve parantezlerin herhangi birinin doğru olması ifadenin tümünü doğru yapar. Yani kullanıcının kazandığı 3 durumun herhangi birinin var olması kazanmasına yol açar.

Şimdi, kazanması durumunda ekrana bir mesaj da yazalım:

Şimdi, yukarıdaki korkunç 3 parantezli 6 eşitlikli mantıksal ifadenin aynısını kaybetme durumları için yazacağımızdan korkuyorsanız korkmanıza gerek yok. Oyuncu eğer berabere kalmıyorsa ve kazanmıyorsa, kaybediyordur. Dolayısıyla: 

9 satırda taş-kağıt-makas 🙂 Eğer biraz daha ilginç olmak istersek, kullanıcının ve rakibin seçimlerini de ekrana yazabiliriz.

Ve eğer gerçekten taş-kağıt-makas oynamayı seviyorsanız, while döngüsü kullanarak oyunu sonsuza dek oynayabilirsiniz:

En aşağıdaki “eşittir” işaretleri sadece konsoldaki mesajları birbirinden ayırmak içindir. Şimdi oyunumuzu sürekli oynayabiliriz:

Oyunumuza ekleyebileceğimiz şeyler sadece yaratıcılığımızla kısıtlı. Örneğin, bir skor sayacı ekleyelim:

skor sayacı her oynanışta sıfırlanmasın diye, while döngüsünün parçası değildir. Şimdi, kazanınca skor artsın. 

Her seferde skorumuz ekrana yazılsın:

Tüm sorularınızı, isteklerinizi ve yaptığınız programlarınızı benimle @ tulanDenizcan adresinden paylaşabilirsiniz!.

0
like
0
love
0
haha
0
wow
0
sad
0
angry
1 Yorum konuları
0 Konu cevapları
0 İzleyiciler
 
En çok tepki verilen yorum
En yeni yorumlar
1 Yorum yazarları
mustafa Son yorum yazarları
  Abone ol  
En Yeniler Eskiler Beğenilenler
Bildir
mustafa
Üye

Teşekkürler.