Matlab Eğitimleri 6 – Sayı Tahmin Etme Oyunu
Herkese merhabalar, Matlab Eğitimlerin ‘de 6. yazı ve video ile tekrar karşınızdayım. Bu yazımda sıklıkla kullanılan bir programı yani sayı tahmin etme oyununun algoritmalarını beraber inceleyeceğiz.
Nasıl Bir Algoritma İzlemeliyiz?
Öncelikle şunu bilmemizde fayda var. Kullanıcı tahmin edilen sayıyı bilemezse program devam edecek mi ? Veya kullanıcının isteğine mi bağlı olacak ? Bu soruda kullanıcının isteğine bağlı olarak yapacağımız için while deyimini kullanmamız gerekmektedir. Kullanıcının hangi harfi girdikten sonra programın tekrar çalışacağına karar verdikten sonra rastgele bir sayı üretiyoruz.
Rastgele bir sayı üretmek için rand fonksiyonunu kullanacağız. Rand fonksiyonu 0 ile 1 arasında sayı üretir. bizde 1 ile 2o arasında bir sayı üretmesini istediğimiz için sayıyı 20 ile çarpacağız.
Kullanıcının tahmin olayını şu şekilde bakacağız. Kullanıcının tahmini için 2 olasılık var. Ya doğru tahmin edecek veya yanlış. Doğru tahmin ettiğinde doğru değerini 1 döndürmemiz gerekmekte. Yanlış tahmin ettiğinde ise 0 olacak. Bunun için “~” operatörünü kullanacağız. İlk kullanıldığında değil anlamını taşımaktadır. Daha sonra kullanıcı doğru değeri bulursa 1 olarak geri döndürecektir. Kodlarımıza bakacak olursak;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
clear all clc devam='e'; while devam=='e' gercek_sayi=rand(1); gercek_sayi=20*gercek_sayi; sayi=ceil(gercek_sayi); fprintf('1 ile 20 arasında bir sayı tuttum bulabilecek misin'); fprintf('3 hakkın var Bol şans \n'); dogru=0; for i=1:3 if~dogru disp(' ') tahmin=input('Sayıyı Giriniz :'); if tahmin==sayi fprintf('Tebrikler Doğru Sayıyı Buldunuz'); disp(' ') dogru=1; else if tahmin>sayi fprintf('Tahmin Ettiğiniz Sayı Büyüktür:'); else fprintf('Tahmin Ettiğiniz Sayı Küçüktür:'); end end end end if~dogru disp(' ') fprintf('Malesef Bilemediniz. Tahmin Ettiğim sayı= %d',sayi); end devam=input('Tekrar Denemek İster Misiniz (e/h)','s'); end |
Programımızı çalıştırmadan önce ceil fonksiyonundan bahsetmek istiyorum. Ürettiğimiz sayıları 20 ile çarptıktan sonra virgüllü bir sayı olacaktır. Bu yüzden virgüllü sayıları yuvarlamak lazım. Yuvarlamadığımız takdirde kullanıcının virgüllü sayıyı bulması çok zorlaşacaktır. Şimdi de programımızı çalıştıralım.
Ben sayıyı tahmin edemedim. Umarım siz bulursunuz, bol şanslar. Bir sonraki yazımda görüşmek dileğiyle esen kalın. Videolu anlatımlar için aşağıdaki videoyu izleyebilirsiniz. Bir sonraki yazıda görüşmek dileğiyle, esen kalın.