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

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

【CryptZombies】レッスン2チャプター13:ボーナスKitty Genes(Ifステートメント)

ここでは、猫ゾンビを作ります。

レッスン1で、ゾンビの外見を決めるのに、16桁の数字のうち最初の12桁しか使いませんでした。

余っているうちの最後の2桁を使って特別な特徴を追加します。

とりあえず、猫ゾンビはDNAを末尾を99とします。

コードにはifを使ってゾンビが猫から作られたかどうかを判定して、DNAの末尾の2桁を99に設定します。

 

Ifステートメント

SolidityのIfステートメントJavaScriptと同じようなものです。

function eatBLT(string sandwich) public {
  // 文字列を比較するときに、 keccak256を使って
  // ハッシュを比較したことを思い出してくれよ
  if (keccak256(sandwich) == keccak256("BLT")) {
    eat();
  }
}

 

テストの実行

①まず、feedAndMultiplyの関数定義を変更して、_speciesという名前のstringの引数を取得できるようにせよ。

f:id:nomadomama:20181203235140p:plain

 

②次に、新しいゾンビのDNAを計算後に、ifステートメントを使用して、_speciesのkeccak256ハッシュと文字列の"kitty"を比較して同じかどうかを判定せよ。

f:id:nomadomama:20181203235557p:plain

 

③ifステートメント内で最後の2桁を99に変更したい。一つの方法としてはこういうものがある:newDna = newDna - newDna % 100 + 99;(※)

f:id:nomadomama:20181204000243p:plain

※newDnaを334455と仮定して考えてみます。そうするとnewDna % 100 は55になり、newDna - newDna % 100は334400です。最後に99を追加して334499という値を取得します。

 

④最後に、feedOnKitty内の関数呼び出しを変更せよ。feedAndMultiplyを呼び出した際に、最後に"kitty"パラメータを追加せよ。

①でfeedAndMultiplyの関数が、_speciesという名前のstringの引数を取得できるように変更したので、feedAndMultiplyを呼び出す際に、”kitty”(stirng)パラメータを追加します。

f:id:nomadomama:20181204000204p:plain

 

お疲れさまでした!

 

 

<参考>

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