Saturday, October 15, 2016

Program Tebak Angka dalam Bahasa C

Hai mas bro dan mbak sis. Sudah lama juga ternyata nggak nulis tentang algoritma dan pemrograman.

Kali ini saya mas ganteng akan memberikan contoh kode program tebak angka dalam bahasa C. Tapi kali ini beda. Saya tidak membahas bagaimana algoritma sebuah program tebak angka tersebut. Sebagai gantinya saya berikan beberapa komentar di sana sini dengan harapan dapat memperjelas kode.

Inti dari program ini adalah bagaimana menghasilkan angka acak untuk ditebak oleh user. Dan program akan mengatakan apakah tebakan dari user itu kekecilan atau kebesaran sampai user menginput angka yang benar.

Cekidot!

#include <stdio.h>
#include <stdlib.h>
#define MAX_ANGKA (100 + 1)

int main() {
    char mulai;
    int tebakan, angka_user, langkah;

    time_t t;
    srand((unsigned) time(&t));

    // jalan terus sampai user menekan karakter selain y
    do {
        // inisialisasi angka_user dan langkah
        angka_user = 0;
        langkah = 0;

        // set angka tebakan
        tebakan = rand() % MAX_ANGKA;
        if (tebakan == 0) tebakan = 1;

        // ulangi terus sampai angka tebakan dan angka inputan user sama
        while (angka_user != tebakan) {
            // tambahkan jumlah langkah
            langkah++;
            printf("Masukkan angka tebakan Anda: ");
            scanf("%d", &angka_user);
            getchar(); // quick fix. setelah scanf harus ditambahkan getchar agar bisa jalan

            if (angka_user > tebakan) { // jika angka user terlalu besar
                printf("Uh! Kebesaran!\n");
            } else if (angka_user < tebakan) { // jika angka user terlalu kecil
                printf("Uh! Kekecilan!\n");
            } else { // jika sudah berhasil menebak. karena jika bukan "lebih dari" dan "kurang dari", berarti "sama dengan"
                printf("Mantap! Anda menebak dalam %d kali\n\n\n", langkah);
            }
        }

        // pertanyaan apakah mau main lagi?
        printf("Masih mau main lagi? (y jika ya) ");
        scanf("%c", &mulai);
        getchar();
    } while (mulai == 'y');

    return 0;
}

No comments:

Post a Comment