Game Hompimpah dengan C++ (masih belom jadi)

Tempat nongkrong. Diskusi bebas di luar topik.
Post Reply
User avatar
SinauUbuntu

Game Hompimpah dengan C++ (masih belom jadi)

Post 12 Jul 2011, 16:59

Berpedoman pada Game Kertas , Batu , Gunting dengan C++ , Saya mencopa membuat game hompimpah. Berikut Scriptnya:
#include
#include
#define menang 3

using namespace std;

char PilihanAcak(){
char pilihan;
srand(time(NULL)); //kunci pembangkit atau disebut umpan bilangan acak
int isi = rand()%2;//menampilkan bilangan acak yang diberikan ke fungsi srand().

switch(isi){
case 0 : pilihan='p';break;
case 1 : pilihan='h';break;
}
return pilihan;
}

int SiapaPemenang(char x,char y,char z){
int putih,hitam;


if(z=='p')
{putih++;}
else {if(z=='h')
hitam++;
else {goto kembalikan;}}

if(y=='p')
putih++;
else if(y=='h')
hitam++;


if(x=='p')
putih++;
else if(x=='h')
hitam++;




if(hitam==3)
return 1;
else if (putih==3)
return 1;
else
{
if(hitam>kamu;

aku = PilihanAcak();
dia = PilihanAcak();
cout Pointmu : ">ulang;

if (ulang == 'Y' || ulang =='y'){
goto atas;
}else{
system("clear");
}
}
Masalahnya, Hasil random selalu sama???
gimana biar bisa kadang sama kadan nggak??? :)


User avatar
indraginanjar
Contact:

Post 12 Jul 2011, 23:42

angka randomnya sama karena, seed yang digunakan menggunakan angka (dari time(NULL)) yang sama.

Mungkin kode berikut ini, bisa menolong untuk memperjelasnya... :)

Code: Select all

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

/* indraginanjar@gmail.com */

int main(){
	/* pembuatan seed pertama */
	srand(time(NULL)); 
	
	int num1 = rand();
	
	/* karena kerja prosesor yang cepat, time(NULL) di pembuatan seed
	 * kedua nilainya masih sama dengan time(NULL) saat pembuatan seed 
	 * yang pertama. Akibatnya nilai yang dihasilkan rand() pun akan 
	 * tetap sama.
	 */
	/* pembuatan seed kedua */
	srand(time(NULL)); 
	
	int num2 = rand();
	
	/* pembuatan seed cukup sekali, karena angka hasil pemanggilan 
	 * dengan seed yang sama, hasil rand() yang pertama akan 
	 * berbeda dengan hasil rand() yang selanjutnya
	 */ 
	int num3 = rand();
	int num4 = rand();
	int num5 = rand();
	printf("num1 = %i\nnum2 = %i\nnum3 = %i\nnum4 = %i\nnum5 = %i", 
			num1, num2, num3, num4, num5);
			
	return 0;
}
Yang hasilnya akan mirip dengan ini:
num1 = 2058044313
num2 = 2058044313
num3 = 1357376375
num4 = 854195994
num5 = 175990569


Post Reply

Who is online

Users browsing this forum: No registered users and 54 guests