Öncelikle programa başlamadan önce kütüphaneleri ekleriz bildiğiniz üzere C diline yeni başlamışsanız ilk olarak iki kütüphane eklersiniz;
#include stdio.h
#include stdlib.h
Şeklinde bu iki kütüphaneyi ekledikten sonra programımızda C dilinin bir çok metofunu kullanabiliyorduk bu metodlar arasında rand() yani Random(Rastgele) sayı üretme metoduda mevcut.Bizim yapacağımız sayı tahmin oyunundada bilgisayar hafızadan bir sayı tutacak ve kullanıcı bunu 5 hakta tahmin etmeye çalışacak.
rand() Metodunun çalışma matığını kısaca açıklayacak olursak bir kod satırında kullanımı şu şekildedir:
#include stdio.h
#include stdlib.h
int main(){
int rastgelesayi;
rastgelesayi=rand();
}
şeklinde bir kullanımı vardır.Fakat sizinde farkedeceğiniz üzere program her çalıştığında aynı sayıyı size gösteriyor.Bunun önüne geçmek için bir başka metodumuz olan srand(time(NULL)) metodumuzu kütüphanesini dahil ederek çağırmamız gerekir.Bunu yapmamızda ki amacımız her seferinde hafızadaki sayıyı değiştirmesi için sistem saatini tetiklemektir.Random sayı üretmenin mantığı budur.Bilgisayar kendisi herhangi bir yerden yardım almadan bir iş yapamayacağından referans olarak sistem saatini alır.
#include stdio.h
#include stdlib.h
int main(){
int rastgelesayi;
srand(time(NULL));
rastgelesayi=rand();
}
Artık her seferinde farklı bir değer alacağız.Ama size bu kadar büyük sayılar lazım değil bir aralık istiyorsunuz.Örneğin; 0 ile 100 arası gibi.Bunun için rand() metodumuza bir kaç ekleme yapalım.
0+rand()%100; sizin için 0 ile 100 arasındaki sayıları bulacaktır.Bunun mantığı şu şekildedir.
"+" işaretinden önceki sayı başlangıc sayısıdır."%" dan sonraki sayı ise "+" işaretinden önceki sayı ile toplandığı zaman size son sınırı verir.
Örneğin;
5+rand()%15;
Bu işlem bize 5 ile 20 arasında bir sayı tutar.
-5+rand()%10;
Bu işlem bize -5 ile 5 arasında bir sayı tutar.
İlk yazdığımızda 0+rand()%100; şeklinde yazmıştık.Eğer başlangıç değeri sıfır ise direk olarak
rand()%100; şeklinde sadece sınırı belirterek oluşturabilirsiniz.
Şimdi programımıza göz atalım:
#include stdio.h
#include stdlib.h
#include time.h#def SOFTSAM
int main(int argc, char *argv[])
{
int sayi,tahmin,hak=0;
srand(time(NULL));
sayi=rand()%100;
do {
hak++;
printf("Tahmininizi giriniz");
scanf("%d",&tahmin);
if(sayi>tahmin&&hak<5 amp="" font="" hak="" nbsp="" tahmin="">5>
printf("biraz daha kucuk bir sayi giriniz\n");
else if(sayi
printf("biraz daha buyuk bir sayi giriniz\n");
else if(sayi==tahmin)
printf("%d. hakkınızda bildiniz",hak);
else
printf("Bilemediniz");
}while(tahmin!=sayi&&hak<5>5>
getch();
return 0;
}
Öncelikle kütüphaneleri dahil ettik ve ardından değişkenlerimizi tanımladık. Random bir sayı ürettirip döngümüzün içinde kullanıcımız dan aldığımız sayıyla her seferinde karşılaştırdık eğer doğru ise bildiniz deyip döngüden çıkarttık bilemediği zaman direk bilemediniz demedik 5 hakkını kullanmasını sağlayıp duruma göre kullanıcıyı yönlendirdik büyük sayı gir küçük sayı gir şeklinde.5 hakkını da kullandıktan sonra kullanıcıya bilemediniz deyip programdan çıktık.
Teşekkürler....
Sorularınız için Facebook , Twitter yada Google+ tan ulaşabilirsiniz.
Hiç yorum yok:
Yorum Gönder