初心者文系主婦がブロックチェーンを学ぶブログ

IT革命のビッグウェーブに乗り遅れた主婦が、ブロックチェーン革命の波にのるべく、ブロックチェーン技術を学ぶブログです。

【CryptZombies】レッスン2チャプター8:ゾンビDNA

平均値

新しいゾンビDNAを計算するためには、元のゾンビのDN単だ:元のゾンビのDNAと捕食された人間のDNAの平均値を出すだけでいい。

function testDnaSplicing() public {
  uint zombieDna = 2222222222222222;
  uint targetDna = 4444444444444444;
  uint newZombieDna = (zombieDna + targetDna) / 2;
  // この例だと 3333333333333333だ。
}

 

テストの実行

①まず、_targetDnaが16桁であることを確認せよ。_targetDnaを_targetDna % dnaModulusと同様にして最後の16桁だけ取り出せばよい。

dnaModulusは、10の16乗を示します。

もし_targetDnaが16桁であれば、10の16乗で割った余りと_targetDnaの値は等しくなります。

したがって、回答は次のとおりになります。

f:id:nomadomama:20181201225741p:plain

 

②次にnewDnaという名前のuint関数を宣言し、myZombieのDNAと_targetDnaの平均値を設定せ。(上の例と同じだ)

注:myZombie.nameとmyZombie.dnaを使ってmyZombieプロパティにアクセスできます。

問題文にもあるとおり、myZombieに「.」をつけるとmyZombeプロパティにアクセスできるので、myZombieのDNAは、myZombie.dnaで表記できます。

したがって、回答は次のとおり。

f:id:nomadomama:20181201230041p:plain

 

③新しいDNAを手に入れたら、_createZombieを呼び出すように。どのパラメータを呼び出せばいいかわからなくなったら、zombiefactory.solを参照せよ。名前が必要になるから、とりあえず"NoName"と名付けておくように。ゾンビの名前を変更する関数はあとで教えるからしばし待て。

_createZombieは、zombiefactory.solで作成した関数です。

f:id:nomadomama:20181201230406p:plain

_createZombieを呼び出すには、_name(string)と_dna(uint)が必要ですが、問題文で_name(string)は”NoName”と名付けるよう指示されています。

また、新しいDNAについは、②で作成したnewDnaが該当するので、回答は次の通りになります。

f:id:nomadomama:20181201230725p:plain

 

お疲れさまでした!

 

 

<参考>

CryptoZombies - イーサリアム上でゲームを開発する方法を学習。Powered by Loom Network