Masputrawae

Golang • Game Tebak Angka

Pertama

yang di butuhkan import "fmt" wajib, "math/rand", "time" untuk membuat angka acak

 1package main
 2
 3import (
 4    "fmt"
 5    "math/rand"
 6    "time"
 7)
 8
 9func main() {
10    // PROGRAM DI SINI...
11}

Kedua

buat variabel untuk nampung hasil angka acak

1// Untu Seed Acak, agar bisa lebih random hasilnya
2rand.Seed(time.Now().UnixNano())
3var angka int = rand.Intn(21)

Ketiga

buat logika nya

 1fmt.Println("Tebak Angka Antara 0 - 20, kesempatan 5 kali")
 2count := 0
 3
 4for count < 5 {
 5    var tebakan int // Untuk menampung tebakan user
 6    fmt.Printf("Tebak: ")
 7    fmt.Scanln(&tebakan) // Mengambil Tebakan User, dan simpan di variabel tebakan
 8    
 9    // Buat Kondisi (sekenario)
10    // Jika User Menebak Benar cetak ke layar "Selamat Tebakan benar", 
11    // dan hentikan loop dengan break agar program berhenti
12    // Jika User salah kita lempar ke else untuk kondisi selanjutnya
13    
14    if tebakan == angka {
15        fmt.Printf("Selamat Tebakan Benar")
16        break
17    } else {
18        
19        // Jika kesempatan habis kita beritahu hasilnya
20        if count == 4 {
21            fmt.Println("Kesempatan Habis, Jawaban Yang Benar: ", angka)
22        }
23        
24        // Buat Kondisi dimana tebakan kurang dari angka atau lebih dari 
25        // Agar user tahu jawabanya terlalu besar atau kecil (Biar lebih mudah menebak)
26        
27        if tebakan < angka {
28            fmt.Println("Terlalu Kecil")
29        } else if tebakan > angka {
30            fmt.Println("Terlalu Besar")
31        }
32        
33        // Kita Beritahu user sisa kesempatanya
34        fmt.Println("Kesempatan Tinggal: ", 4 - count)
35        
36        //  Setiap Kesalahan kita tambah count
37        // Kenapa? agar tahu user udah berapa kali salah, ini akan menambah variabel count
38        // yang bisa di pakai untuk kondisi looping nya, jadi kesalahan 5 kali
39        // akan mentriger for count < 5, jadi program berhenti, karena kesempatan habis
40        count++
41    }
42    
43}

Full Kode

 1package main
 2
 3import (
 4    "fmt"
 5    "math/rand"
 6    "time"
 7)
 8
 9func main() {
10    rand.Seed(time.Now().UnixNano())
11    var angka int = rand.Intn(21)
12    fmt.Println("Tebak Angka Antara 0 - 20, Kesempatan 5 kali")
13    count := 0
14    
15    for count < 5 {
16        var tebakan int
17        fmt.Printf("Tebak: ")
18        fmt.Scanln(&tebakan)
19        
20        if tebakan == angka {
21            fmt.Printf("Selamat Tebakan Benar")
22            break
23        } else {
24            
25            if count == 4 {
26                fmt.Println("Kesempatan Habis, Jawaban Yang Benar", angka)
27            }
28            
29            if tebakan < angka {
30                fmt.Println("Terlalu Kecil")
31            } else if tebakan > angka {
32                fmt.Println("Terlalu Besar")
33            }
34            
35            fmt.Println("Kesempatan Tinggal: ", 4 - count)
36            count ++
37        }
38    }
39}