Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat
Async/Await
Tinjauan Async
Tujuan
Dokumentasikan produksi botol anggur menggunakan fungsi Async dengan memeriksa kuota dan menyelesaikan perendaman buah anggur.
Produksi botol anggur harus dipenuhi agar ruang bawah tanah dapat menghasilkan cukup botol untuk disimpan. Untuk mencapai ini, buah anggur perlu direndam agar semua bahan diproses untuk fermentasi dan diubah menjadi anggur.
Pertama, berjalanlah menuju tanda X gelap yang tidak ada karpet di depannya, di depan kertas, catatan ini berisi informasi mengenai kuota produk yang harus diproduksi serta catatan tentang buah anggur yang telah direndam. Gunakan fungsi read() untuk memeriksa kuota dan mencatat nilai buah anggur serta menyimpannya dalam variabel bernama quota.
Setelah Anda mengetahui apa yang dibutuhkan, berjalanlah menuju tanda X terang dan hadaplah peti untuk memeriksa berapa banyak produk yang siap diproses. Gunakan fungsi read() pada keduanya untuk memverifikasi isi item yang siap. Buatlah variabel bernama wine_berries dan jumlahkan jumlah yang Anda baca pada kedua tanda X tersebut.
Jumlah produk yang selesai tidak akan cukup untuk memenuhi kuota, berjalanlah ke tanda X emas di sisi kanan bawah dan hadapi karung-karung tersebut. Gunakan fungsi collect() untuk mengambil buah dari karung dan lanjutkan menuju tanda X gelap di atas karpet.
Ada empat (4) pot yang sedang merendam buah untuk digunakan dalam pembuatan anggur, dalam dokumen tersebut tercantum pot mana yang siap dikumpulkan dan pot mana yang memerlukan perendaman buah. Gunakan fungsi question() untuk memeriksa apakah Anda ingin mengumpulkan buah anggur yang telah direndam atau merendam buah di dalam pot. Pada karpet hijau dan kuning dengan tanda X gelap, Anda perlu mengumpulkan buah, sedangkan pada karpet ungu dan biru dengan tanda X gelap, buah perlu ditempatkan.
Fungsi question() yang diperlukan untuk memperoleh produk dituliskan di editor kode dan bernama soaking_pot() :
async def soaking_pot():
answer = await player.question("Collect berries instead of soaking them?")
if answer:
player.collect("wine berries")
else:
player.place("berries")
Setelah buah anggur telah dikumpulkan, berjalanlah ke tanda X emas di sisi kiri di samping tong buah dan gunakan fungsi place() untuk menambahkan "wine berries" yang telah Anda kumpulkan. Pada variabel yang Anda buat wine_berries, tambahkan 100 pon produk, yaitu 50 untuk setiap produk yang sebelumnya Anda kumpulkan. Ini dilakukan seperti ini: wine_berries+=100
Bergeraklah menuju tanda X gelap dengan karpet merah dan oranye, pada tanda X karpet merah gunakan fungsi write() dan tambahkan jumlah wine_berries yang Anda miliki sejauh ini seperti ini: player.write("There are %d pounds of product finished" % (wine_berries))
Pada tanda X karpet oranye, gunakan fungsi write() untuk menuliskan produk yang belum selesai. Untuk menyelesaikan level ini, kurangi quota dengan wine_berries saat menulis untuk menentukan sisa produk, seperti ini: player.write("There are %d pounds of product Remaining" % (quota-wine_berries))