NFT FLAG WAR (Bir Solidity Projesi) I

NFT FLAG WAR (Bir Solidity Projesi) I

·

3 min read

Bu yazı dizisi üç bölümden oluşmaktadır. İlk bölümde proje tüm yönleriyle anlatılacak, ikinci bölümde solidity uygulaması yapılacak ve son bölümde ise foundry ile solidity kodunun test çalışması yapılacaktır.

Yakın zamanda buildchain topluluğu solidity çalışma grubunca tamamlanan "NFT Flag War" adlı oyunun kodlarını burada sizlerle paylaşacağız ve oyundan bahsedeceğiz. Bu gördüğünüz yazı dizisi; solidity öğrenmek ve test yazmak isteyenler için muhteşem bir kaynaktır. Bu çalışmada tüm emeği geçen arkadaşlara tekrar teşekkür ediyorum.

OYUN MANTIĞI

Oyunun amacı; 50*50 büyüklüğünde toplam 2500 pikselden oluşan boş bir alanın, 10 farklı ülke seçeneği verilerek kullanıcılar tarafından doldurulmasını sağlamaktır. Kullanıcılar öncelikle belirtilen alan üzerinde bir piksel seçecek sonrasında istediği ülkenin bayrağını ve ödeyeceği tutarı seçerek işlem yapacaktır. Oyunun amacı, 2500’lik piksellik alanın tek bir bayrak ile kaplanmasıdır. Kullanıcılar, seçecekleri piksel için ödeyecekleri tutarın %0.001’lik bedelini kontrat hazinesine ödeyeceklerdir. Örnek vermek gerekirse; Kullanıcı x’in daha önce 1 ETH verip aldığı alanı, kullanıcı y 1 ETH’ın üstünde bir bedel ödeyerek alabilecek ayrıca bu işlemde kullanıcı y’den ödeyeceği bedelin %0.001’i de kontrat hazinesi için talep edilecektir. Görüldüğü üzere oyun içinde pazarlık usulü olmayacaktır. Burada yeni alıcının ödeyeceği minimum bedel için bir marj (0.1 ETH) konması düşünülmektedir. Şöyle ki; ilk alıcı 1 ETH ile almışsa yeni alıcının minimum 1.1 ETH ödemesi gerekmektedir. Oyun sonuçlandığında hazinede biriken para, kazanan bayrak piksellerine sahip olan kullanıcılara eşit dağıtılacaktır.

Oyunuzu kafanızda canlandırmanız için yukarıdaki görselleştirmeyi yaptık. Kısaca kullanıcı tarafından seçilen her bir piksel için ülke bayarağı ve fiyat değişkeni seçilecektir.

OYUN MATEMATİĞİ

Oyunumuzda 5 karemiz var.

T0

t0 zamanında oyun, dışarıdan yeni girenlerin 1000 ETH (claim base price) ödeyerek ilk kareleri satın almasıyla başlar.

Bu paranın (1/1000) miktarı fee olarak alınır geri kalan (999/1000) ise oyun hesabına gönderilir.

5000 toplandığını düşündüğünüzde: 5 ether fee olarak, 4995 ise oyun hesabına gönderilir.

T1

t1 zamanında oyun, yeni girenlerin 2000 ETH ödeyerek daha önce satın alınan karelerin tekrar satın alınmasıyla başlar.

Bu paranın (1/1000) miktarı fee olarak alınır geri kalan (999/1000) ise bir önceki durumda bayrağı 1000 eth’ye satın alana gönderilir.

Her yeni kişinin 2000 ile aldığı varsayıldığında her kişiden 2 ether kesilerek bir önceki kişiye 1998 ether gönderilir

T2

Burada Kare1 ‘de daha önce Türkiye bayrağı seçilmiştir ve yeni gelenler bunu almazlar. Yeni girenler 3000 ETH ödeyerek daha önce satın alınan karelerin tekrar satın alır.

Bu paranın (1/1000) miktarı fee olarak alınır geri kalan (999/1000) ise bir önceki durumda bayrağı 2000 eth’ye satın alana gönderilir.

Her yeni kişinin 3000 ile aldığı varsayıldığında her kişiden 3 ether kesilerek bir önceki kişiye 2997 ether gönderilir.

T3

Burada Kare2 ‘de daha önce Türkiye bayrağı seçilmiştir ve yeni gelenler bunu almazlar. Yeni girenler 4000 ETH ödeyerek daha önce satın alınan karelerin tekrar satın alır.

Bu paranın (1/1000) miktarı fee olarak alınır geri kalan (999/1000) ise bir önceki durumda bayrağı 3000 eth’ye satın alana gönderilir.

Her yeni kişinin 4000 ile aldığı varsayıldığında her kişiden 4 ether kesilerek bir önceki kişiye 3996 ether gönderilir.

T4

Burada Kare3 ‘de daha önce Türkiye bayrağı seçilmiştir ve yeni gelenler bunu almazlar. Yeni girenler 5000 ETH ödeyerek daha önce satın alınan kareleri TÜRKİYE bayrağını şeçerek satın alır.

Bu paranın (1/1000) miktarı fee olarak alınır geri kalan (999/1000) ise bir önceki durumda bayrağı 4000 eth’ye satın alana gönderilir.

Her yeni kişinin 4000 ile aldığı varsayıldığında her kişiden 4 ether kesilerek bir önceki kişiye 3996 ether gönderilir.

Toplamda 5 TÜRKİYE bayrağını şeçildiği için oyun tamamlanır.

Toplamda

ilk olarak oyun adresine gelen 4995 ETH

oyun sırasınca toplanan 49 ETH toplanır.

Toplamda 5044 ETH vardır. Türkiye bayrağını satın alan hesaplara 1008 ETH ödenir.

Oyun biter.

OYUN KODU

Oyun kodlarına şuradan erişebilirsiniz. Kodların ayrıntılı powerpoint sunumu şuradadır.

İkinci bölümde solidity uygulamasını gerçekleştireceğiz.

Doç.Dr. Engin YILMAZ

Did you find this article valuable?

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