経緯
スマートコントラクトに興味があり、それを書くためには基本的に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桁より大きい値の場合でも動くのはどうかと思うが、チュートリアルなのでそういうものだと割り切ることにする。
コメント