トラック
/
WebAssembly
WebAssembly
/
演習
/
マインスイーパー
マインスイーパー

マインスイーパー

上級

はじめに

マインスイーパーは、マスの周囲(上下左右と斜め)にいくつの地雷があるかを示す数字のヒントを頼りに、地雷を見つけていく人気のゲームです。

説明

課題は、完成したマインスイーパーのボードにある空のマスに、地雷の数を書き込むことです。ボード自体は長方形で、空のマス(' ')か地雷('*')のどちらかであるマスからできています。

それぞれの空のマスについて、そのマスに隣り合う地雷の数(上下左右と斜め)を数えます。隣り合う地雷が1つもない空のマスは、空のままにします。そうでなければ、隣り合う地雷の数に置き換えます。

たとえば、次のような5×4のボードが渡されることがあります(ここでは、空のマスを画面上に表示するために'·'という文字で表しています)。

·*·*·
··*··
··*··
·····

これをコードで変換すると、次のようになります。

1*3*1
13*31
·2*2·
·111·

トラック固有の説明

地雷原の形式

地雷原は文字列として表され、各行の末尾には改行文字が入ります。

例を示すと、" \n * \n \n"のようになります。

予約済みメモリ

入力文字列のバッファーは、線形メモリの64から319バイトを使用します。

入力文字列は、必要であればその場で変更できます。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
WebAssembly Exercism

マインスイーパーを始める準備はできましたか?

Exercismに登録すれば、87個の演習、そして本物の人間によるメンタリングとともに、WebAssemblyを学んでマスターできます。すべて無料です。

マインスイーパーを深く掘り下げよう!

入れ子の`for`ループ、境界チェックを簡単にする`min`/`max`の巧みな使い方、関数型のパイプライン、2次元配列の利用について掘り下げます。