見出し画像

【Click】一定範囲の数を繰り返す方法(クイズアプリ等で使用)

(なぜこれを書いたか)
先日クイズアプリを作った時、ある一定の範囲の数を繰り返し発生させたくなりました。例えばクイズがNo.1~5の5問あって、ボタンを押していくと次の問題に移動し、5番目の問題が終わると1問目に戻るというような仕組みの事です。

やり方はいろいろあるのですがもっとも簡単な方法を備忘録を兼ねて書いておきます。

1.こんな仕組みで数字が変わります

クイズアプリは問題がNo.1~5の5問あって、ボタンを押す度にNo1から1問ずつ切り替わっていきます。最終の5問目の後は最初の1問目に戻るようになっています。

(数字が変化する仕組み)
データベースの各行には「クイズNo」の他に「次の問題No」という数字が入っており、ボタンを押すと「次の問題No」(数字)がインプット1に転送されます。するとカスタムフィルターの設定で、リストからその番号のクイズだけが表示されるようになります。

①データベースの中身
1つの行にクイズの番号の他に次のクイズ番号を入れておきます。No5のクイズの行には「次のNo」に1が入ってます。(これで最初に戻れます)

②カスタムフィルターの設定
クイズデータベースをカスタムリストで表示し、1問だけ表示するようにカスタムフィルターの設定をしておきます。

画面上部にあるインプット1に入っている番号のクイズ問題が表示されるようにしました

③インプットの設定
インプット1に入っている数字でカスタムフィルターをかけるのでインプット1の種類を「数値」に変更しておきます。(ここは初期設定では「ラベル」になっています)→私はいつもこの設定を忘れてしまい、動かない、動かないと慌てています。

またクイズはNo.1から始めたいので初期値に1を入れておきます。

④ボタンにClickFlowを設定する
ボタンを押すとインプット1にクイズデータベースの「次のNo」が入るようにします。ClickFlowで「エレメントの値変更」を選んで下記画像のように設定します。

一応これで設定は終わりです。下に参考アプリを載せておくのでよかったら触ってみて下さい。(LOGIN等はありません。)

2.その他のやり方

一定範囲の数字列を繰り返すやり方は他にもいろいろあります。上記のやり方はカスタムリストの中にボタンを入れましたが、リストの外にボタンを配置するような場合だと以下のようなやり方もあります。

ボタンを押していくとuserデータベースの中に1ずつ繰り上がった数字を作り、その数字を基に1,2,3,4,5の数字列を繰り返すやり方です。

ボタンを押す度に1ずつ増える数字をnとして以下のような式を作ります
n-INT((n-1)/5)×5  
(注)INTは整数だけを取り出す関数(Integer)
例: INT(3.14)=3

するとnがどんな数字であっても必ず1,2,3,4,5 1,2,3,4,5と繰り返しの数字が発生します。(やってみて下さい)

(設定)
①userデータベースに「count」と、「次のNo」という項目を作る
②「次の問題に進む」ボタンにClickFlowを設定
 user更新
 countの項目:count+1  と設定
 次のNoの項目:count-INT((count-1)/5)×5

③インプット1と「次のNo」を紐づける
④カスタムフィルターの設定
 インプット1の数字でフィルターをかける

(あとがき)
このブログを書き始めた時は「2.その他の方法」を最初に持って来てこちらをメインに書こうと思っていました。しかし、2種類のやり方を書いていたら、「2.その他の方法」はuserデータベースを使うのでLOGINが必要だし、必ず1から始まるわけでもないので一般受けしないと思い、参考として書いておきました。

最後まで行ったらまた元に戻るという仕組みのアプリも多いので何かの参考になればと思い書いてみました。(考え方次第で何種類ものやり方があると思います)

この記事が気に入ったらサポートをしてみませんか?