Snake game
これから、micro:bit v2 の 5x5 LED マトリクスをディスプレイとして使い、2 つのボタンを操作に使って遊べる、基本的な snake ゲームを実装します。これにより、この本の前の 章で扱ったいくつかの概念を基にしつつ、新しいペリフェラルや概念についても学びます。
特に、ハードウェア割り込みの概念を使って、プログラムが複数の ペリフェラルを同時に扱えるようにします。割り込みは、組み込みの文脈で並行性を実装する一般的な方法です。組み込みの文脈における並行性については、Embedded Rust Book に良い 入門があるので、先にそれを読んでおくことをお勧めします。
NOTE この章は micro:bit v2 のみを対象に作成されており、v1 には対応していません。コードを v1 に移植するためのコントリビューションは歓迎します。
NOTE この章では、前の 章で使用したものより新しいバージョンの特定のライブラリを使用します。
microbitライブラリはバージョン 0.13.0 を使用します(前の章では 0.12.0 を使用していました)。 バージョン 0.13.0 では、これから使用するノンブロッキングのディスプレイコードに関するいくつかのバグが修正されています。また、heaplessライブラリはバージョン 0.8.0 を使用します(前の章ではバージョン 0.7.10 を使用していました)。これにより、Rust のcore::Hashトレイトを実装した構造体で、その データ構造の一部を使用できるようになります。