2019独角兽企业重金招聘Python工程师标准>>>

这篇文章,是通过制作一款可爱的游戏(DAPP,也可以称做智能合约),从而学习Solidity语言。和ETH网络的一些基础知识。

全程在线编程,无需搭建复杂的环境,只需要有任何其他语言的编程经验,即可马上学习。

网址:https://cryptozombies.io

这篇文章是一篇关于制作游戏的总结。

1

在线游戏简介

支持多语言界面:

https://cryptozombies.io/

课程:

cryptozombies课程

编辑页面

在线编辑页面

学习总结

可视范围的

函数专用限制语法

整数

int是带符号整数

其他变量

2

solidity语言的知识点

modifier

modifier 和 function有些相似。

主要用于提前检查function的参数是否符合function的要求。

这个就是经典检查调用智能合约的owner是否是此智能合约的开发者的modifier。

出自:https://github.com/OpenZeppelin/openzeppelin-solidity

OpenZeppelin is a library for writing secure Smart Contracts on Ethereum.

/*** @dev Throws if called by any account other than the owner.*/modifier onlyOwner() {require(msg.sender == owner);_;}

在游戏里面,我们增加了对于级别的判断。

modifier aboveLevel(uint _level, uint _zombieId) {require(zombies[_zombieId].level >= _level);_;}

用法:添加在需要检查的function定义的末尾

function changeName(uint _zombieId, string _newName) external aboveLevel(2, _zombieId) {
}

Gas

在ETH网络上,用户在通过智能合约修改区块链上的数值的时候,需要支付Gas的。Gas可以通过以太币来兑换。

简单的说,修改区块链的时候,不是免费的。不免费的理由可以参照网络。

而只是查询区块链上的信息的时候,是免费。所以为了给你的用户节约费用,开发者可用通过设置函数为 view 和 pure 来实现。

比如,用户可以查询自己拥有的东东的时候,可以这样写function。

 function getZombiesByOwner(address _owner) external view returns (uint[]) {}

还记得 external 么?

storage

更新区块链是需要支付Gas的,尤其是 storage 的写入操作。

开发者需要尽量避免 storage 的写入。其他语言,循环是效率低的,但在solidity里面,比起Gas的消耗,我们还是倾向于用循环。

除非,让逻辑过于复杂化的处理,比如每次都需要在 memory 上重新建立序列。

或者是每次都需要调用函数来得到特定值的时候。

通过在变量定义的时候,加入 memory 可以在 memory 上新建一个仅仅存储在 memory 里面的变量

