{"author":{"address":null,"user":"https://learnblockchain.cn/people/4042"},"content":{"body":"## Solana合约开发\r\n我的主要岗位是前端，dapp开发。最近在学习solana合约开发，如果能够知道合约大概的运行流程，那之后对于我前端交互合约来说，会有很大的帮助，能够更好的理解交互的流程。\r\n\r\n我开发了一个井字棋机器人对战游戏，是基于[anchor官方井字棋游戏文档](https://www.anchor-lang.com/docs/tic-tac-toe)进行开发。\r\n\r\n## 我的合约源码\r\n[合约源码](https://github.com/Web3-Duck/sol-tactoe) 附带测试用例\r\n\r\n\r\n## 游戏介绍\r\n官方合约是传统的井字棋游戏，我增加了点趣味性。和人机对战，双方有100余额，每次随机生成一个格子位置，用户进行出价，机器人随机出价，出价高的获得格子。只要有一方是连成一条线的或者是占领5个格子即为获胜。\r\n游戏结束之后，我还增加了一个领取token的函数, 主要是为了学习如何跟token代币交互。\r\n\r\n**合约三个功能**\r\n1. 创建游戏\r\n2. 玩游戏\r\n3. 领取奖励\r\n\r\n\r\n## 项目难点\r\n我本身是有evm web3比较多的经验，我先学了rust，看了solana账户体系，然后去看anchor框架。每一个都是难点....\r\n开发这个合约，基本上是到处教程复制黏贴组装完成，靠AI自己写。游戏内容是基于anchor官方例子开发，所以是比较简单的。\r\n我额外加的领取token的代码，对于我来说是最难的。需要去理解pda账户，cpi跨合约交互。\r\n\r\n\r\n## 最后\r\n我觉得作为一个前端，合约开发学习到这个程度就足够了。目前我还正在开发一个Dapp去跟这个合约做交互，难度应该比开发合约简单多了。","title":"我的Solana anchor合约开发入门"},"history":null,"timestamp":1720860740,"version":1}