【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の値は等しくなります。
したがって、回答は次のとおりになります。
②次にnewDnaという名前のuint関数を宣言し、myZombieのDNAと_targetDnaの平均値を設定せ。(上の例と同じだ)
注:myZombie.nameとmyZombie.dnaを使ってmyZombieプロパティにアクセスできます。
問題文にもあるとおり、myZombieに「.」をつけるとmyZombeプロパティにアクセスできるので、myZombieのDNAは、myZombie.dnaで表記できます。
したがって、回答は次のとおり。
③新しいDNAを手に入れたら、_createZombieを呼び出すように。どのパラメータを呼び出せばいいかわからなくなったら、zombiefactory.solを参照せよ。名前が必要になるから、とりあえず"NoName"と名付けておくように。ゾンビの名前を変更する関数はあとで教えるからしばし待て。
_createZombieは、zombiefactory.solで作成した関数です。
_createZombieを呼び出すには、_name(string)と_dna(uint)が必要ですが、問題文で_name(string)は”NoName”と名付けるよう指示されています。
また、新しいDNAについは、②で作成したnewDnaが該当するので、回答は次の通りになります。
お疲れさまでした!
<参考>
CryptoZombies - イーサリアム上でゲームを開発する方法を学習。Powered by Loom Network