#はじめに
Teams版のPower Virtual AgetnsとPower Automateを利用して、神経衰弱ゲームを作ってみましたので、内容を説明します。
Power Platform 2022 release wave1 で Power Automate と Power Virtual Agetns がより便利で面白くなりそうで嬉しい!
— Miyake Mito (@MiTo60448639) January 26, 2022
嬉しさ余って、娘にも遊んで欲しくて神経衰弱を可愛くしてみました。#PowerApps #PowerAutomate #PowerVirtualAgents pic.twitter.com/a80RnwfaCa
#全体の仕組み
① Power Virtual Agetns で「初期化トピック」を呼び出すためにトリガーフレーズを設定します。
② 「初期化トピック」から、「初期化フロー」を呼び出します。「初期化フロー」では、カードの初期配置を作成します。
③ 「初期化トピック」から、「トピックA」を呼び出します。
④ 「トピックA」で、1枚目と2枚目のカードを質問します。それぞれのカードの回答を受けるたびに「神経衰弱処理フロー」を呼び出し、カードをめくる処理を実行します。
⑤ 「トピックA」から、「トピックB」を呼び出します。
⑥ 「トピックB」でも④の「トピックA」と同様の処理を行い、「トピックA」を呼び出します。
⑦ ④~⑥を繰り返します。
#初期化処理
今回は、初期処理の部分を説明します。
##トピック「初期化処理」
トピックの全体図です。
最後に呼び出しているトピック「ループA」は次回作成していきます。
##トピック「初期化処理」
呼び出すフロー「初期化処理」の全体図です。
###ランダム配列の作成
ランダム配列の作成は、[Hiroさんの「Power Automate で配列をシャッフルする方法」]
(https://mofumofupower.hatenablog.com/entry/2020/10/06/160200)を参照ください。すごいテクニックです。
range(1,54)
1~54のランダムな数字で、要素数が54000の配列を作ります。
range(0, mul(length(outputs('1to54array')), 1000))
MSのDocsにある通り、
rand()は、maxValue(第2引数)-1の数字まででランダムな値を作成するため注意してください。
int(string(rand(1,add(length(outputs('1to54array')),1))))
union()関数を利用し、作成したランダムな数字の配列と1~54の配列で重複を除くと、重複しないランダムな並び順の1からの54個の整数が取得できます。
union(body('54000array'), range(1, length(outputs('1to54array'))))
###場のカードの作成
ランダムな数字配列とは別に、場のカードを文字列で作成しておきます。
今後、絵が合って捲られたカードは、この文字列で保持していきます。
Teamsチャットでの改行は、LF(ラインフィード)二つで1行の改行となるため、ここでは改行コードが倍入っています。
🔲 ❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾
❶ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳
❷ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳
❸ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳
❹ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳
❺ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳
❻ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳
#おわり
今回は、神経衰弱ゲームで各カードに割り当てるランダムな数字の配列と、場のカードの並びとなる文字列を作成しました。
次回はいよいよ、カードをめくったときの処理を記載する予定です。