CryptoZombies チャプター8: ゾンビDNAでハマったポイント

ブロックチェーン

経緯

スマートコントラクトに興味があり、それを書くためには基本的にSolidityを勉強する必要があるということをTwitterで知る。また、勉強にはCrypto Zombiesが良いという話も聞いたので勉強を始める。

CryptoZombies - イーサリアム上でゲームを開発する方法を学習。Powered by Loom Network
CryptoZombiesは、暗号からゾンビを生み出すゲームの開発を通じて、Solidityでスマートコントラクトの構築を学習できる、インタラクティブなオンラインレッスンです。

コードを書いたことがある人であれば、特につまづくことは無いと思うが、説明文の解釈でつまづいたので、それについて書く。

詳しいことはCrypto Zombiesを見てもらうとして、1. に「_targetDnaが16桁であることを確認せよ。」とあったので、素直にコードを書いてみた。

    require(_targetDna == _targetDna % dnaDigits);

ただ、答え合わせしても正解しなかったので、答えを見ると↓だった。

    _targetDna = _targetDna % dnaModulus;

1. の説明文の後半部分「_targetDnaを _targetDna % dnaModulusと同様にして最後の16桁だけ取り出せば良い。」を素直に書けばよかった。

「確認せよ」とあるので、納得感はないし、_targetDnaに16桁より大きい値の場合でも動くのはどうかと思うが、チュートリアルなのでそういうものだと割り切ることにする。

コメント