Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye
Asenkron/Await
Asenkron İnceleme
Amaç
Async fonksiyonları kullanarak, kota kontrolü yapıp şarap üzümlerini bekleterek şarap şişesi üretimini belgeleyin.
Şarap şişesi üretiminin sağlanması, kilerin stoklanabilecek kadar şişe üretebilmesi için gereklidir. Bunu başarmak için, tüm işlemlerin fermantasyon için hazır hale getirilmesi ve şaraba dönüştürülmesi açısından şarap üzümlerinin bekletilmesi gerekir.
Önce, bir kağıdın önünde, halı olmayan koyu X işaretine yürüyün; bu not, üretilmesi gereken ürün kotası ile hangi üzümlerin bekletildiğine dair bilgileri içermektedir. Kotayı kontrol etmek ve şarap üzümü değerlerini not almak için read() fonksiyonunu kullanın ve bunları quota adında bir değişkende saklayın.
Gerekenler belirlendikten sonra, işlemeye hazır ürün miktarını kontrol etmek için açık X işaretlerine yürüyün ve sandıklara doğru yüz çevirin. Hazır olan öğelerin içeriğini doğrulamak için her iki durumda da read() fonksiyonunu kullanın. wine_berries adında bir değişken oluşturun ve her iki X işaretinde okuduğunuz miktarları toplayın.
Ürün miktarı, kotayı karşılamaya yetmeyecektir; bu yüzden sağ alt kısımdaki altın X işaretine yürüyün ve torbalara yüz çevirin. Torbalardan üzüm toplamak için collect() fonksiyonunu kullanın ve halıların üzerindeki koyu X işaretlerine doğru ilerleyin.
Şarap yapımında kullanılmak üzere üzümleri bekleten dört (4) tencere bulunmaktadır; belgede, hangi tencerelerin toplama için hazır olduğu ve hangi tencerelere üzüm bekletilmesi gerektiği gösterilmektedir. Bekletilmiş şarap üzümlerini toplamak mı, yoksa tencerede üzüm bekletmek mi istediğinizi kontrol etmek için question() fonksiyonunu kullanın. Koyu X işaretli yeşil ve sarı halılarda üzüm toplamanız, mor ve mavi halılarda ise üzüm yerleştirmeniz gerekmektedir.
The question() function necessary to acquire the product is written in the code editor and is named 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")
Şarap üzümleri toplandıktan sonra, sol tarafta üzüm varillerinin yanında bulunan altın X işaretine yürüyün ve topladığınız "wine berries" eklemek için place() fonksiyonunu kullanın. Oluşturduğunuz wine_berries değişkenine, önceden topladığınız her ürün için 50 pound olmak üzere toplamda 100 pound ürün ekleyin. Bu şu şekilde yapılır: wine_berries+=100
Kırmızı ve turuncu halılar üzerindeki koyu X işaretlerine doğru ilerleyin. Kırmızı halı X işaretinde write() fonksiyonunu kullanarak şu ana kadar sahip olduğunuz wine_berries miktarını aşağıdaki gibi ekleyin: player.write("There are %d pounds of product finished" % (wine_berries))
Turuncu halı X işaretinde, henüz tamamlanmamış ürünü yazmak için write() fonksiyonunu kullanın. Seviyeyi tamamlamak için, kalan öğeleri belirlemek üzere quotadan wine_berries çıkararak şunu yapın: player.write("There are %d pounds of product Remaining" % (quota-wine_berries))