4.12 Workshop: Nim

This workshop assumes that you have recently completed Tutorial.

In the tutorial, we built a version of Rock, Paper, Scissors! where two parties can wager over the results of the game. This application has an interesting communication pattern with information hiding through cryptographic commitments, but the application logic is simple and uninteresting. In this workshop, we implement a version of Nim, where the communication structure is simpler, since it is a combinatorial game, but has a more interesting application logic. Thus, this workshop demonstrates using more interesting data-structures in Reach programs, as well as using compile-time abstractions to simplify DApp structure.

This page is a placeholder for a future more detailed workshop. You could try to implement yourself though, given the sketch above! If you’d like to see a draft version of our code, please visit examples/nim in our GitHub repository