使用合约探索 CryptoKitties 基因组
Wolfram 语言可以轻松地与区块链上的合约进行交互。该范例利用此功能对 CryptoKitty 及其父代的基因组进行排序。这些序列的可视化说明了基因遗传。
CryptoKitties 是由 Axiom Zen 开发的视频游戏,在以太坊区块链上运行。玩家可以购买、出售、收集和培育不同类型的独特虚拟猫。每个 CryptoKitty 都有一个 ID 和一个基因组。虚拟表型表现为称为 cattributes 的属性,可以从父母传递给下一代。
首先提取 CryptoKitties 合约地址。
使用 BlockchainContractValue 调用 ID 为 949502 的 CryptoKitty 上的 contract 的 getKitty 函数.
从有关 CryptoKitty 的不同数据字段中,提取基因和父母的 ID。
现在检索父母的基因。
使用游戏的 Kai-符号对基因进行编码,它是 5 位段整数值的单字母 Base58 表示。以下函数使用当前仅使用 180 位的事实将整数表示转换为基因列表。
获取 CryptoKitty 及其父母的基因。
分离 CryptoKitty 及其双亲中存在的不同基因。
为每个基因创建颜色规则。
最后,生成三个序列的 ArrayPlot。每组四个基因定义了一个可以根据游戏规则诠释的 cattribute。