Program Gunting Kertas Batu C++

Semester 1
Gunting Kertas Batu


#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;
}
}

No comments:

Post a Comment