こんにちは!
cryptozombiesでsolidity学習を進めているToshです。
今日の学びは、
solidityにおける乱数です。それには、keccak256 ハッシュ関数を使います。
0〜99の乱数が2つほしい時には、
uint randNonce = 0;
uint random = uint(keccak256(now, msg.sender, randNonce)) % 100;
randNonce++;
uint random2 = uint(keccak256(now, msg.sender, randNonce)) % 100;
という感じです。
こうすると乱数出るのは分かりますが、コードが長くてめんどくさいですね...
あと、スマートコントラクトにおける乱数には難しい点があるそうです。
それは、自分にとって悪い乱数が出たトランザクションをブロードキャストせず、良い乱数が出たものだけをブロードキャストするという方法があることです。
これではあたりが出るまでガチャできますね...
詳しい話はcryptozombieの範囲外だそうです。
また、oracleの話が後で出てくるそうです。
それを使えば解決できるらしい(?)です。
ではまた〜