Solidity言語

噛み付いちゃうぞCryptoZombies⑧

さてさて、そろそろブログに関してもどうやるべきかをもう少し掘り下げて考えなきゃないかって思ってきました。その理由としては、自分のために書くブログではありますが、読んでもらえると純粋に嬉しいから、ですwレスポンスなくっても、人数だったりページビューはわかるので、ただ純粋に読んでくれている人がいるってだけでも、励みになりますし、やる力がより湧きます!!月間で10PV欲しいとか、そういう訳ではないですが、そんなに読まれるようになったら、どうしましょうね!毎日以上に更新しないといけないなって気になるので、より努力が増しそうw

先日イケハヤさんの有料noteを買ったのですが、先にアクセス数を増やすためのnote買うべきだったのに、マネタイズに目が行き、マネタイズのnoteを買いましたw
アクセス少ないのにマネタイズを考えるとか、、、プロの方には笑われますなw自分でも笑ってますw

やりようはいろんな人のいろんなやり方をみて、自分なりに真似して改良してみて、反応を確かめれるくらい、まずはアクセスしていただけるような努力が必要ですな。

自分ってくそまじめではないので、バカ&変態野郎の部分はサラリーマンになって、だいぶ封印されてしまっていたので、フリーになったらそのバカ&変態の部分も封印解いていこうと思っておりますw

その点は楽しみにしててくださいw

ではでは、真面目にいきまっせ!w

CryptoZombies | イーサリアムでのゲーム開発を学ぶ

チャプター13:ボーナス:Kitty Genes

00

 レッスン2も残すところあとわずか、、ということですのでボーナストラック?として子猫っぽさを追加したゾンビにしてあげようという事で、さてさてどんな特徴になるのか楽しみだわい!!

ここでね、ゾンビの外見について、12桁だけしか使っていない、という事実が発覚!!!
私てっきり15桁分使っていると思っていただけに、全然的外れな事言ってましたw
たしかレッスン1のチャプター1か2のブログ記事に書いていたので、ここにきて訂正と誤りを入れておかなきゃいけませんね、大変失礼いたしましたm(_ _)m
こちらよければ見てみてください => CryptoZombies徹底解剖①

猫ソンビは末尾が99になるように設定しようって事なので、これからその方法について解説がありますので、下記にて確認ください!
11

出てきましたね、if」ステートメント!!これはわかりますよね!!プログラミングをやろうと思った人達なら、なにかしらの言語を触っていたら絶対出てくるキーワードですよね。

日本語にしてみてら「もし〜ならば、」っていうのがif文ですよね。それです!
分岐する際につかうコードですね、、、分かれ道にね。

この例の場合、「もしkeccak256(sandwich)keccak256(“BLT”)等しいならばeat()関数実行しなさい、、という事になりますね!日本語変なのはご勘弁くださいw

もちろん、後からelseというワードも出てきますが、まだ先なのでその説明はちらっとだけしておきます。

このifを使って、等しくないという結果の場合に、何を実行するか、っていうのを決めるのが「else」となります。

今回の場合は、keccak256(sandwich) == keccak256(!BLT”)ならば、eat()を実行する。ですが、等しくなかった場合は、何もしないです。ただ、等しくなかった時に、違う関数を実行する、という事をしたければ、else {}と指定してやって、その中に等しくなかった時に実行したい事を入力してやればいいというだけですな。

if文は分岐ですからね、、Yesの場合はこれ、Noの場合は実行しない、もしくは違う処理を実行するか、さらに分岐に行くか、という事になります!

さらに分岐に行くとなれば、else if {}という形になりますね。solidityの場合もそうではないかなと思いますが、レッスン5までやったけど、else ifは出てこなかったな。。

なかったらごめんなさいw

って事で、テストだ!!
39

1では、feedAndMultiply関数に新しい名前のstringの引数を取得できるようにせよ!と言っているので、string _speciesを追加してやればいいですな!関数定義した時のfunction feedAndMultiply()のカッコの中にね!なので、入力画面はこうなので↓↓
55

fucntion feedAndMultiply(uint _zombieId, uint _targetDna, string _species) public {
}

としてやると!

2では、新しいゾンビのDNAを計算後に、はnewDnaの計算の事なので、//して英文で説明してくれてますね!addは追加hereはここに、なのでここにステートメントを追加しろ!と言ってますな!

ifステートメントを使用して、_speciesのKeccak256と文字列の”kitty”を比較して同じかどうか判定せよ!という事なので、、、

if (keccak256(_species) == keccak256(“kitty”)) {
}

となります!
49
3では、、ifステートメント内で最後の2桁を99に変更したい、という難題を突きつけられたのだが、親切にもこうやって計算すれば良いよ、と教えてくれる(ありがたい)
なので、if文の中で実行する処理は以下のとおり。

newDna = newDna – newDna % 100 + 99;

解説になぜ、そうなるのかという事がかいてあるので見てみて、実際に計算してみると、なる
ほどなぁ〜と納得できますので、実際に計算してみる事をオススメします!そもそも計算する順番って足し算引き算する前に、掛け算や割り算をしますよね、、そこは間違えないようにねwじゃないと最初の計算で0になっちゃいますからね(newDna – newDna)。
でもあれか、、、%は剰余算だから、newDna / 100の余りを出す計算になるから、順番関係ないのか、、、、どうなんだ?、、、w

はい次っ!w
4ではfeedOnKitty内の関数呼び出しを変更せよ。との事なのでfeedAndMultiply関数を呼び出した際のパラメータ部に”kitty”を追加せよとの事なので、、、

feedOnKitty(_zombieId, kittyDna, “kitty”);

となります。

今回割とバラバラな位置の変更になるのでまとめにくいのですが、、

fucntion feedAndMultiply(uint _zombieId, uint _targetDna, string _species) public {
}



if (keccak256(_species) == keccak256(“kitty”)) {
newDna = newDna – newDna % 100 + 99;
}


feedOnKitty(_zombieId, kittyDna, “kitty”);
 
黄色枠内が追加した内容となります!

とまあこんなとこでしょうかね!!
今は問題形式なので、とてもわかりやすいのですが、実際に自分で作って行く場合って、こうはいかないですよね、、自分で何と何を比較して〜こういう計算をいれて〜って考えなきゃないですからね。。。

それが大変だよな〜とも思いつつ、先の事考えても仕方ないし、今習うべきものを習っていくしかないので、頑張って全てのレッスンを完了させましょう!!

続きはまた後ほど更新しますので、午前中のうちにはレッスン2は終わりますね!

レッスン3もなんかタイトルとしては難しそうですが、、、あっ、確かにむずかったなw
そこを乗り切れば後はスイスイ進めるようになりますので、もう少しの辛抱です!

CryptoZombies | イーサリアムでのゲーム開発を学ぶ

という訳で、今日のところはこの辺で!
ではまた後ほど!

ABOUT ME
shidayuu
元バンドマンで読書・書評をしている函館在住32歳、しだゆうと申します! このブログでは主に読書した内容を元に、「ヒラメキを発信する」をテーマとして毎日更新しています。 書評をメインに、たまに元バンドマンの知識を発信していきます! あなたの役に立てる記事を書いていきます!