美文网首页智能合约
【CryptoZombies|编写区块链游戏学智能合约】Less

【CryptoZombies|编写区块链游戏学智能合约】Less

作者: 空灵一月 | 来源:发表于2018-04-19 04:54 被阅读186次

    什么是CryptoZombies

    CryptoZombies是个在编游戏的过程中学习Solidity智能合约语言的互动教程。本教程是为了Solidity初学者而设计的,会从最基础开始教起,即便你从来没有接触过Solidity也可以学,CryptoZombies会手把手地教你。

    本课程共六节课,为Solidity初学者设计,需要你对其他的程序语言有所了解(如JavaScript),我们先来学Lesson1搭建僵尸工厂。

    僵尸工厂用于生产僵尸,每一个僵尸由头部基因、眼部基因、上衣基因、皮肤基因、眼色基因、衣服眼色基因组成,每个基因数值不一样,呈现的基因外形会有差异,通过这6个基因的组合,从而生产大量形状不一样的僵尸。可以滑动右侧条形改变数值查看形状不一样的僵尸。

    Lesson1从Solidity合约的基本结构、状态变量和整数、数学运算、结构体、数组、定义函数、使用结构体和数组、私有/公共函数、函数的更多属性(返回值、函数的修饰符)、Keccak256和类型转换、事件和Web3.js,一步步学习和了解,直到最后编写成功的代码。

    每一章的练习代码编写完后,点击代码下面的hint按钮,会在下面提示编写的代码是不是正确,如果有错误,会以红色提示,需要修改对应的代码。如果不熟悉改不正确,可以点击查看左下方的“我要看答案”的按钮,会在右下方框提示正确的代码。对比着修改完成后“再查”,如果无误就可以进入下一个环节。

    完成以后可以再尝试着输入任何字符串,可以看到合约成品的僵尸形态变化。

    本节课完整的代码如下:

    pragma solidity ^0.4.19;
    
    contract ZombieFactory {
    
        event NewZombie(uint zombieId, string name, uint dna);
    
        uint dnaDigits = 16;
        uint dnaModulus = 10 ** dnaDigits;
    
        struct Zombie {
            string name;
            uint dna;
        }
    
        Zombie[] public zombies;
    
        // 在这里定义映射
    
        function _createZombie(string _name, uint _dna) private {
            uint id = zombies.push(Zombie(_name, _dna)) - 1;
            NewZombie(id, _name, _dna);
        }
    
        function _generateRandomDna(string _str) private view returns (uint) {
            uint rand = uint(keccak256(_str));
            return rand % dnaModulus;
        }
    
        function createRandomZombie(string _name) public {
            uint randDna = _generateRandomDna(_name);
            _createZombie(_name, randDna);
        }
    
    }
    
    

    这节课通过构建一个僵尸工厂的合约,顺便介绍了Solidity的一部分基础语法,如果要掌握更多的Solidity基础知识,还需要更多的学习,可以参考区块链技术-智能合约Solidity编程语言

    以前学习过智能合约的语法,但是因为没有目标性,所以看了一部分以后就放弃了。本次课程是我第一次体验游戏化编程,编写完以后能立即得到反馈,这种互动效果很好,能刺激学习。虽然因为编译环境的单一性,部分编译工具的功能不完善,但这种互动方式的编程学习不仅可以降低编写智能合约的门槛,还可以普及智能合约知识,更重要的是还免费。

    如果要学习区块链编程知识,这个教程你值得拥有。


    系列文章:
    【CryptoZombies|编写区块链游戏学智能合约】Lesson1: 搭建僵尸工厂
    【CryptoZombies|编写区块链游戏学智能合约】Lesson2: 僵尸攻击人类
    【CryptoZombies|编写区块链游戏学智能合约】Lesson3: 搭建僵尸工厂
    【CryptoZombies|编写区块链游戏学智能合约】Lesson4: 僵尸作战系统
    【CryptoZombies|编写区块链游戏学智能合约】Lesson5: ERC721标准和加密收藏品

    相关文章

      网友评论

        本文标题:【CryptoZombies|编写区块链游戏学智能合约】Less

        本文链接:https://www.haomeiwen.com/subject/bbkpkftx.html