日本語でプログラミング!「なでしこ」♯4

紙パックの飲み物にストロー刺すとき、角を持ってたとしても「噴き出さんかな」ってドキドキしませんか?

あっという間に桜も散って、暑くなってきましたね。
今回は、なでしこでこんなものが作れるよというのを紹介します。

これまでのシリーズでは紹介していないものも出てきますので、こんなことも出来るんだー。と感じてもらったり、ご自身で調べてみたりしてみてください。

実際に作ったもの

こちらが今回作ってみた、自動販売機っぽいものです。

下側の金額ボタンを押すと…

金額がどんどん加算されます!

そして商品のボタンを押すと…

おつりと商品を教えてくれます!

ソースコードを見てみます

#画面(フォーム)の設定
母艦のWは500。
母艦のHは700。
母艦のタイトルは「自動販売機」。

#変数の宣言
商品配列とは配列。
投入金額とは整数。
投入金額に0を代入。

初期化する。

●初期化
 商品配列¥0,0=「はぎのみず」
 商品配列¥0,1=100
 商品配列¥1,0=「や~ぃお茶」
 商品配列¥1,1=150
 商品配列¥2,0=「じゅーす」
 商品配列¥2,1=200
 商品配列¥3,0=「こーひー」
 商品配列¥3,1=80
 商品配列¥4,0=「こーら」
 商品配列¥4,1=300
 商品配列¥5,0=「こうちゃ」
 商品配列¥5,1=160
 商品配列¥6,0=「ぜんざい」
 商品配列¥6,1=200
 商品配列¥7,0=「こんぽた」
 商品配列¥7,1=200
 商品配列¥8,0=「めんとすこーら」
 商品配列¥8,1=320
 商品配列¥9,0=「すぽどり」
 商品配列¥9,1=160
 商品配列¥10,0=「らーめん」
 商品配列¥10,1=500
 
 商品ボタン作成する。
 投入金額ラベル作成する。
 金額ボタン作成する。

●商品ボタン作成
 商品番号は0。
 配置Xは0。
 配置Yは0。
 商品配列を反復。
  商品ボタン[商品番号]を画像ボタンとして作成。
  商品ボタン[商品番号]→Wは100。
  商品ボタン[商品番号]→Hは150。
  商品ボタン[商品番号]→Xは商品番号を4で割った余り×100+20。
  商品ボタン[商品番号]→YはINT(商品番号÷4)×150+1。
  商品ボタン[商品番号]→テキストは「{商品配列¥商品番号,0}{改行}{改行}{商品配列¥商品番号,1}円」。
  商品ボタン[商品番号]→押されたボタンは商品番号。
  商品ボタン[商品番号]→クリックした時は~
   自身→押されたボタンを購入する。
  
  商品番号は、商品番号+1。

●投入金額ラベル作成
 投入金額ラベルをラベルとして作成。
 投入金額ラベルのXは380。
 投入金額ラベルのYは530。
 0を投入する。

●金額ボタン作成
 添え字は0。
 「1000
500
100
50
10」を反復。
  金額ボタン[添え字]をボタンとして作成。
  金額ボタン[添え字]→Xは添え字×80+20。
  金額ボタン[添え字]→Yは550。
  金額ボタン[添え字]→テキストは「{対象}円」。
  金額ボタン[添え字]→押されたボタンは対象。
  金額ボタン[添え字]→クリックした時は~
   自身→押されたボタンを投入する。
  
  添え字は、添え字+1。

●投入(額面を)
 投入金額は投入金額+INT(額面)。
 投入金額ラベルのテキストは「{投入金額}円」。

●購入(商品番号を)
 購入金額とは整数。
 購入金額に商品配列¥商品番号,1を代入。
 購入商品とは文字列。
 購入商品に商品配列¥商品番号,0を代入。
 もし、投入金額が購入金額以上ならば、
  「おつりは{投入金額-購入金額}円」と言う。
  購入商品と言う。
  終了。

では解説です。

コメント行を除いた最初の7行分は、プログラム起動時にのみ行う初期処理です。
その中で最後の行の

初期化する。

ではその下にある関数「初期化」を実行し、そこからさらに

 商品ボタン作成する。
 投入金額ラベル作成する。
 金額ボタン作成する。

でラベルや各ボタンを作成する処理を呼び出しています。

そこで作成した「金額ボタン」「商品ボタン」には、押されたときの処理が定義されています。

  商品ボタン[商品番号]→クリックした時は~
   自身→押されたボタンを購入する。

商品ボタンの処理がこちら。

  金額ボタン[添え字]→クリックした時は~
   自身→押されたボタンを投入する。

金額ボタンの処理はこちらです。

それぞれ、関数「購入」「投入」 に引数を渡してこれらを実行します。

このプログラムのざっくりとした処理の流れはこのような感じです。

他にもアイデア次第でいろんなものが作れちゃうので、ぜひ皆さんも作りたいものを探して作ってみてください!