본문 바로가기
솔리디티/크립토좀비

레슨1 챕터 11, 12, 13 - 형변환, 종합, 이벤트

by 멸치김밥 2022. 2. 11.

필요에 따라 자료형(타입)을 바꿔야 할 때가 있다.

이번 챕터에 활용할 것이 string형을 uint형으로 바꾸는것이다.

안의 내용물이 바뀐 결과인 자료형이 되는데에 문제가 없으면 변환이 된다


챕터 11 답

        // 매개변수 _str을 keccak256()을 통해 16진수 난수를 만들고
        // 그것을 uint()로 string에서 uint로 형변환을 해주어 rand 변수에 담고
        // 그것을 10^16승으로 나눈 나머지를 반환한다
        uint rand = uint(keccak256(_str));
        return rand % dnaModulus;

챕터 12 답

    // 랜덤좀비생성 함수를 public으로 선언
    function createRandomZombie(string _name) public {
    	// _name을 매개변수로 랜덤DAN를 만드는 함수에 전달하여
        // 반환받은 랜덤DNA값을 randDna에 담고
        uint randDna = _generateRandomDna(_name);
        // 이름과 랜덤DNA를 가지고 좀비생성
        _createZombie(_name, randDna);
    }

챕터 13 답

    // 이벤트 선언
    event NewZombie(uint zombieId, string name, uint dna);
        //zombies.push(Zombie(_name, _dna)); 를 아래와 같이 수정
        // zombies배열에 전달받은 이름과 DNA로 만든 Zombie구조체를 만들어 넣고
        // 배열의 인덱스는 0부터 시작하므로 그 배열의 인덱스를 뜻하게 되게끔 -1을 해주고
        // id에 담는다
        uint id = zombies.push(Zombie(_name, _dna)) - 1;
        // 이렇게 만들어진 id와 이름, DNA를 가지고 이벤트 호출
        NewZombie(id, _name, _dna);

댓글