Arduino 数あてゲーム

2015年1月6日


 Arduinoプログラミングの練習として、定番の「数あてゲーム」を作りました。
 4桁の乱数(同じ数字なし)を発生させて、その数字を何回で当てられるかを競うゲームです。

プログラムの概要
まず、4桁の乱数を発生させます。Arduinoでは、random()といいう関数がありますので、それを利用します。
数字の入力とArduinoからの表示は、Arduino IDE内蔵のシリアルモニタを使います。通信速度はデフォルトの9600bpsとします。

文字を表示するには,Serial.print()または、Serial.println()を使います。この違いは、Serial.printlnはデータの末尾に改行コード(13(0Dh))をつけて送信することです。場合によって使い分けます。
文字を入力するには、Serial.read()を使います。ただ、1文字だけの受信ですので、受信した文字数を返す関数Serial.available()と組み合わせて、受信します。受信された文字はintですので、ASCIIコードで受信されます。
ASCIIコードを数字に変換します。4個数字が受信されたら、判定します。

4桁の未知の乱数(X=????)と回答した4桁の数字(すべて違った数字)を比較して、数字が合っている個数と
その中で位置が合っている個数を(*,*)の形で表示します。この数字をヒントにXをあてるわけです。
プログラムの中では、for()構文、do while構文、while構文、if else構文などを使っています。

下のシリアルモニタの画面で、1> 2>は、回答の回数を示します。間違って同じ数字を入力したり、
数字以外の文字を入力すると「ブーー」という警告音が出ます。
正解すると、LEDが点滅し、効果音「ピロピロピー」が鳴り、次の未知数に進みます。

ハードウェア
13番ピンにLEDをつけます。(内蔵のLEDでもOKです。)
8番ピンに効果音を聞く圧電スピーカをつけます。(矩形波なので、あまり良い音ではありません。))
LEDと圧電スピーカはなくともゲームを楽しむことはできます。

Arduinoとパソコンは、USBケーブルで接続しておきます。

 スケッチです。(テキストファイルです。コピペで使ってください。)

inserted by FC2 system