Game hilo a number guessing game with simple rules, a.

Berikut ini adalah pertanyaan dari fauziandi150 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Game hiloa number guessing game with simple rules, a. There are 2 players, A and B
B. player A thinks of a number from 1 to 100 C. Player B guesses a number
D. Player A responds with "too high" , "too low" , or "you win" E. Player B and A continue to guess and respond until B wins (or give up)

Tuliskan algoritma dari data di atas
Tlg bantuannya​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Jawaban:

Deskripsi Persoalan

Game Hi-Lo is a number guessing game with simple rules,
a) There are two players, A and B.
b) Player A thinks of a number from 1 to 100.
c) Player B guesses a number.
d) Player A responds with “too high”, “too low”, or “you win”.
e) Players B and A continue to guess and respond until B wins (or gives up).

Ditanyakan:

Algoritma

Penyelesaian

Pada persoalan ini, kita dapat menganggap player A adalah komputer, sedangkan player B adalah user yang bermain. Oleh karena itu, algoritma yang dimaksud adalah algoritma pada sisi player A.

Kita juga dapat merancang algoritma gabungan, di mana player A dan player B dimainkan oleh komputer.

Dalam algoritma, akan digunakan 2 variabel, yaitu:

  • a: bilangan yang ditetapkan oleh player A, dan
  • b: bilangan tebakan dari player B.

Algoritma akan melibatkan looping yang diulang selama b ≠ a dan b ≠ 0. Dalam hal ini, b = 0 adalah kondisi di mana player B menyerah (give up).

Algoritma Player A (atau Komputer)

Notasi Deskriptif

1. Inisialisasi variabel a dengan sebuah bilangan acak dalam rentang 1 hingga 100.

2. Lakukan perulangan/looping:

  1. Baca masukan (input) bilangan ke dalam variabel b.
  2. Jika b > a, maka cetak “too high”.
    Jika b < a, maka cetak “too low”.
    Selain kedua kondisi di atas, artinya b = a, maka cetak “you win”.

selama b ≠ a dan b ≠ 0.

Pseudocode

DECLARE a, b AS INTEGER
a ← RANDOM(1, 100)
DO
   READ(b)
   IF b > a THEN
       PRINT(“too high”)
   ELSE IF b < a THEN
       PRINT(“too low”)
   ELSE
       PRINT(“you win”)
WHILE (b != a AND b != 0)

_________________

Algoritma Gabungan

Kita dapat menggunakan sebuah variabel tambahan untuk menyimpan banyak maksimum dari percobaan tebak angka yang boleh dilakukan. Kita namakan variabel ini: max_tries.

Algoritma gabungan ini akan secara otomatis melakukan penebakan/pencarian bilangan sampai ditemukan, atau selama max_tries > 0.

Kita juga memerlukan dua buah variabel lagi, yaitu lowdanhigh, untuk menyimpan batas bawah atau batas atas dari rentang bilangan.

Notasi Deskriptif

1. Inisialisasi variabel a dengan sebuah bilangan acak dalam rentang 1 hingga 100.

2. Inisialisasi low dengan 1, dan high dengan 100.

3. Baca masukan (input) max_tries.

4. Selama max_tries > 0:

  1. Isi b dengan bilangan acak dalam rentang low hingga high.
  2. Kurangi max_tries dengan 1.
  3. Jika b > a, maka:
       Cetak “too high”.
       Ubah high menjadi bernilai sama dengan b.
    Jika b < a, maka:
       Cetak “too low”.
       Ubah low menjadi bernilai sama dengan b.
    Selain kedua kondisi di atas, artinya b = a, maka:
       Cetak “Player B wins!”.
       Keluar dari looping.

5. Jika max_tries = 0, maka
       Cetak “Player B gives up”.
6. Cetak “The number is ”, a

Pseudocode

DECLARE a, b, low, high AS INTEGER
a ← RANDOM(1, 100)
low = 1
high = 100
READ(max_tries)
WHILE (max_tries > 0) DO
   b ← RANDOM(low, high)
   max_tries = max_tries – 1
   IF b > a THEN
       PRINT(“too high”)
       high ← b – 1
   ELSE IF b < a THEN
       PRINT(“too low”)
       low ← b + 1
   ELSE
       PRINT(“Player B wins!”)
       BREAK
   END IF
IF max_tries = 0 THEN
   PRINT(“Player B gives up”)
END IF
PRINT(“The number is ”, a)

_________________

Berikut ini demonstrasi dari beberapa hasil eksekusi program yang mengimplementasikan algoritma gabungan di atas. Program saya tulis dengan bahasa pemrograman Python.

Hasil eksekusi 1

  • Max tries: 10

    Tries left: 10
    Player B is picking a number from 1 to 100.
    Player B's guess => 67.
    => too low

    Tries left: 9
    Player B is picking a number from 68 to 100.
    Player B's guess => 97.
    => too high

    Tries left: 8
    Player B is picking a number from 68 to 96.
    Player B's guess => 70.
    => too low

    Tries left: 7
    Player B is picking a number from 71 to 96.
    Player B's guess => 74.
    => too low

    Tries left: 6
    Player B is picking a number from 75 to 96.
    Player B's guess => 89.
    => too high

    Tries left: 5
    Player B is picking a number from 75 to 88.
    Player B's guess => 88.
    => too high

    Tries left: 4
    Player B is picking a number from 75 to 87.
    Player B's guess => 84.
    => too low

    Tries left: 3
    Player B is picking a number from 85 to 87.
    Player B's guess => 86.
    => too high

    Tries left: 2
    Player B is picking a number from 85 to 85.
    Player B's guess => 85.
    Player B wins!

    Player A's number was 85.

Hasil eksekusi 1

  • Max tries: 5

    Tries left: 5
    Player B is picking a number from 1 to 100.
    Player B's guess => 29.
    => too high

    Tries left: 4
    Player B is picking a number from 1 to 28.
    Player B's guess => 15.
    => too high

    Tries left: 3
    Player B is picking a number from 1 to 14.
    Player B's guess => 13.
    => too high

    Tries left: 2
    Player B is picking a number from 1 to 12.
    Player B's guess => 4.
    => too low

    Tries left: 1
    Player B is picking a number from 5 to 12.
    Player B's guess => 9.
    => too low

    Player B gives up.
    Player A's number is 11.

Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Mon, 28 Nov 22