C++: Game – Gunting, Batu, Kertas

February 15, 2010

Pernah main gunting-batu-kertas? Permainan suit yang dilakukan oleh 2 orang, dengan aturan sebagai berikut:

A gunting, B kertas => A menang
A gunting, B batu => B menang
A gunting, B gunting => draw

..dst.


Sederhananya, gunting selalu menang dari kertas. Kertas selalu menang dari batu. Dan batu selalu memang dari gunting.

Kali ini, Anda akan bermain melawan PC(Personal Computer a.k.a komputer)😀 Anda akan suit/memilih terlebih dahulu, kemudian disusul oleh PC. Permainan akan berakhir jika salah satu dari pemain sudah mengumpulkan 3 poin kemenangan.

Baik, langsung saja, berikut kodenya:

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

#define SKORMENANG 3

char AmbilPilihanAcak (void);
int FungsiMenang(char A, char B);

int main() {
    char kamu, aku;
    int poinku = 0;
    int poinmu = 0;
    int pemenang;

    do {
        cout << "\n\nMasukkan: g, b, atau k";
        cout << "\ngunting(g), batu(b), kertas(k): ";
        cin >> kamu;

        aku = AmbilPilihanAcak();
        cout << "PC memilih " << aku << "\n";

        pemenang = FungsiMenang(kamu, aku);

        if (pemenang == 0) cout << "Draw!\n";
        else if (pemenang == 1) {
            cout << "Anda menang!\n";
            poinmu++;
        }
        else if (pemenang == 2) {
            cout << "PC menang!\n";
            poinku++;
        }
        else cout << "Maaf Anda memasukkan pilihan ilegal!\n";

        cout << "Poin Anda: " << poinmu;
        cout << " Poin PC: " << poinku;
    }
    while (poinmu < SKORMENANG && poinku < SKORMENANG);

    if (poinmu > poinku)
        cout << "\nAnda menang untuk kompetisi ini!\n";
    else
        cout << "\nPC menang untuk kompetisi ini!\n";
    return 0;
}

char AmbilPilihanAcak (void) {
    char pilihan;
    srand(time(NULL));    //inisialisasi generator bilangan acak
    int nilai = rand()%3; //ambil bilangan acak antara 0-2

    switch (nilai){
        case 0: pilihan='b'; break;
        case 1: pilihan='g'; break;
        case 2: pilihan='k'; break;
    }
    return pilihan;
}

int FungsiMenang(char A, char B){
    switch(A){
        case 'b':
            if(B=='g') return 1;
            else if(B=='k') return 2;
            else return 0;
        case 'g':
            if(B=='k') return 1;
            else if(B=='b') return 2;
            else return 0;
        case 'k':
            if(B=='b') return 1;
            else if(B=='g') return 2;
            else return 0;
        default:
            return -1;
    }
}

jika dijalankan, hasilnya kurang lebih seperti ini:

Klik Untuk Memperbesar

null

6 Responses to “C++: Game – Gunting, Batu, Kertas”

  1. cymuh Says:

    hm……
    lumayan juga…..

    COBA AHh……..

  2. cici Says:

    bgus bgt progrm’x, bole mnt pnjlsan s.code’x yg detail biar tw gmn jln’x

  3. Rio Says:

    Mantap gan…

  4. hussen Says:

    thanks….n sedap games nie…. sambil tu dapat jugak back up mini pojet kawe….tq boh…..

  5. Uya91 Says:

    hm… sekian lama ane gak komen karena tidak paham tentang C++, tapi disini penjelasannya sangat mudah dipahami. beraturan, tidak acak-acakan. maju terus gan. ane dukung ni website untuk share ilmu C++. and jangan lupa, share tutor tentang compiler ya gan, biar pemula-pemula gak bingung, kebanyakan pemula tersangkut saat program, ada yang bilang gak mau lah programnya jalan (Pasti karena belum install compiler.) .

    well, itu kode ane ketik dari awal, karena asyik juga belajar sambil praktekin, heee, thanks ya gan. oya, lupa, share juga donk agar bisa graphic, (yang dimaksud adalah, bagaimana orang bisa buat aplikasi bergambar seperti antivirus ataupun OS windows ini dan sebagainya yang sederhana.) kan C++ yang ini, mainnya masih di dos, mohon panduannya gan..


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: