Şimdi Ara

c barbut oyunu kodum çalışmıyor. bakabilirmisiniz?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
1
Favori
142
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • hayırlı akşamlar barbut oyunu yazmaya çalıştım c ile ancak kurallara uygun çalışmıyor hatamı bulmam da yardımcı olabilir misiniz?

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

    int main(int argc, char *argv[]) {

    // 2 zar atılıyor. toplamları 7 veya 11 ise win.2 3 veya 12 ise lose. bunlar dışında bir sayı ise tekrar zar atılır.
    // tekrar atılan zarlarda atığın sayı veya 7 gelene kadar atılır. 7 gelirse lose attığın sayı gelirse win.

    int zar1,zar2,toplam,oyundurumu,yenitoplam; // 1 = WIN 2=Devam 0 =LOSE

    srand(time(NULL));
    zar1=1+rand()%6;
    zar2=1+rand()%6;
    toplam=zar1+zar2;

    switch(toplam)
    {
    case 7:oyundurumu=1;break;
    case 11:oyundurumu=1;break;
    case 2:oyundurumu=0;break;
    case 3:oyundurumu=0;break;
    case 12:oyundurumu=0;break;
    default :oyundurumu=2;break;
    }

    if(oyundurumu==1)
    {
    printf("Attiginiz zarlar %d,%d.\n\nKazandiniz.",zar1,zar2);
    }

    if(oyundurumu==0)
    {
    printf("Attiginiz zarlar %d,%d.\n\nKaybettiniz.",zar1,zar2);
    }

    if(oyundurumu==2)
    {
    printf("Attiginiz zarlar %d,%d.\n\nYeniden zar atiliyor.",zar1,zar2);


    while(yenitoplam==toplam || yenitoplam==7)
    {
    zar1=1+rand()%6;
    zar2=1+rand()%6;
    yenitoplam=zar1+zar2;
    printf("\nAttiginiz zarlar %d,%d.",zar1,zar2);
    }

    if(yenitoplam==toplam)
    {
    printf("\nAttiginiz zarlar %d,%d.\n\nKazandiniz.",zar1,zar2);
    }

    else
    {
    printf("\nAttiginiz zarlar %d,%d.\n\nKaybettiniz.",zar1,zar2);
    }


    }

    return 0;
    }







  • takip
  • Merhaba

    Öncelikle ne demek istediğini anlamadım fakat tespit ettiğim bir sorun var aşağıda.



    while(yenitoplam==toplam || yenitoplam==7)

    {

    zar1=1+rand()%6;

    zar2=1+rand()%6;

    yenitoplam=zar1+zar2;

    printf("\nAttiginiz zarlar %d,%d.",zar1,zar2);

    }



    if(yenitoplam==toplam)

    {

    printf("\nAttiginiz zarlar %d,%d.\n\nKazandiniz.",zar1,zar2);

    }



    Buradaki if deyimi hiç bir zaman true olmaz çünkü while yenitoplam=toplam eşitliğini bozana kadar zar çevirecektir eşitlik bozulunca sıra if deyimine gelecektir ki eşit olmadığı için if deyiminin içeriği gerçekleşmeyecektir.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Guventpl G kullanıcısına yanıt
    Teşekkür ederim hocam yardımınız için

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.