[몰라도 해보는 cryptoZombie] Lesson2. 좀비가 희생물을 공격하다 – 5(완)
https://cryptozombies.io/ko/course
챕터 13: 보너스: 키티 유전자
고양이를 물어서 고양이를 좀비로 만들었으면 그 흔적을 남기는 단계이다. 이 녀석은 고양이 좀비다~! 그러기 위해서 if문을 통해 kitty가 맞는지 확인하는 과정을 거친다. 크립토좀비에서 if문이 자바스크립트와 동일하다고 하지만 동일하지는 않다. (동일하다면 === 을 사용했을 것이므로.)
// 여기에 있는 함수 정의를 변경:
function feedAndMultiply(uint _zombieId, uint _targetDna, string _species) public {
require(msg.sender == zombieToOwner[_zombieId]);
Zombie storage myZombie = zombies[_zombieId];
_targetDna = _targetDna % dnaModulus;
uint newDna = (myZombie.dna + _targetDna) / 2;
// 여기에 if 문 추가
if (keccak256(_species) == keccak256("kitty")) {
newDna = newDna - newDna % 100 + 99;
}
_createZombie("NoName", newDna);
}
function feedOnKitty(uint _zombieId, uint _kittyId) public {
uint kittyDna;
(,,,,,,,,,kittyDna) = kittyContract.getKitty(_kittyId);
// 여기에 있는 함수 호출을 변경:
feedAndMultiply(_zombieId, kittyDna, "kitty");
}
feedAndMultiply 함수에 _species 인자를 추가한다. 이 부분이 kitty인지 아닌지를 밝혀줄 부분이다. if문을 통해 이부분의 해시값이 kitty의 해시값과 같으면 newDna의 마지막 두자리 숫자를 99로 바꾼다.
그리고 feedOnKitty 함수 내부에서 feedAndMultiply가 호출될 시 “kitty”를 받을 수 있게 코드를 수정해 주면 완성!
챕터 14: 마무리하기 Wrapping It Up
여기는 우리가 작성한 함수가 잘 작동하나 확인해보는 페이지이다. Javascript를 이용해서 어떻게 프론트앤드랑 엮었는지 코드를 읽어볼 수 있다. 여기서는 설명을 생략한다. 관심있으면 읽어보기를 : )
챕터 15: 끝
우앙 끝! Lesson2가 끝났다.
https://share.cryptozombies.io/ko/lesson/2/share/뭐라도먹어야힘을쓰지?id=Z2l0aHVifDI1MzExNjMz
참고문헌
https://d2fault.github.io/2018/03/19/20180319-about-solidity-1/
코어 이더리움 프로그래밍 – 박재현, 오재훈, 박혜영
크립토 좀비 레슨2를 끝내셨군요. 축하드립니다.~^^
감사합니다! ㅎㅎ
축하드려요
감사합니닷! ㅎ
간만에 콜라보래이션
[골든티켓x짱짱맨x weee] 18차 현타토끼 이모티콘 증정 !
https://steemit.com/goldenticket/@goldenticket/x-x-weee-18
참여하세요!
당장 달려갑니닷!
짱짱맨 출석부 호출로 왔습니다.
감사합니닷 : )