LoginSignup
10
3

More than 1 year has passed since last update.

Power Virtual Agetns と Power Automate で神経衰弱ゲームを作る①

Last updated at Posted at 2022-01-31

はじめに

Teams版のPower Virtual AgetnsとPower Automateを利用して、神経衰弱ゲームを作ってみましたので、内容を説明します。

全体の仕組み

image.png

① Power Virtual Agetns で「初期化トピック」を呼び出すためにトリガーフレーズを設定します。
② 「初期化トピック」から、「初期化フロー」を呼び出します。「初期化フロー」では、カードの初期配置を作成します。
③ 「初期化トピック」から、「トピックA」を呼び出します。
④ 「トピックA」で、1枚目と2枚目のカードを質問します。それぞれのカードの回答を受けるたびに「神経衰弱処理フロー」を呼び出し、カードをめくる処理を実行します。
⑤ 「トピックA」から、「トピックB」を呼び出します。
⑥ 「トピックB」でも④の「トピックA」と同様の処理を行い、「トピックA」を呼び出します。
⑦ ④~⑥を繰り返します。

初期化処理

今回は、初期処理の部分を説明します。

トピック「初期化処理」

image.png

トピックの全体図です。
最後に呼び出しているトピック「ループA」は次回作成していきます。

image.png

トピック「初期化処理」

呼び出すフロー「初期化処理」の全体図です。

image.png

ランダム配列の作成

ランダム配列の作成は、Hiroさんの「Power Automate で配列をシャッフルする方法」を参照ください。すごいテクニックです。

range()関数で、1~54の数字の配列を作成します。
image.png

range(1,54)

1~54のランダムな数字で、要素数が54000の配列を作ります。
image.png

range(0, mul(length(outputs('1to54array')), 1000))

MSのDocsにある通り、
rand()は、maxValue(第2引数)-1の数字まででランダムな値を作成するため注意してください。
image.png

image.png

int(string(rand(1,add(length(outputs('1to54array')),1))))

union()関数を利用し、作成したランダムな数字の配列と1~54の配列で重複を除くと、重複しないランダムな並び順の1からの54個の整数が取得できます。
image.png

union(body('54000array'), range(1, length(outputs('1to54array'))))

ランダム配列をカンマ区切りで繋げます。
image.png

場のカードの作成

ランダムな数字配列とは別に、場のカードを文字列で作成しておきます。
今後、絵が合って捲られたカードは、この文字列で保持していきます。
Teamsチャットでの改行は、LF(ラインフィード)二つで1行の改行となるため、ここでは改行コードが倍入っています。

image.png


🔲 ❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾

❶ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳

❷ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳

❸ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳

❹ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳

❺ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳

❻ 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳 🔳

最後に、ランダム数字配列と
image.png

場のカード文字列をトピックに返します。
image.png

おわり

今回は、神経衰弱ゲームで各カードに割り当てるランダムな数字の配列と、場のカードの並びとなる文字列を作成しました。
次回はいよいよ、カードをめくったときの処理を記載する予定です。

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3