NFT FLAG WAR (Bir Solidity Projesi) II

NFT FLAG WAR (Bir Solidity Projesi) II

·

2 min read

İkinci bölüme hoşgeldiniz. Bu bölümde remix üzerinden kodumuzun doğrudan uygulamasını yapacağız.

Kodlarımızı remix'e aktaralım. Dots.sol dosyamız ana karargahımızdır.

Dots.sol kodumuzu compile edelim.

Şimdi de ele güne duyurmak için deploy edelim.

Deployed contracts bölümünde, bu kod içerisinde kullanabileceğimiz bütün fonksiyonlar ve değişkenler bulunmaktadır.

Öncelikle oyunun temel parametrelerini tanımlayalım.

startGame fonksiyonuna aşağıdaki parametreleri girelim.

xWidth ile yWidth parametrelerine 2 vererek 4 piksellik alan tanımlıyoruz.

claimBasePrice ve epsilon değerlerine 1 vererek, aslında 1 wei olarak tanımlıyoruz.

Başlayalım.

Value değerine 2 yazarak aşağıda claimLocation fonksiyonunu açıyoruz. y ekseninde 0. alanı ve x ekseninde yine 1. alanı seçerek country'i 2 olarak belirliyoruz. Burada country'i default olarak 0-20 arasındaki sayılar olarak belirledik. Her ülke bir sayıyla temsil edilmektedir.

Devam edelim şimdi başka bir yer alalım.

Value değerine 5 yazarak aşağıda claimLocation fonksiyonunu açıyoruz. y ekseninde 0. alanı ve x ekseninde yine 0. alanı seçerek country'i 3 olarak belirliyoruz.

Value değerine 4 yazarak aşağıda claimLocation fonksiyonunu açıyoruz. y ekseninde 1. alanı ve x ekseninde yine 0. alanı seçerek country'i 3 olarak belirliyoruz.

Value değerine 6 yazarak aşağıda claimLocation fonksiyonunu açıyoruz. y ekseninde 1. alanı ve x ekseninde yine 1. alanı seçerek country'i 3 olarak belirliyoruz.

Şimdi kontrol sağlayalım. Oyun bitti mi?

activeGameIndex'i kullanarak kontrol sağladık. Oyun bitseydi yeni oyun index numarası "1" olurdu. Demek ki oyun bitmemiş ?

Neden oyun bitmedi? Çünkü aşağıdaki koşul sağlanmadı.

(numberOfDotsOccupiedByCountry[gameIndex][country] == (gameMemory.xWidth * gameMemory.yWidth))

Hadi gidip şu koordinatta yer alan 2 numaralı bayrak yerine 3 numaralı byrağı koyalım.

Hata alacaksınız neden ? Çünkü bu alan için daha önce 2 wei ödenmişti. Daha fazla ödemelisiniz.

Artık oldu.

Kontrol sağlayalım.

Oyun bitti.

Üçüncü bölümde foundry testleri yoluyla aynı çalışmayı daha detaylı yapıp sonuçlarını göreceğiz.

Doç.Dr. Engin YILMAZ

Did you find this article valuable?

Support Buildchain by becoming a sponsor. Any amount is appreciated!