Unit-7: Perlihatkan CodeMu

Oleh nasrulhamid 164 18 pada Rabu, 7 Agu 2013, 20:35:57


Kembali ke forum soal ini

#php #array-loop-di-php #loop-while-dan-do-while


Petunjuk Diskusi
Silahkan masuk untuk berdiskusi



Maksud: 
Mengacak dadu hingga mendapatkan angka 2 berturut-turut


$k=0;
do{
  $lempar = rand(1,6);
  if ($lempar==2)
  	$k++;
  else
    $k=0;
  echo $lempar;
}while($k<2);
1 jempol


kidofdream
164
1
· 11 tahun, 3 bulan yang lalu · 0 jempol

Coba ngikutin petunjuk, tapi sayangnya saya kurang paham dengan maksudnya. Dadu itu ada 6 sedangkan rand cuma bisa 2 . yaudah saya bikin seadanya. Yang bisa bikin sesuai petunjuk show me the code pliss .. penasaran haha..

btw ini code saya ( ini coba ngikutin petunjuk tapi seadanya aja haha ) :

do {
  $acak = rand(1,2);
  if ($acak) {
    $acak2 = rand(1,6); echo "\$acak2 = " . $acak2;
  } echo "\$acak = " . $acak;
}while ($acak != $acak2);

ganis
198
841
· 11 tahun, 3 bulan yang lalu · 0 jempol

@nasrulhamid

sekarang bagaimana code untuk "Mengacak dadu hingga mendapatkan 2 angka yang sama berturut-turut" bukan "angka 2 berturut-turut...???

@kidofdream

"rand()" = angka 0 hingga RAND_MAX.
"rand(x,y)" = angka x hingga y.

untuk code anda, anda sendiri menggunakan rand(1,6) di baris ke 4.

code di dalam "if ($acak)" akan selalu dijalankan karena $acak bernilai 1 atau 2 yang nilainya selalu benar. Sehingga fungsi dari "if" nya untuk apa?

Dan juga dengan code anda, ada kemungkinan dadu akan tetap dilempar walaupun sudah dua angka yang sama berturut2 keluar. Misalnya $acak = 1, $acak2 = 2, iterasi berikutnya $acak = 2, $acak2 = 1. Seharusnya loop ini berhenti saat $acak2 = 2  dan $acak = 2.

kidofdream
164
1
· 11 tahun, 3 bulan yang lalu · 0 jempol

iya, ane baru inget fungsi rand itu parameter nya buat batasannya bukan angka berapa aja :D

Thanks buat koreksi nya , ntar ane cobain lagi. Skrg udah rada paham maksudnya 

nasrulhamid
164
18
penanya
· 11 tahun, 3 bulan yang lalu · 2 jempol

Ini #CodeSaya untuk mendapatkan 2 angka yang sama berturut-turut:

$x=0;
do{
  $lempar = rand(1,6);
  if ($lempar==$x)
  	$k++;
  else{
    $x=$lempar;
    $k=1;
  }
  echo $lempar;
}while($k<2);

gazid
108
7
· 11 tahun, 2 bulan yang lalu · 2 jempol

Saya mencoba sampai hampir 1 jam...huhuhuuuhu,,,

correct me if i'm wrong, guys

///CODE


$banyak=2;    //menetukan banyak lemparan
$matadadu=rand(1,6);  //ambil nilai acak mata dadu.
for($x=0;$x<2;$x++){    // jalanin "looping" pake for
  do{                  //lakukan echo mata dadu yang telah di "looping"
    echo "Mata dadu " .$matadadu ." Telah keluar sebanyak dua kali berturut-turut";
  }
  while($x++);			//selama $x-nya bertambah/dilempar
}

dandykr
223
2
· 10 tahun, 10 bulan yang lalu · 0 jempol

Ini code punya ane gan o:)
Ane bikin se simpel mungkin

//CODE

$dadu = 0;
do {
  $tmpdadu = $dadu;
  $dadu = rand(1,6);
  echo "(".$dadu.")". " ";
} while ($tmpdadu != $dadu);

Wahaboni
68
1
· 9 tahun, 10 bulan yang lalu · 1 jempol

ini yang paling pusing nihhhhh

ganis
198
841
· 9 tahun, 10 bulan yang lalu · 0 jempol

hi @Wahaboni!!

Semangat! Baca instruksi dengan teliti dan kerjakan secara bertahap! ^_^

Sementara itu, jika ada kesulitan bisa didiskusikan disini.

anefirman
208
96
· 9 tahun, 7 bulan yang lalu · 1 jempol

pasti udah jelas donk di uraikan para master :D