Adam Asmaca C kodu

İnflames1231

Hectopat
Katılım
19 Ağustos 2016
Mesajlar
121
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar bir ödevim varda yardımcı olur musunuz? Adam asmaca oyunu. C kodu ile gerekli bilgiler aşağıda.

10 kelimeden oluşan bir dizi oluşturulacak.
Kelimeler 5,6,7,8,9 harfli olabilir.
Program çalıştığında kelime rasgele seçilecektir.
Kullanıcını 10 hakkı vardır.
Kullanıcı harfi veya kelimeyi tahmin etmeye çalışcak.
 
Son düzenleyen: Moderatör:
"srand" ile sayı al, rastgele olmuş olur. Boş bir dizi belirle, içerisi alt tire dolu olan. Kullanıcının bildiklerini ona geçir, ekrana onu yazdır.
Direkt yapılmış ödevi de atabilirim ama o zaman hem sen bir şey öğrenemezsin hem de hocan bir yerden aldığını anlar.
 
"srand" ile sayı al, rastgele olmuş olur. Boş bir dizi belirle, içerisi alt tire dolu olan. Kullanıcının bildiklerini ona geçir, ekrana onu yazdır.
Direkt yapılmış ödevi de atabilirim ama o zaman hem sen bir şey öğrenemezsin hem de hocan bir yerden aldığını anlar.
rica etsem atabilirmisin biz çünkü tamamını öğrenmedik senin attığından bi kaç bişi kapmaya çalışabilirim
 
5000 satır olacak şekilde de yazdım. 50 satır olacak şekilde de. Defalarca aynı ödevi yeni öğrendiğimiz şeylerle yapmamızı istediler. Sadece if ve else'ler ile yapabilirsin. Çalmaya vicdanın el veriyorsa internette dolusu var. Esinlenilecek kadar zor bir şey değil.
 
Dostum yapabilcek olsam yardım istemem yine de sağ ol ilgin için yardımlarınızı bekliyorum yine.
Yapamayacak olsan böyle ödev vermezler. If ve else öğrendiğine eminim. Sadece if, else, printf ve scanf ile yapabilirsin. Binlerce satır sürüyor ama yapılabiliyor.
Sana diziyi nasıl kullanacağını söyledim. Bu ilk ödevde aklıma gelse 5000 satır yerine 70-80 satırda yapabilirdim.
 
Arkadaşlar bir ödevim varda yardımcı olur musunuz? Adam asmaca oyunu. C kodu ile gerekli bilgiler aşağıda.

10 kelimeden oluşan bir dizi oluşturulacak.
Kelimeler 5,6,7,8,9 harfli olabilir.
Program çalıştığında kelime rasgele seçilecektir.
Kullanıcını 10 hakkı vardır.
Kullanıcı harfi veya kelimeyi tahmin etmeye çalışcak.

Hâlâ ihtiyacınız var mı bilmiyorum ancak eğer yoksa bile belki başkalarının işine yarar diyerek ekliyorum:

