プログラム上達したいな blog

プログラム書けるようになりたいアウトプット用

CryptoZombies レッスン4

cryptozombies.io

 

 

ゾンビのバトルシステムを

構築していくらしい

がんばろ

 

 

チャプター1

payable修飾詞

payable関数は、solidityとEthereumをこんなにもクールにしているものの1つといえる。Etherを受け取ることができる特別なタイプの関数なんだ。

ちょっとじっくりと考えてみよう。お主達が通常のウェブサーバー上でAPI関数を呼び出すとき、ファンクション・コール(関数呼び出し)に併せてUSドルを送ることはできない。ビットコインでもダメだ。

だがイーサリアムでは、お金(Ether)もデータ(トランザクションの内容)も、コントラクト・コード自体も全てイーサリアム上にあるから、ファンクション・コール及びお金の支払いが同時に可能だ。

関数を実行するため、コントラクトへいくらかの支払いを要求するというようなすごく面白いこともできてしまうのだ。

 なんか凄そう

 

ファンクションコールとは...

f:id:gjjjjcdssvgg:20180628190809p:plain

デジモン??

ããã¡ã³ã¯ã·ã§ã³ã³ã¼ã«ããã¸ã¢ã³ãã®ç»åæ¤ç´¢çµæ

みんな楽しそうやなー

 

 

プログラムの

ファンクションコールはこんな感じ

https://wa3.i-3-i.info/word12295.html

 

お金(Ether)のやり取りをする時には

payableを使うのかな?

 

 

チャプター2

withdraw関数

の前に

f:id:gjjjjcdssvgg:20180628192226p:plain

画像の中の文章を見ると

コントラクトに送られたEth

なってますわ

まあ、文脈からわかるんで

何の問題もないんですけど

調子乗って指摘してみました

すいません

 

payableを使ってそのままに

しておくと

コントラクトにEtherが

入ったままになってるから

取り出す必要があるらしいです

 

どこに取り出すんやろ?

 

取り出すには

withdraw関数を使う

 

transfer関数というものも

あるらしい

この関数を使うと

Etherをとあるアドレスに送る

ことができるらしい

 

ãã¨ããç§å­¦ã®è¶é»ç£ç ²sãã®ç»åæ¤ç´¢çµæ

 

楽しそう

 

 

チャプター3

ゾンビバトルの機能追加

contractの外枠の書き方

忘れてたなー

 

 

チャプター4

乱数生成には結構気を

入れないといけなさそう

 

 

チャプター5

ゾンビが戦うよー

 

 

チャプター6

f:id:gjjjjcdssvgg:20180628201217p:plain

思いつきませんでした!

すいません!

require,require,require,require

msg.sender,msg.sender,

msg.sender,msg.sender

 

 

チャプター7

リファクタリング

さらに倍!!!

リファクタリング→制限みたいな

- リファクタリングとは何か?

 

 

ãåå ã®è¡ãã®ç»åæ¤ç´¢çµæ

 

 

チャプター8

zombieAttack.solの設定

 

 

チャプター9

ゾンビの勝敗を決めるよ

構造体 うーむ

忘れてるなー

uint id = zombies.push(Zombie(_name, _dna, 1, uint32(now + cooldownTime), 0, 0)) - 1;
 
引数多すぎません?w
 
 

チャプター10

ゾンビが勝つよ

 

 

チャプター11

ゾンビが負けるよ

 

 

チャプター12

まとめ

f:id:gjjjjcdssvgg:20180628215802p:plain

f:id:gjjjjcdssvgg:20180628215818p:plain

f:id:gjjjjcdssvgg:20180628215833p:plain

ふぅ

 

 

おわりに

 

菅野でも勝てへんかったかー

混セすぎる...