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

#はじめに

Teams版のPower Virtual AgetnsとPower Automateを利用して、作成した神経衰弱ゲームの解説その２になります。
[「その１（初期処理）はこちら」](https://qiita.com/MiyakeMito/items/fee22871ffecb287f5b5)

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Power Platform 2022 release wave1 で Power Automate と Power Virtual Agetns がより便利で面白くなりそうで嬉しい！<br>嬉しさ余って、娘にも遊んで欲しくて神経衰弱を可愛くしてみました。<a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> <a href="https://twitter.com/hashtag/PowerAutomate?src=hash&amp;ref_src=twsrc%5Etfw">#PowerAutomate</a> <a href="https://twitter.com/hashtag/PowerVirtualAgents?src=hash&amp;ref_src=twsrc%5Etfw">#PowerVirtualAgents</a> <a href="https://t.co/a80RnwfaCa">pic.twitter.com/a80RnwfaCa</a></p>&mdash; Miyake Mito (@MiTo60448639) <a href="https://twitter.com/MiTo60448639/status/1486277992095485953?ref_src=twsrc%5Etfw">January 26, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



#トピック「ループA」

今回は神経衰弱の各ターンとなるトピックA、およびトピックBについて説明します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/8370f629-a9c8-3ece-120c-f7d78196e7dd.png)

全体図

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/d380a52b-5f90-6784-2789-62d2a4f5120c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/ebb4fb4f-88b2-5f15-5cc5-06c98d2ab184.png)


トピックAでは、

①呼び出し元からのパラメータを取得
②1枚目のカードを質問する
③カードをめくる処理（Power Automate）実行後、1枚目をめくった後の場のカードを表示
④2枚目のカードを質問する
⑤カードをめくる処理（Power Automate）実行後、2枚目をめくった後の場のカードを表示
⑥当たり/ハズレとそれを加味した場のカードを表示
⑦トピックBをへリダイレクト（呼び出す）

##①呼び出し元からのパラメータを取得


初期処理やトピックBから引き継ぐパラメータを設定します。
・ランダムな数字配列
・場のカード

別のトピックから受け取る変数は、「質問」で定義し、[他のトピックから値を受け取ります]をONにします。
これらパラメータ受け取りとなる「質問」は、実際のチャットボット動作時にはスキップされます。（ボットから問い合わせにはなりません）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/63236eed-1946-1e40-8355-19d1f262383d.png)

1枚目にめくるカードを質問します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/4dc2c553-420d-d372-bf9e-28c2e2773dfb.png)

質問の回答が "はじめから" の場合には、前回作成した初期化トピックに戻ります。
上記以外の値の場合にはPower Automateのフローを呼び出します。（フローは次回説明します）　

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/beae92a4-1f3b-1001-6c4a-2a27e664394d.png)

フローからの戻り値である場のカードを表示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/2bf023db-43f2-2bca-5a5b-5ae298bda8fe.png)

2枚目にめくるカードの処理も1枚目と同様です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/a3c5fd6a-86f9-8bfe-fca5-f9e83987135b.png)

フローの戻り値である、当たり（1枚目と2枚目が一致）またはハズレ（不一致）を表示し、
その結果の場のカードを表示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e913b861-f5e7-61a9-14ad-aa876c258f40.png)

最後にフローBを呼び出して完了です。フローBの内容はフローAと同じため、フローBへ渡す引数は、
・ランダムな数字配列
・場のカード
になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/455103cb-f9e1-c71f-6d3b-55aae54ac618.png)

#トピック「ループB」

トピックBは、トピックAとほぼ同じ内容のため、トピックAをコピーして作成すると楽だと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/ec8715aa-a18f-7e60-4eb3-8ba2d96597bf.png)

最後に呼び出すのはトピックは、トピックAにしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/742f71e7-ea2a-4042-81c7-041ff0ea0950.png)

#おわり
次回はいよいよ、神経衰弱ゲームの核となる神経衰弱フローを作成します。