C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int main() {
    while(1) {
        printf("Lütfen 10 kelime giriniz.\n\n");
        char a[10][256];
        int b = 0;
        while(b<10) {
            printf("%i. kelime: ", b+1);
            scanf("%s", a[b]);
            if((unsigned)strlen(a[b])<5) {
                printf("Lütfen en az 5 harfli bir kelime giriniz. Sizin girdiğiniz kelime %i harfli.\n", (unsigned)strlen(a[b]));
                continue;
            }
            else if((unsigned)strlen(a[b])>9) {
                printf("Lütfen en fazla 9 harfli bir kelime giriniz. Sizin girdiğiniz kelime %i harfli.\n", (unsigned)strlen(a[b]));
                continue;
            }
            b++;
        }
        int c[10];
        srand(time(NULL));
        int d;
        for(d=0; d<10; d++)
            c[d] = d;
        for(d=0; d<10; d++) {
            int d0 = c[d];
            int d1 = rand()%9;
            c[d] = c[d1];
            c[d1] = d0;
        }
        // Liste karıştırma kontrolü:
        /*for(d=0; d<10; d++)
            printf("%s\n", a[c[d]]);*/
        for(d=0; d<10; d++) {
            printf("\n%i. tur.\n\n", d+1);
            char d1;
            int d2, d3 = (unsigned)strlen(a[c[d]]);
            char d4[d3];
            char d5[d3];
            for(d2=0; d2<d3; d2++)
                d4[d2] = '_';
            printf("Harf girmek için \"h\", kelime tahmini yapmak içinse \"k\" yazınız: ");
            scanf(" %c", &d1);
            printf("\n");
            if(d1=='h') {
                int d0;
                for(d0=10; d0>0; d0--) {
                    printf("Kalan hakkınız: %i\n", d0);
                    if(d0==10) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=9; j++) {
                                if(i==6 && j<=7) {
                                    printf("_");
                                }
                            }
                            printf("\n");
                        }
                    }
                    else if(d0==9) {
                        int i;
                            for(i=1; i<=6; i++) {
                            int j;
                                for(j=1; j<=9; j++) {
                                    if(i==6 && j>=8) {
                                        printf(" ");
                                    }
                                    else if(i==6 && j!=4) {
                                        printf("_");
                                    }
                                    else if(i>1 && j==4) {
                                        printf("|");
                                    }
                                else {
                                    printf(" ");
                                }                    
                            }
                        printf("\n");
                        }
                    }
                    else if(d0==8) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=9; j++) {
                                if(i==6 && j>=8) {
                                    printf(" ");
                                }
                                else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                    printf("_");
                                }
                                else if(i>1 && j==4) {
                                    printf("|");
                                }
                                else {
                                    printf(" ");
                                }
                            }
                            printf("\n");
                        }
                    }
                    else if(d0==7) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=9; j++) {
                                if(i==6 && j>=8) {
                                    printf(" ");
                                }
                                else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                    printf("_");
                                }
                                else if(i>1 && j==4) {
                                    printf("|");
                                }
                                else if(i==2 && j==5) {
                                    printf("/");
                                }
                                else {
                                    printf(" ");
                                }
                            }
                        printf("\n");
                        }
                    }
                    else if(d0==6) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=9; j++) {
                                if(i==6 && j>=8) {
                                    printf(" ");
                                }
                                else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                    printf("_");
                                }
                                else if((i>1 && j==4) || (i==2 && j==9)) {
                                    printf("|");
                                }
                                else if(i==2 && j==5) {
                                    printf("/");
                                }
                                else {
                                    printf(" ");
                                }
                            }
                        printf("\n");
                        }
                    }
                    else if(d0==5) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=9; j++) {
                                if(i==6 && j>=8) {
                                    printf(" ");
                                }
                                else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                    printf("_");
                                }
                                else if((i>1 && j==4) || (i==2 && j==9)) {
                                    printf("|");
                                }
                                else if(i==2 && j==5) {
                                    printf("/");
                                }
                                else if(i==3 && j==9) {
                                    printf("O");
                                }
                            else {
                                printf(" ");
                                }
                            }
                        printf("\n");
                        }
                    }
                    else if(d0==4) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=9; j++) {
                                if(i==6 && j>=8) {
                                    printf(" ");
                                }
                                else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                    printf("_");
                                }
                                else if((i>1 && j==4) || (i==2 && j==9) || (i==4 && j==9)) {
                                    printf("|");
                                }
                                else if(i==2 && j==5) {
                                    printf("/");
                                }
                                else if(i==3 && j==9) {
                                    printf("O");
                                }
                                else {
                                    printf(" ");
                                }
                            }
                            printf("\n");
                        }
                    }
                    else if(d0==3) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=9; j++) {
                                if(i==6 && j>=8) {
                                    printf(" ");
                                }
                                else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                    printf("_");
                                }
                                else if((i>1 && j==4) || (i==2 && j==9) || (i==4 && j==9)) {
                                    printf("|");
                                }
                                else if((i==2 && j==5) || (i==4 && j==8)) {
                                    printf("/");
                                }
                                else if(i==3 && j==9) {
                                    printf("O");
                                }
                                else {
                                    printf(" ");
                                }
                            }
                            printf("\n");
                        }
                    }
                    else if(d0==2) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=10; j++) {
                                if((i==1 && j==10) || (i==6 && j>=8)) {
                                    printf(" ");
                                }
                                else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                    printf("_");
                                }
                                else if((i>1 && j==4) || (i==2 && j==9) || (i==4 && j==9)) {
                                    printf("|");
                                }
                                else if((i==2 && j==5) || (i==4 && j==8)) {
                                    printf("/");
                                }
                                else if(i==3 && j==9) {
                                    printf("O");
                                }
                                else if(i==4 && j==10) {
                                    printf("\\");
                                }
                                else {
                                    printf(" ");
                                }
                            }
                            printf("\n");
                        }
                    }
                    else if(d0==1) {
                        int i;
                        for(i=1; i<=6; i++) {
                            int j;
                            for(j=1; j<=10; j++) {
                                if((i==1 && j==10) || (i==6 && j>=8)) {
                                    printf(" ");
                                }
                                else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                    printf("_");
                                }
                                else if((i>1 && j==4) || (i==2 && j==9) || (i==4 && j==9)) {
                                    printf("|");
                                }
                                else if((i==2 && j==5) || (i==4 && j==8) || (i==5 && j==8)) {
                                    printf("/");
                                }
                                else if(i==3 && j==9) {
                                    printf("O");
                                }
                                else if(i==4 && j==10) {
                                    printf("\\");
                                }
                                else {
                                    printf(" ");
                                }
                            }
                            printf("\n");
                        }
                    }
                    printf("\n");
                    int e, e0 = 0;
                    char e1;
                    for(d2=0; d2<d3; d2++)
                        printf("%c ", d4[d2]);
                    printf("\n\nHarf giriniz: ");
                    scanf(" %c", &e1);
                    for(e=0; e<d3; e++) {
                        if(a[c[d]][e]==e1) {
                            d4[e] = e1;
                            e0 = 1;
                        }
                    }
                    if(e0==1)
                        d0++;
                    for(d2=d3; d2<9; d2++)
                        d4[d2] = 0;
                    if(strcmp(a[c[d]], d4)==0) {
                        for(e=0; e<d3; e++) {
                            if(a[c[d]][e]==e1) {
                                d4[e] = e1;
                                e0 = 1;
                            }
                        }
                        printf("\n");
                        for(d2=0; d2<d3; d2++)
                            printf("%c ", a[c[d]][d2]);
                        printf("\n\nOyunu kazandınız, tebrikler!\n\n\n");
                        break;
                    }
                }
                if(strcmp(a[c[d]], d4)!=0) {
                    int i;
                    for(i=1; i<=6; i++) {
                        int j;
                        for(j=1; j<=10; j++) {
                            if((i==1 && j==10) || (i==6 && j>=8)) {
                                printf(" ");
                            }
                            else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                printf("_");
                            }
                            else if((i>1 && j==4) || (i==2 && j==9) || (i==4 && j==9)) {
                                printf("|");
                            }
                            else if((i==2 && j==5) || (i==4 && j==8) || (i==5 && j==8)) {
                                printf("/");
                            }
                            else if(i==3 && j==9) {
                                printf("O");
                            }
                            else if((i==4 && j==10) || (i==5 && j==10)) {
                                printf("\\");
                            }
                            else {
                                printf(" ");
                            }
                        }
                        printf("\n");
                    }
                    printf("\nÜzgünüz, kaybettiniz! Doğru kelime: \"%s\" olacaktı.\n", a[c[d]]);
                }
            }
            else if(d1=='k') {
                for(d2=0; d2<d3; d2++)
                    printf("%c ", d4[d2]);
                printf("\n\nKelime giriniz: ");
                scanf("%s", d5);
                printf("\n");
                if(strcmp(a[c[d]], d5)==0) {
                    for(d2=0; d2<d3; d2++)
                        printf("%c ", a[c[d]][d2]);
                    printf("\n\nOyunu kazandınız, tebrikler!\n\n\n");
                }
                else {
                    int i;
                    for(i=1; i<=6; i++) {
                        int j;
                        for(j=1; j<=10; j++) {
                            if((i==1 && j==10) || (i==6 && j>=8)) {
                                printf(" ");
                            }
                            else if((i==6 && j!=4) || (i==1 && j>=4)) {
                                printf("_");
                            }
                            else if((i>1 && j==4) || (i==2 && j==9) || (i==4 && j==9)) {
                                printf("|");
                            }
                            else if((i==2 && j==5) || (i==4 && j==8) || (i==5 && j==8)) {
                                printf("/");
                            }
                            else if(i==3 && j==9) {
                                printf("O");
                            }
                            else if((i==4 && j==10) || (i==5 && j==10)) {
                                printf("\\");
                            }
                            else {
                                printf(" ");
                            }
                        }
                        printf("\n");
                    }
                    printf("\nÜzgünüz, kaybettiniz! Doğru kelime: \"%s\" olacaktı.\n", a[c[d]]);
                }
            }
            else {
                printf("Hatalı giriş yaptınız. Lütfen tekrar deneyiniz.\n");
                continue;
            }
        }
        while(1) {
            char e_h;
            printf("\nTekrar oynamak için \"e\", oyundan çıkmak için \"h\" yazınız: ");
            scanf(" %c", &e_h);
            if(e_h=='e')
                break;
            else if(e_h=='h')
                exit(0);
            else {
                printf("Hatalı giriş yaptınız. Lütfen tekrar deneyiniz.\n");
                continue;
            }
        }
    }
    return 0;
}

  • Array 10 strings alıyor. (Array boyutunu ve loop variableları ayarlayarak değiştirebilirsiniz.)
  • Program yazdığınız gibi 5-9 char arası stringsleri kabul ediyor. (Farklı girildiğindeyse hata veriyor.)
  • Stringsler array içine random bir şekilde yerleştiriliyor. (Kontrol etmek isterseniz comment bıraktığım kısma bakın.)
  • Kullanıcının 10 hakkı vardır. 10´uncu seferde de başarısız olursa adam asılıyor.
  • Kullanıcı isterse charı, isterse de stringsi tahmin etmeye çalışabilir.

Ben birkaç kez test ettim ancak sorunsuz çalıştığını garanti edemem. Ayrıca açıklamanızda 10 hakkın sadece harf için mi, yoksa kelime için de geçerli olup olmadığı belirtilmemişti. Ben sadece harf için 10 hak verdim. Kelime tahmini yapılmak istendiği zaman tek hak var. Bunun dışında eğer bir sorun yaşarsanız sorabilirsiniz. Eğer yapabilirsem yardımcı olmaya çalışırım. Kolay gelsin.
 
Son düzenleme:
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı