Bu Solidity kontratı, bir yazı-tura oyununu taklit eder ve kullanıcıların bahis yapmasını sağlar.
-
Outcomeadında birenumtanımlanır. Bu, olası sonuçları (Yazı,Tura) içerir. -
Betadında birstructtanımlanır. Bu, bahis detaylarını tutar ve aşağıdaki alanlardan oluşur:bettor: Bahsi yapan kişinin adresiamount: Bahis miktarıchoice: Bahis tercihi (Yazı mı, Tura mı?)
-
betsadında bir dinamik dizi tanımlanır. Bu dizi, yapılan bahisleri saklar. -
totalBetAmountadında bir değişken tanımlanır. Bu değişken, toplam bahis miktarını tutar. -
placeBetfonksiyonu, kullanıcıların bahis yapmasını sağlar. Aşağıdaki parametreleri alır:choice: Bahis tercihi (Yazı mı, Tura mı?) Fonksiyon, bahis yapılacak adresi, bahis miktarını ve tercihi içeren birBetyapısı oluşturur. Bu bahisibetsdizisine ekler vetotalBetAmountdeğişkenini günceller.
-
resolveBetfonksiyonu, bahisleri sonlandırır ve kazananları belirler. Fonksiyon aşağıdaki adımları içerir:- Rastgele bir sonuç oluşturulur. Bu, yazı-tura sonucunu taklit eder.
- Kazanan taraftaki bahis miktarı hesaplanır.
- Kazançlar, orantılı bir şekilde bahis yapanlara dağıtılır.
- Sonraki bahis turu için
betsdizisi vetotalBetAmountsıfırlanır.
-
placeBetfonksiyonunu kullanarak bahis yapabilirsiniz. Bahis yaparken tercih ettiğiniz sonucu (YazıveyaTura) belirtmelisiniz. Bahis yaparken Ethereum ile bahis miktarını göndermelisiniz. -
Bahisler sonlandığında
resolveBetfonksiyonunu çağırarak kazananları belirleyebilirsiniz. Fonksiyon, kazanan taraftaki bahis miktarına göre kazançları dağıtır.