Tavşan Kaplumbağa Yarışı

Tavşan Kaplumbağa Yarışı

Açıklama :

Konsolda basit bir görselleştirmeyle yapılmış tavşan-kaplumbağa yarışı. Tavşanın ve kaplumbağanın adım attığı if yapılarının içindeki değerleri değiştirerek oyunu daha güzel bir hale getirebilirsiniz :)

Kaynak Kod :

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void yazdir(const int, const int);
int kontrol(const int, const int);
int bs=0;

int main(int argc, char *argv[])
{
    int kap=1, tav=1, kontroli=0, ilerleme, bakiye=100, oyun, karakter, dopK, dopT, os=2;
    srand(time(0));
    while(bakiye > 0)
    {
        dopK=4;
        dopT=4;
        
        printf("Bakiyeniz : %d\n", bakiye);
        if(bakiye > 50)
        {
            while(os > 0)
            {
                printf("Doping icin 10 veya 20 yazin.\nTavsan icin 1, kaplumbaga icin 2 yazin(doping on) : ");
                /**/ scanf("%d", &karakter);
                if(karakter == 1 || karakter == 2 || karakter == 10 || karakter == 20)
                os = -1;
                else
                printf("Sadece 1, 2, 10, 20 girebilirsiniz.\n");
            }
            os=2;
            if(karakter == 20)
            {
                bakiye -=50;
                karakter = 2;
                dopK = 4;
            }
            if(karakter == 10)
            {
                bakiye -= 50;
                karakter = 1;
                dopT = 2;
            }
            
            printf("Bakiyeniz : %d\n", bakiye);
            printf("Kac akcelik oynayacaksiniz : ");
            scanf("%d", &oyun);
            
            if(oyun > bakiye)
            {
                bakiye += 50;
                printf("Bakiyenizden buyuk akce oynayamazsiniz.\n\n");
                continue;
            }
        }
        else
        {
            while(os > 0)
            {
                printf("Tavsan icin 1, kaplumbaga icin 2 yazin : ");
                /**/ scanf("%d", &karakter);
                if(karakter == 1 || karakter == 2)
                os = -1;
                else
                printf("Sadece 1, 2 girebilirsiniz.n");
            }
            os=2;
            printf("Kac akcelik oynayacaksiniz : ");
            /**/ scanf("%d", &oyun);
            if(oyun > bakiye)
            {
                printf("Bakiyenizden buyuk akce oynayamazsiniz.\n\n");
                continue;
            }
        }
        while(kontroli == 0)
        {
            printf("\n");
            yazdir(kap,tav);
            int sayici=0;
            for(sayici =0; sayici<10000000; sayici++);
            ilerleme = 1 + rand() %10;
            if(ilerleme <= 2)
            {
                kap += 3;
                tav +=2;
            }
            else if(ilerleme <= 4)
            {
                kap += 3;
                tav += 9;
            }
            else if(ilerleme <= 5)
            {
                kap += 3;
                tav -= 12;
            }
            else if(ilerleme <= 7)
            {
                kap -= 6;
                tav += 1;
            }
            else if(ilerleme <= 8)
            {
                kap += dopK;
                tav += dopT;
            }
            else
            {
                kap += 1;
                tav -= 2;
            }
            if(tav < 0)
                tav = 0;
            if(kap < 0)
                kap = 0;
            kontroli = kontrol(kap, tav);
        }
        kontroli = 0;
        tav = 1;
        kap = 1;
        
        if(bs == karakter)
        {
            bakiye += oyun;
            printf("\nKAZANDINIZ!!");
        }
        else
        {
            bakiye -= oyun;
            printf("\nKAYBETTINIZ!!");
        }
        printf("\n\n");
    }
    
    printf("Game Over..!\n\n");
    return 0;
}

void yazdir(const int k, const int t)
{
    int i=0;
    for(i=0;
    i < 70;
    i++)
    {
        if(k == i)
            printf("K");
        else if(t == i)
            printf("T");
        else
            printf(".");
    }
}

int kontrol(const int k, const int t)
{
    if(t >= 70)
    {
        printf("\n\n\tTAVSAN KAZANDI!!!\n\n");
        yazdir(k, 69);
        bs = 1;
        return 1;
    }
    else if(k >= 70)
    {
        printf("\n\n\tKAPLUMBAGA KAZANDI!!!\n\n");
        yazdir(69, t);
        bs = 2;
        return 1;
    }
    else
    return 0;
}