GUIでカンタン開発!Node-REDでズンドコキヨシ

  • 18
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

 巷ではズンドコキヨシというプログラムを、様々な言語で書くのが流行っているようです。流行の発端となったツイートは下記です。

zundoko0.png

 下記サイトには、Qiitaコミュニティ?により、様々な言語で実装された「ズンドコキヨシ」がまとめられています。これからはプログラミングの授業で、学生さんは「HelloWorld」の次に「ズンドコキヨシ」を書くことになるのではないかと感じるくらい勢いがあります。

ズンドコキヨシまとめ
http://qiita.com/shunsugai@github/items/971a15461de29563bf90

 GUIで簡単に処理を記述できるNode-REDでも実現できることを証明すべく、早速BluemixのNode-REDで書いてみました。

作成した処理

 青色の「ズン!」か「ドコ!」をクリックしてイベントを入力します。「ズン!ズン!ズン!ズン!ドコ!」の順でイベントが入ると「キヨシ!」を出力されます。

zundoko1.png

出力

  • 「ズン!ズン!ズン!ズン!ドコ!」の順でクリック

zundoko2.png

  • 色々クリックした後、「ズン!ズン!ズン!ズン!ドコ!」の順でクリック

zundoko3.png

最後に

 応用として、Node-REDで利用できるWatsonサービスのSpeech to Textの音声認識機能を用いて「ズン!ズン!ズン!ズン!ドコ!」の音声を入力し、Text to Speechで「キヨシ!」という音声を出力すると面白そうです。今回はネタ記事ですが、functionノードは凝っていて、Node-REDマスターもキューやスタックを実装する際の参考になると思います。

ソースコード

[{"id":"595f6c6f.fbf404","type":"inject","z":"59a34751.9cd2b8","name":"","topic":"","payload":"ズン!","payloadType":"string","repeat":"","crontab":"","once":false,"x":98,"y":271.70001316070557,"wires":[["92d77d1b.db5e5"]]},{"id":"665d986a.47a948","type":"inject","z":"59a34751.9cd2b8","name":"","topic":"","payload":"ドコ!","payloadType":"string","repeat":"","crontab":"","once":false,"x":98.49998474121094,"y":309.70001316070557,"wires":[["92d77d1b.db5e5"]]},{"id":"e7d04949.ad21a8","type":"template","z":"59a34751.9cd2b8","name":"キヨシ!","field":"payload","format":"handlebars","template":"{{payload}}キヨシ!","x":664.5000228881836,"y":222.95008087158203,"wires":[["4edde02d.46169"]]},{"id":"4edde02d.46169","type":"debug","z":"59a34751.9cd2b8","name":"出力","active":true,"console":"false","complete":"payload","x":663.0000152587891,"y":296.2000923156738,"wires":[]},{"id":"c5a6e474.44f2b8","type":"switch","z":"59a34751.9cd2b8","name":"ズンドコ判定","property":"payload","rules":[{"t":"regex","v":"ズン!ズン!ズン!ズン!ドコ!$","case":false},{"t":"else"}],"checkall":"true","outputs":2,"x":491.0000762939453,"y":289.95008850097656,"wires":[["8b05eb69.3b50d8"],["4edde02d.46169"]]},{"id":"92d77d1b.db5e5","type":"function","z":"59a34751.9cd2b8","name":"一時変数に文字列を格納","func":"if (context.global.data == undefined)\n{\n  context.global.data = msg.payload;\n}\nelse\n{\n  context.global.data += msg.payload;\n}\n\nmsg.payload = context.global.data;\n\nreturn msg;","outputs":1,"noerr":0,"x":293.50001525878906,"y":289.70001316070557,"wires":[["c5a6e474.44f2b8"]]},{"id":"8b05eb69.3b50d8","type":"function","z":"59a34751.9cd2b8","name":"一時変数を初期化","func":"context.global.data = \"\";\n\nreturn msg;","outputs":1,"noerr":0,"x":495.8000030517578,"y":222.95005798339844,"wires":[["e7d04949.ad21a8"]]},{"id":"6b74e29f.d0de3c","type":"comment","z":"59a34751.9cd2b8","name":"↓「ズン!」か「ドコ!」のイベントをクリック","info":"","x":169.79996490478516,"y":233.25003051757812,"wires":[]},{"id":"3a91b30c.2b105c","type":"comment","z":"59a34751.9cd2b8","name":"ズン!ズン!ズン!ズン!ドコ!の順か判定↑","info":"","x":341.05004119873047,"y":333.7500476837158,"wires":[]},{"id":"1d023347.cedb1d","type":"comment","z":"59a34751.9cd2b8","name":"trueの場合、キヨシ!を追加して出力↓","info":"","x":543.5500106811523,"y":182,"wires":[]},{"id":"66c15971.1c0168","type":"comment","z":"59a34751.9cd2b8","name":"↑falseの場合、一時変数を出力","info":"","x":630.5499420166016,"y":333.2500171661377,"wires":[]},{"id":"aaae1bea.0a2408","type":"comment","z":"59a34751.9cd2b8","name":"Zundoko pattern","info":"","x":99.79993057250977,"y":185.7500114440918,"wires":[]}]