Kod: Kodu kopyalamak için üzerine çift tıklayın!
//İbrahim Erkaplan
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
#include<stdlib.h>
void temel_i(void);
void orta_i(void);
void usta_i(void);
void insanotesi_i(void);
void temel_h(void);
void orta_h(void);
void usta_h(void);
void insanotesi_h(void);
int fkt(int);
void istatistik(int,int);
void beklet(int);
main ()
{
int secim,zorluk;
srand(time(0));
system("color F0");//Çıktı rengini değiştirdik.
sec:
system("cls");
//Programın tümünde türkçe karakterleri kullanırken asci kodlarını kullanık.
printf("1. %c%clem Oyunu\n",-104,-97);
printf("2. Haf%cza Oyunu\n",-115);
printf("3. %c%ck%c%c\n",-128,-115,-115,-97);
printf("Devam etmek i%cin l%ctfen oyunu se%ciniz: ",-121,-127,-121);
scanf("%d",&secim);
switch(secim)
{
case 1:
secim1:
system("cls");
printf("1. Temel...\n");
printf("2. Orta...\n");
printf("3. Usta...\n");
printf("4. %cnsan %ctesi...\n",-104,-103);
printf("5. Ana Men%c...\n",-127);
printf("6. %c%ck%c%c...\n",-128,-115,-115,-97);
printf("Devam etmek i%cin l%ctfen seviye se%ciniz: ",-121,-127,-121);
scanf("%d",&zorluk);
switch(zorluk)
{
case 1: temel_i();break;
case 2: orta_i();break;
case 3: usta_i();break;
case 4: insanotesi_i();break;
case 5: goto sec;
case 6: exit(0);
default: goto secim1;
}
case 2:
secim2:
system("cls");
printf("1. Temel...\n");
printf("2. Orta...\n");
printf("3. Usta...\n");
printf("4. %cnsan %ctesi...\n",-104,-103);
printf("5. Ana Men%c...\n",-127);
printf("6. %c%ck%c%c...\n",-128,-115,-115,-97);
printf("Devam etmek i%cin l%ctfen seviye se%ciniz: ",-121,-127,-121);
scanf("%d",&zorluk);
switch(zorluk)
{
case 1: temel_h();break;
case 2: orta_h();break;
case 3: usta_h();break;
case 4: insanotesi_h();break;
case 5: goto sec;
case 6: exit(0);
default: goto secim2;
}
case 3:
printf("ibrahim Erkaplan Yap%cm%cd%cr.",-115,-115,-115);
getch();
exit(0);
default: goto sec;
}
getch();
}
void temel_i(void)
{
int x,y,islem,giris,sonuc,i,dogru=0,yanlis=0;
time_t basla,bitir;//Sitemin saatini saklamak için değişkenler...
system("cls");
printf("Temel seviyeye ho%c geldiniz...\n",-97);
printf("Toplama,%1c%ckartma,%carpma ve B%clme i%clemlerine haz%cr olun...\n",-128,-115,-128,-108,-97,-115);
printf("Do%cru cevab%c bulmak i%cin 7 saniyeniz var kolay gelsin...",-89,-115,-121);
getch();
system("cls");
printf("Temel seviye:\n");
for(i=0;i<21;i++)//Oyunu 20 işlemle sınırlandırdık.
{
islem=rand()%4+1;//Rasgele işlem seçtik
if(islem==1)
{
x=rand()%100;
y=rand()%100;
printf("%d + %d = ",x,y);
sonuc=x+y;
}
if(islem==2)
{
x=rand()%100;
y=rand()%100;
printf("%d - %d = ",x,y);
sonuc=x-y;
}
if(islem==3)
{
x=rand()%10+5;
y=rand()%5+5;
printf("%d x %d = ",x,y);
sonuc=x*y;
}
if(islem==4)
{
do{
x=rand()%15+5;
y=rand()%15+5;
}while(x%y!=0);
//Bölme işlemi tam sayı çıksın diye do while kullandık.
printf("%d / %d = ",x,y);
sonuc=x/y;
}
time(&basla);
//Bu komut o andaki saati baslaya atar.
//basla yerine değişik şeyler kullanabilirsiniz.
scanf("%d",&giris);
time(&bitir);
//Bu komut o andaki saati bitire atar.
//bitir yerine değişik şeyler kullanabilirsiniz.
//difftime fonksiyonu bize iki süre arasındaki farkı saniye olarak
//veriyor. Çıktı ise double.
if(difftime(bitir,basla)<=7)
{
if(sonuc==giris)
{
printf("Cevap Do%cru\n",-89);
dogru+=1;
}
if(sonuc!=giris)
{
printf("Cevap Yanl%c%c\n",-115,-97);
yanlis+=1;
}
}
if(difftime(bitir,basla)>7 && difftime(bitir,basla)<=11)
printf("Biraz daha h%czl%c...\n",-115,-115);
if(difftime(bitir,basla)>11 && difftime(bitir,basla)<=17)
printf("Birizc%ck yava%cs%cn%cz...\n",-115,-97,-115,-115);
if(difftime(bitir,basla)>17)
printf("Baya yava%cs%cn%cz...\n",-97,-115,-115);
}
istatistik(dogru,yanlis);
}
void orta_i(void)
{
int x,y,islem,giris,sonuc,i,dogru=0,yanlis=0;
time_t basla,bitir;//Sitemin saatini saklamak için değişkenler...
system("cls");
printf("Orta seviyeye ho%c geldiniz...\n",-97);
printf("Toplama,%1c%ckartma,%carpma,B%clme,Fakt%criyel ve Mod Alma i%clemlerine haz%cr olun...\n",-128,-115,-128,-108,-108,-97,-115);
printf("Do%cru cevab%c bulmak i%cin 7 saniyeniz var kolay gelsin...",-89,-115,-121);
getch();
system("cls");
printf("Orta seviye:\n");
for(i=0;i<21;i++)//Oyunu 20 işlemle sınırlandırdık.
{
islem=rand()%6+1;//Rasgele işlem seçtik
if(islem==1)
{
x=rand()%1000-100;
y=rand()%1000+100;
printf("%d + %d = ",x,y);
sonuc=x+y;
}
if(islem==2)
{
x=rand()%1000-100;
y=rand()%1000+100;
printf("%d - %d = ",x,y);
sonuc=x-y;
}
if(islem==3)
{
x=rand()%10+5;
y=rand()%5+5;
printf("%d x %d = ",x,y);
sonuc=x*y;
}
if(islem==4)
{
do{
x=rand()%100+10;
y=rand()%20+5;
}while(x%y!=0);
//Bölme işlemi tam sayı çıksın diye do while kullandık.
printf("%d / %d = ",x,y);
sonuc=x/y;
}
if(islem==5)
{
x=rand()%150;
y=rand()%100+1;
printf("%d (mod %d) = ",x,y);
sonuc=x%y;
}
if(islem==6)
{
x=rand()%6;
printf("%d! = ",x);
sonuc=fkt(x);
}
time(&basla);
//Bu komut o andaki saati baslaya atar.
//Basla yerine değişik şeyler kullanabilirsiniz.
scanf("%d",&giris);
time(&bitir);
//Bu komut o andaki saati bitire atar.
//Bitir yerine değişik şeyler kullanabilirsiniz.
//difftime fonksiyonu bize iki süre arasındaki farkı saniye olarak
//veriyor. Çıktı ise double.
if(difftime(bitir,basla)<=7)
{
if(sonuc==giris)
{
printf("Cevap Do%cru\n",-89);
dogru+=1;
}
if(sonuc!=giris)
{
printf("Cevap Yanl%c%c\n",-115,-97);
yanlis+=1;
}
}
if(difftime(bitir,basla)>7 && difftime(bitir,basla)<=11)
printf("Biraz daha h%czl%c...\n",-115,-115);
if(difftime(bitir,basla)>11 && difftime(bitir,basla)<=17)
printf("Birizc%ck yava%cs%cn%cz...\n",-115,-97,-115,-115);
if(difftime(bitir,basla)>17)
printf("Baya yava%cs%cn%cz...\n",-97,-115,-115);
}
istatistik(dogru,yanlis);
}
void usta_i(void)
{
int x,y,islem,giris,sonuc,i,dogru=0,yanlis=0;
time_t basla,bitir;//Sitemin saatini saklamak için değişkenler...
system("cls");
printf("Usta seviyeye ho%c geldiniz...\n",-97);
printf("Toplama,%1c%ckartma,%carpma,B%clme,Fakt%criyel",-128,-115,-128,-108,-108);
printf(",Mod Alma,\nPerm%ctasyon ve Kombinasyon i%clemlerine haz%cr olun...\n",-127,-97,-115);
printf("Do%cru cevab%c bulmak i%cin 7 saniyeniz var kolay gelsin...",-89,-115,-121);
getch();
system("cls");
printf("Usta seviye:\n");
for(i=0;i<21;i++)//Oyunu 20 işlemle sınırlandırdık.
{
islem=rand()%8+1;//Rasgele işlem seçtik
if(islem==1)
{
x=rand()%1000+500;
y=rand()%1000+500;
printf("%d + %d = ",x,y);
sonuc=x+y;
}
if(islem==2)
{
x=rand()%1000+500;
y=rand()%1000+500;
printf("%d - %d = ",x,y);
sonuc=x-y;
}
if(islem==3)
{
x=rand()%10+20;
y=rand()%100+10;
printf("%d x %d = ",x,y);
sonuc=x*y;
}
if(islem==4)
{
do{
x=rand()%1000;
y=rand()%100+1;
}while(x%y!=0);
//Bölme işlemi tam sayı çıksın diye do while kullandık.
printf("%d / %d = ",x,y);
sonuc=x/y;
}
if(islem==5)
{
x=rand()%1000+50;
y=rand()%100+5;
printf("%d (mod %d) = ",x,y);
sonuc=x%y;
}
if(islem==6)
{
do{
x=rand()%5+3;
y=rand()%5;
}while(x<y);
//x y den büyük olmaz diye do while kullandık.
printf("c(%d,%d) = ",x,y);
sonuc=fkt(x)/(fkt(y)*fkt(x-y));
}
if(islem==7)
{
do{
x=rand()%5+3;
y=rand()%5;
}while(x<y);
//x y den büyük olmaz diye do while kullandık.
printf("p(%d,%d) = ",x,y);
sonuc=fkt(x)/fkt(x-y);
}
if(islem==8)
{
x=rand()%5+5;
printf("%d! = ",x);
sonuc=fkt(x);
}
time(&basla);
//Bu komut o andaki saati baslaya atar.
//Basla yerine değişik şeyler kullanabilirsiniz.
scanf("%d",&giris);
time(&bitir);
//Bu komut o andaki saati bitire atar.
//Bitir yerine değişik şeyler kullanabilirsiniz.
//difftime fonksiyonu bize iki süre arasındaki farkı saniye olarak
//veriyor. Çıktı ise double.
if(difftime(bitir,basla)<=7)
{
if(sonuc==giris)
{
printf("Cevap Do%cru\n",-89);
dogru+=1;
}
if(sonuc!=giris)
{
printf("Cevap Yanl%c%c\n",-115,-97);
yanlis+=1;
}
}
if(difftime(bitir,basla)>7 && difftime(bitir,basla)<=11)
printf("Biraz daha h%czl%c...\n",-115,-115);
if(difftime(bitir,basla)>11 && difftime(bitir,basla)<=17)
printf("Birizc%ck yava%cs%cn%cz...\n",-115,-97,-115,-115);
if(difftime(bitir,basla)>17)
printf("Baya yava%cs%cn%cz...\n",-97,-115,-115);
}
istatistik(dogru,yanlis);
}
void insanotesi_i(void)
{
int x,y,islem,giris,sonuc,i,dogru=0,yanlis=0;
time_t basla,bitir;//Sitemin saatini saklamak için değişkenler...
system("cls");
printf("%cnsan %ctesi seviyeye ho%c geldiniz...\n",-104,-103,-97);
printf("Toplama,%1c%ckartma,%carpma,B%clme,Fakt%criyel",-128,-115,-128,-108,-108);
printf(",Mod Alma,\nPerm%ctasyon ve Kombinasyon i%clemlerine haz%cr olun...\n",-127,-97,-115);
printf("Do%cru cevab%c bulmak i%cin 13 saniyeniz var kolay gelsin...",-89,-115,-121);
getch();
system("cls");
printf("%cnsan %ctesi seviye:\n",-104,-103);
for(i=0;i<21;i++)//Oyunu 20 işlemle sınırlandırdık.
{
islem=rand()%8+1;//Rasgele işlem seçtik
if(islem==1)
{
x=rand()%100000-1500;
y=rand()%10000+500;
printf("%d + %d = ",x,y);
sonuc=x+y;
}
if(islem==2)
{
x=rand()%100000-1500;
y=rand()%10000+500;
printf("%d - %d = ",x,y);
sonuc=x-y;
}
if(islem==3)
{
x=rand()%100+15;
y=rand()%1000-50;
printf("%d x %d = ",x,y);
sonuc=x*y;
}
if(islem==4)
{
do{
x=rand()%1000+5;
y=rand()%1000-5;
}while(x%y!=0);
//Bölme işlemi tam sayı çıksın diye do while kullandık.
printf("%d / %d = ",x,y);
sonuc=x/y;
}
if(islem==5)
{
x=rand()%10000+50;
y=rand()%1000+5;
printf("%d (mod %d) = ",x,y);
sonuc=x%y;
}
if(islem==6)
{
do{
x=rand()%10+5;
y=rand()%10;
}while(x<y);
//x y den büyük olmaz diye do while kullandık.
printf("c(%d,%d) = ",x,y);
sonuc=fkt(x)/(fkt(y)*fkt(x-y));
}
if(islem==7)
{
do{
x=rand()%10+5;
y=rand()%10;
}while(x<y);
//x y den büyük olmaz diye do while kullandık.
printf("p(%d,%d) = ",x,y);
sonuc=fkt(x)/fkt(x-y);
}
if(islem==8)
{
x=rand()%10+5;
printf("%d! = ",x);
sonuc=fkt(x);
}
time(&basla);
//Bu komut o andaki saati baslaya atar.
//Basla yerine değişik şeyler kullanabilirsiniz.
scanf("%d",&giris);
time(&bitir);
//Bu komut o andaki saati bitire atar.
//Bitir yerine değişik şeyler kullanabilirsiniz.
//difftime fonksiyonu bize iki süre arasındaki farkı saniye olarak
//veriyor. Çıktı ise double.
if(difftime(bitir,basla)<=13)
{
if(sonuc==giris)
{
printf("Cevap Do%cru\n",-89);
dogru+=1;
}
if(sonuc!=giris)
{
printf("Cevap Yanl%c%c\n",-115,-97);
yanlis+=1;
}
}
if(difftime(bitir,basla)>13 && difftime(bitir,basla)<=17)
printf("Biraz daha h%czl%c...\n",-115,-115);
if(difftime(bitir,basla)>17 && difftime(bitir,basla)<=25)
printf("Birizc%ck yava%cs%cn%cz...\n",-115,-97,-115,-115);
if(difftime(bitir,basla)>25)
printf("Baya yava%cs%cn%cz...\n",-97,-115,-115);
}
istatistik(dogru,yanlis);
}
void temel_h(void)
{ [I]
int x,i,s[3],c[3],dogru=0,yanlis=0,say=0;
system("cls");
printf("Temel seviyeye ho%c geldiniz...\n",-97);
printf("5 Tane say%cy%c akl%cn%czda tutmaya haz%cr olun...\n",-115,-115,-115,-115,-115);
printf("Ekranda say%clar%c g%crmek i%cin 3 saniyeniz var kolay gelsin...",-115,-115,-108,-121);
getch();
system("cls");
printf("Temel seviye:\n");
for(x=1;x<11;x++)//Oyunu 10 işlemle sınırlandırdık.
{
for(i=0;i<3;i++)
{
s[i]=rand()%10+10;
printf("%8d ",s[i]);
}
beklet(5);//5 saniye çıktı ekranda gözükecek.
system("cls");
for(i=0;i<3;i++)
scanf("%d",&c[i]);
for(i=0;i<3;i++)
if(s[i]==c)
say++;
if(say==3)
{
printf("Cevap Do%cru\n\n",-89);
dogru+=1;
}
else
{
printf("Cevap Yanl%c%c\n\n",-115,-97);
yanlis+=1;
}
say=0;
//Her bir soru için sayacı 0 ladık.
}
istatistik(dogru,yanlis);
}
void orta_h(void)
{ [I]
int x,i,s[4],c[4],dogru=0,yanlis=0,say=0;
system("cls");
printf("Orta seviyeye ho%c geldiniz...\n",-97);
printf("4 Tane say%cy%c akl%cn%czda tutmaya haz%cr olun...\n",-115,-115,-115,-115,-115);
printf("Ekranda say%clar%c g%crmek i%cin 4 saniyeniz var kolay gelsin...",-115,-115,-108,-121);
getch();
system("cls");
printf("Orta seviye:\n");
for(x=1;x<11;x++)//Oyunu 10 işlemle sınırlandırdık.
{
for(i=0;i<4;i++)
{
s[i]=rand()%100+10;
printf("%8d ",s[i]);
}
beklet(4);//4 saniye çıktı ekranda gözükecek.
system("cls");
for(i=0;i<4;i++)
scanf("%d",&c[i]);
for(i=0;i<4;i++)
if(s[i]==c)
say++;
if(say==4)
{
printf("Cevap Do%cru\n\n",-89);
dogru+=1;
}
else
{
printf("Cevap Yanl%c%c\n\n",-115,-97);
yanlis+=1;
}
say=0;
//Her bir soru için sayacı 0 ladık.
}
istatistik(dogru,yanlis);
}
void usta_h(void)
{ [I]
int x,i,s[5],c[5],dogru=0,yanlis=0,say=0;
system("cls");
printf("Usta seviyeye ho%c geldiniz...\n",-97);
printf("5 Tane say%cy%c akl%cn%czda tutmaya haz%cr olun...\n",-115,-115,-115,-115,-115);
printf("Ekranda say%clar%c g%crmek i%cin 3 saniyeniz var kolay gelsin...",-115,-115,-108,-121);
getch();
system("cls");
printf("Usta seviye:\n");
for(x=1;x<11;x++)//Oyunu 10 işlemle sınırlandırdık.
{
for(i=0;i<5;i++)
{
s[i]=rand()%100-50;
printf("%8d ",s[i]);
}
beklet(3);//3 saniye çıktı ekranda gözükecek.
system("cls");
for(i=0;i<5;i++)
scanf("%d",&c[i]);
for(i=0;i<5;i++)
if(s[i]==c)
say++;
if(say==5)
{
printf("Cevap Do%cru\n\n",-89);
dogru+=1;
}
else
{
printf("Cevap Yanl%c%c\n\n",-115,-97);
yanlis+=1;
}
say=0;
//Her bir soru için sayacı 0 ladık.
}
istatistik(dogru,yanlis);
}
void insanotesi_h(void)
{ [I]
int x,i,s[6],c[6],dogru=0,yanlis=0,say=0;
system("cls");
printf("%cnsan %ctesi seviyeye ho%c geldiniz...\n",-104,-103,-97);
printf("6 Tane say%cy%c akl%cn%czda tutmaya haz%cr olun...\n",-115,-115,-115,-115,-115);
printf("Ekranda say%clar%c g%crmek i%cin 2 saniyeniz var kolay gelsin...",-115,-115,-108,-121);
getch();
system("cls");
printf("%cnsan %ctesi seviye:\n",-104,-103);
for(x=1;x<11;x++)//Oyunu 10 işlemle sınırlandırdık.
{
for(i=0;i<6;i++)
{
s[i]=rand()%1000-500;
printf("%8d ",s[i]);
}
beklet(2);//2 saniye çıktı ekranda gözükecek.
system("cls");
for(i=0;i<6;i++)
scanf("%d",&c[i]);
for(i=0;i<6;i++)
if(s[i]==c)
say++;
if(say==6)
{
printf("Cevap Do%cru\n\n",-89);
dogru+=1;
}
else
{
printf("Cevap Yanl%c%c\n\n",-115,-97);
yanlis+=1;
}
say=0;
//Her bir soru için sayacı 0 ladık.
}
istatistik(dogru,yanlis);
}
int fkt(int sayi)
{
if(sayi==0 || sayi==1)
return 1;
else
return sayi*fkt(sayi-1);
}
void istatistik(int dogru,int yanlis)
{
int i;
system("cls");
printf("%3d Do%cru: ",dogru,-89);
for(i=0;i<=dogru;i++)
printf("%c",1);
printf("\n%3d Yanl%c%c: ",yanlis,-115,-97);
for(i=0;i<=yanlis;i++)
printf("0");
printf("\n%3d Net: ",dogru-yanlis);
for(i=0;i<=dogru-yanlis;i++)
printf("%c",2);
for(i=0;i<=yanlis-dogru;i++)
printf("0");
getch();
}
void beklet(int zaman)
{
clock_t istenen;
istenen = clock() + zaman * CLK_TCK;
//zamanı suanki saate ekliyor ve istnen süreye atıyor
while( clock() < istenen) {}
//istenen süreye gelinceye kadar döngünün içinde kalınıyor.
}
//İbrahim Erkaplan