function getArray() external pure returns(uint[]) {// Instantiate a new array in memory with a length of 3uint[] memory values = new uint[](3);// Add some values to itvalues.push(1);values.push(2);values.push(3);// Return the arrayreturn values;}

pure : 函数内没有使用任何外部数据

本系列文章作者:HiBlock区块链技术布道群-A****mywu

原文发布于简书

加微信baobaotalk_com,加入技术布道群

Blockathon|48小时极客竞赛,区块链马拉松等你挑战(上海)

时间:2018年10月19-21日

地点:(上海黄浦)露香园路1号(近淮海东路)P2

  • 招募50名开发者(识别下图二维码或点击“阅读原文”即可了解详情并报名)

北京blockathon回顾:

Blockathon(北京):48小时极客开发,区块松11个现场交付项目创意公开

成都blockathon回顾:

Blockathon2018(成都站)比赛落幕,留给我们这些区块链应用思考

转载于:https://my.oschina.net/u/3782027/blog/2222457

十一课堂|通过小游戏学习Ethereum DApps编程(1)相关推荐

  1. 十一课堂|通过小游戏学习Ethereum DApps编程(5)

    2019独角兽企业重金招聘Python工程师标准>>> 1 ERC721 tokens 在这个游戏里面,我们使用ERC721 tokens标准,通常的情况下,使用的是ERC20 to ...

  2. 十一课堂|通过小游戏学习Ethereum DApps编程(3)

    2019独角兽企业重金招聘Python工程师标准>>> 1 solidity语言的知识点 Random Numbers 很多时候我们都需要随机数. 在solidity里面,我们可以通 ...

  3. 十一课堂|通过小游戏学习Ethereum DApps编程(4)

    2019独角兽企业重金招聘Python工程师标准>>> 在上篇完结的时候,我们制造出了这个独一无二可爱至极的角色: 这里我们继续总结一些关于solidity语言的知识点.并且开始了解 ...

  4. python|利用打飞机小游戏学习分支和循环|今天是记录自己学习的第四天呀!加油!

    ** python|利用打飞机小游戏学习分支和循环|今天是记录自己学习的第四天呀!加油! ** /*** Author:Jiang Zhiying Data:2017.11.11 Emial:1443 ...

  5. 微信小游戏 - 学习/实践

    1.应用场景 主要用于快速开发微信小游戏. 2.学习/操作 1.介绍 小游戏是一种基于微信平台开发,不需要下载安装即可使用的全新游戏应用,体现了"用完即走"的理念,充分节省用户的手 ...

  6. 微信小游戏学习日记1

    1.App手游和微信小游戏 2.微信小游戏Unity WebGL转换方案 解析: 3.提升Unity WebGLue游戏启动速度 4.瘦身游戏代码包体 解析: 5.资源优化与按需加载 解析: 6.游戏 ...

  7. 微信小游戏学习日记2

    1.MeshRenderer组件 解析: [1]mesh:会用到的Mesh资源,可以来自于FBX. [2]castShadow:是否投射阴影 [3]receiveShadow:是否接收阴影 [4]li ...

  8. python经典小游戏五子棋,适合python编程的小游戏

    python入门可以做的小游戏 1.Python入门拼图小游戏简单介绍:将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状. 2.Python入门推箱子 ...

  9. 三子棋小游戏带你走进编程世界(c语言版)

    目录 一.游戏实现的整体思路 二.实现游戏大体框架 二.游戏函数的实现 1.初始化键盘 2.打印棋盘 3.下棋及胜负判断 (1)玩家下棋 (2)电脑下棋 (3)判断输赢 三.结语及源码 三子棋想必大家 ...

最新文章

  1. 【面向代码】学习 Deep Learning Convolution Neural Network(CNN)
  2. 解决Coursera视频无法观看的问题
  3. 超详细图解!【MySQL进阶篇】存储过程,视图,索引,函数,触发器
  4. 【CodeForces - 304B】Calendar (前缀和,水题)
  5. 转载--上下标等特殊符号的输入方法
  6. 学生寝室管理系统-C语言版
  7. 常考的java数据库笔试题
  8. ABBYY软件对PDF文本审阅操作之盖章
  9. Docker 安装(使用阿里源)
  10. android 焦点的作用,详细介绍Android中的视图焦点Focus的使用
  11. iPad的尺寸与分辨率
  12. Python图书商城(可运行代码)有说明文档
  13. 绝地求生2020服务器维护中,绝地求生2020最新维护公告几点开服?3月18日更新内容一览...
  14. python合并word表格单元格_合并Word 表格中单元格
  15. jira的插件开发流程实践
  16. ORA-15064 ORA-03113 - 测试库案例
  17. c语言硬件控制程序,msp430的一些常用的C语言控制程序---ZLG7289
  18. 精选文章:人生第一辆车购车八大流程及提车注意事项之最强攻略
  19. AutoCAD二次开发基础(三):船体型线绘制
  20. 绘制Excel字符画

热门文章

  1. 坑爹的hiredis API使用
  2. 超全面!Verilog入门到实战系列(1)
  3. 企业CDN缓存 varnish--varnish的基本搭建(1)
  4. 如何改变pycharm的背景颜色
  5. 【WangEditor】使用富文本编辑器 WangEditor 实现用户自定义图片大小(改js源码)
  6. 旋翼回收火箭系列博客1——研究生未来飞行器设计大赛火箭赛道介绍及分析
  7. 工作室转型做什么好项目?
  8. IPv6技术精要--第17章双栈和隧道
  9. 单代号网络图计算例题_还在熬夜计算工期?不会优化工期?学会双代号网络图效率提高80%,升职加薪其实不难...
  10. X10 电阻屏tsc2007调试