13:50著者:クジラ飛行机プログラミング言語プログラミング教育なでしこ3を使うと、iPadなどタブレットで動くプログラムも手軽に作成できます。今回は、iPadなどタブレットで使うことを念頭にしつつ、二人で遊べるテーブルゲームの定番、リバーシを作ってみましょう。iPadでリバーシゲームを実行しているところテーブルゲームの定番「リバーシ」とは?リバーシとは、二人のプレイヤーが交互に白と黒の石を盤面に起きながら進めるテーブルゲームです。相手の色の石を自分の色で挟むことで、自分の色の石に変えていきます。最終的に盤上の色が多い方が勝利となります。有名なゲームなので、これ以上の詳しいルールの説明は不要でしょうか。休日に家族と二人でゆっくり遊べるリバーシを作ろうルールが単純なことから、リバーシは、コンピューターゲームとしても、古くから作られています。一般的にコンピューター上で遊ぶ場合、一人用のものが大半です。コンピューターのAIが相手になってくれます。AIの性能によって、強かったり弱かったりします。プログラムを作って楽しいのは、対戦相手のAIをどのように実装するのかという点なのですが、今回は「夏休みや休日に家族と対戦する」というテーマの元、AIは作らない方針でいきましょう。そのため、黙々とリバーシのルールだけを実装するのですが、それでも、なでしこで160行ほどのプログラムを書く必要があります。この長さだと、ちょっと頭をひねる必要があるでしょうか。最初にどんなものを作るのか実際のプログラムを確認してみましょう。今回のプログラムは、なでしこ3貯蔵庫(こちら)に投稿してあります。二人対戦リバーシがすぐに実行できるリバーシのプログラムの作り方それでは、一つずつプログラムを作っていきましょう。最初に考えるべきことは、リバーシのゲームをどのようなデータ構造で表現するのかという点です。以前、連載の65回目でトランプゲームを作った時にも解説しましたが、データ構造をうまく設計できると、プログラムを単純にすることができます。リバーシの場合は、縦横8×8のマスの盤面が登場し、そこに白と黒の石を配置することになります。この時、8×8の盤面は、二次元配列変数を使って表現すると良いでしょう。それで、盤の1マスを数値で表現し、0であれば石なし、1であれば黒の石、2であれば白の石と表現することにします。リバーシの初期盤面を表現するように次のような関数を用意できるでしょう。ここまで決めたら、リバーシの盤面を描画することができるでしょう。上記の関数を利用しつつ、盤面を描画するプログラムが次の通りです。データを初期化タイル幅=37F黒=1。