Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nanne007/rockscissorspaper.mvir
石头剪刀布 move 实现
https://github.com/nanne007/rockscissorspaper.mvir
libra smart-contracts
Last synced: 8 days ago
JSON representation
石头剪刀布 move 实现
- Host: GitHub
- URL: https://github.com/nanne007/rockscissorspaper.mvir
- Owner: nanne007
- License: mit
- Created: 2019-09-25T14:13:45.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-25T14:33:05.000Z (about 5 years ago)
- Last Synced: 2023-07-13T19:50:52.583Z (over 1 year ago)
- Topics: libra, smart-contracts
- Language: Ruby
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RockScissorsPaper.mvir
石头剪刀布:
- 需要双方通过交易来交互。
- 需要抵押 libracoin, 赢的一方可以获取到 libracoin。
- 可以暂时不用考虑游戏数据的公开性导致的作弊问题。### Start
首先需要本地起一个 libra 节点,然后 client 连进去。
``` bash
# 恢复账号
a r wallet.local
# 给账号充钱
a m 0 1000
a m 1 100# 编译 rps module
dev c 0 move_scripts/rps.mvir module move_scripts/rps
# 发布 rps module
dev p 0 move_scripts/rps
# 编译三个交互需要用的 script
dev c 0 move_scripts/create.mvir script move_scripts/create
dev c 0 move_scripts/join.mvir script move_scripts/join
dev c 0 move_scripts/reveal.mvir script move_scripts/reveal## 开始执行合约
# 0 账号在自己的空间中创建一个石头剪刀布游戏,抵押 10000 libcoin
dev e 0 move_scripts/create 10000 b"2a569aac11ee9db3d3d556617fdbc5126b2898c952ba4e04b11d0e0526b3d350"
# 1 账号参与到这个游戏中,给出自己的 hand 2(1: 石头,2: 剪刀,3: 布)
dev e 1 move_scripts/join 2
# 0 账号揭示自己的 hand,给出秘钥
dev e 0 move_scripts/reveal b"deadbeefdeadbeef" 1
```### TODO
- timeout 机制。 如果游戏发起方不在规定时间内,reveal 自己的数据,抵押的 coin 自动付给参与者。
- cancel 机制。游戏发起方 cancel 游戏。