投稿

今後の更新予定

ご無沙汰しております。

先月まで、毎週月~木曜日に更新をして参りました当ブログですが、このところ、新しい記事を投稿できない状態が続いており申し訳ありません。

私が投稿を予定しているクイズ形式の得点表示が少し難しい構造であることが原因です。

投稿予定の記事は以下の通りです。

・10 Points Ahead
・3 Points Ahead
・上座クイズ
・大会の参加者管理

いつかみなさまにお届けしたいと思います。
どうかお待ち下さいませ。

「10divide10」の得点表示の作り方

イメージ
STUの3R・コース別の1つ、10divide10のルールを説明します。
試合開始時、得点は全員10pです。正解すると10pが加算され、N回目の誤答でポイントがN分の1倍になります(小数点は切り捨て)。すなわち、1回目の誤答はお咎めなし、ということです。
100p以上に達すれば勝ち抜け、0pになると失格となります。

形式名こそbyの対極ですが、「誤答で一気に点数が下がる」という点ではアップダウンに似ているかもしれません。
しかし、アップダウンでは「1回目の誤答でリセット、2回目の誤答で失格」なのに対し、divideは「1回目の誤答は無罪、2回目の誤答以降大減点される。点数さえ1p以上を維持していれば何回誤答してもいい」ということで、誤答罰はやや軽いです。しかしそれゆえに、プレイヤーへの誤答の抑止力は弱く、つい何度も誤答を重ねてしまい、点数が延びなくなってしまうこともあります。

それでは、基本⑤の続きから作っていきます。
完成品はこちらです。

【作り方】 ①ポイント記録テーブルを作る N7:U56を選択し、格子を描きます。

次に、N6:U6(0問目=初期状態)の全ての範囲に「10」を入力します。

そして、N7セルに以下の数式を入力し、U56までオートフィルします。

=IF(D7="x",ROUNDDOWN(N6/COUNTIF(D$7:D7,"x"),0),N6+D7*10)

この形式は誤答時の計算が特殊なので、誤答したかどうかをまずチェックします。誤答した場合は、(持っていたポイント)÷(この問題を含めてのこれまでの誤答回数)を小数点以下で切り捨てる処理を行います。
切り捨て処理ならば、以前Swedishの作り方にも登場したROUNDDOWN関数の出番です。第1引数に数値、第2引数に小数第何位までを残すか指定します。今回は小数点以下は全て切り捨てるため、0を指定します。
一方、誤答していない場合は、1問前の得点に正解した場合は10pを加え、そうでない場合は加えないようにします。ここでは、正解時には正誤スルー記録セルに「1」が入力されるため、この数式できちんと動作します。

②ルール設定を変える 勝ち抜け条件(N4セル)および失格条件(O4セル)を変えます。 この形式においては、失格条件の数字は「誤答回数」ではなく「ポイント」であ…

「Square20」の得点表示の作り方

イメージ
STUの3R・コース別の1つ、「Square20」のルールを説明します。
この形式では、「by」同様、各プレイヤーに2つの変数が与えられ、その積が得点となります。この2つの変数をα、βと呼ぶことにします。試合開始時、α・βはともに1です。
そして、奇数問目を正解するとαが1増加し、偶数問目を正解するとβが1増加します。α×βの値が20以上に達すれば勝ち抜けとなります。
一方、奇数問目を誤答するとαが、偶数問目を誤答するとβが0にリセットされます。すなわち、その人のスコアは0になります。
また、通算3回の誤答で失格となります。

うまく問題が噛み合えば最低7問正解で勝ち抜けられる(5×4=20p)一方、タイミングが悪ければいくら正解を重ねても思うように点が伸ばせません。
また、誤答罰も厳しい。誤答直後は0に逆戻りとなり、しかもたった3回で失格となります。

それでは、基本⑤の続きから作っていきます。
完成品はこちらです。

【新しく出て来るExcelの機能】 ・関数「MOD」

【作り方】 ①ルール設定セルにルールを入力する 勝ち抜け条件を20p、失格条件を3にします。
②α記録テーブル・β記録テーブル・を作る N~U列を「α記録テーブル」、W~AD列を「β記録テーブル」、AF~AM列を「ポイント記録テーブル」とします。
まずはそれぞれのテーブルについて格子を引きましょう。

次に、数式を入れていくのですが、そのまえに、初期値はα・βともに1でしたね。なので、1問目の1つ前である6行目の全てのプレイヤーに、両テーブルとも1を入力しておきます。

つづいて、式を入力します。
α記録テーブル N7セルに以下の数式を入力し、U56セルまでオートフィルします。

=IF(MOD($C7,2)=1,IF(D7="x",0,N6+D7),N6)
β記録テーブル W7セルに以下の数式を入力し、AD56セルまでオートフィルします。
=IF(MOD($C7,2)=0,IF(D7="x",0,W6+D7),W6)
ポイント記録テーブルAF6セルに以下の数式を入力し、AM56セルまでオートフィルします。

=N6*W6

さてここで、MOD関数というものが出てきましたね。MOD関数は、割り算のあまりを計算する関数です。例えば、17÷3のあまりだったら、「=MOD(17,3)…

連誤答ディスアドバンテージ機能をつける

イメージ
「連誤答」とは、「ある人が1度誤答した後、その人が次に正解する前に再び誤答してしまう」ということです。
以前「連答」の話をしましたが、連答が「参加者全体で見て連続して正解する」のに対し、連誤答は「各参加者それぞれについて連続で誤答する」というものです。
※ちなみに、各参加者それぞれについて連続で正解する、いわば「自己連答」を利用した形式も存在します。その形式についてはまた別の機会に解説します。

STUの2Rでは、「連誤答ディスアドバンテージ付き5○3×」という形式が行われています。
これは、「5問正解で勝ち抜け(連答によるボーナス加点はなし)」「1回目の誤答で起立し、次に正解するまでに2回目の誤答を犯すと2×が加算され、即失格」とというものです。2回目の誤答の前に1問正解すれば着席することができ、残り2回は誤答することができます。

それでは、基本⑤(終):「終わった問題」の行と「今の問題」の行を色分け表示するの続きから作っていきます。
完成品はこちらです。

【作り方】 ①連誤答状態記録テーブル・加算×数記録テーブルを作る N~U列を「連誤答状態記録テーブル」、W~AD列を「加算×数記録テーブル」として活用します。
いつものように、まずはN7:U56およびW7:AD56を選択し、格子を描きます。


つづいて、数式をそれぞれ入力します。

【連誤答状態記録テーブル】
N7セルに以下の数式を入力し、U56までオートフィルします。

=IF(D7="x",1,IF(D7=1,0,N6))

このテーブルには、各解答者・各問題について、「連誤答状態かどうか」を1か0で出力します。
まず、「誤答したかどうか」をIF関数で判定し、真ならば1と表示します。偽ならば、さらに「正解したかどうか」を判定し、真ならば0と表示し、偽ならば1問前と同じ状態を維持します。

【加算×数記録テーブル】
W7セルに以下の数式を入力し、AD56までオートフィルします。

=IF(D7="x",IF(N6=1,2,1),0)

このテーブルには、各解答者・各問題について、「いくつの×が加算されたか」を出力します。
まず、「誤答したかどうか」を判定し、真ならば、さらに「1問前の時点で連誤答状態だったかどうか」を判定します。真ならば2、偽ならば1を表示します。一方、最初の判定が偽(=…

「基本シリーズ」5回をまとめました

このブログの初期に投稿した、「基本機能」のタグをつけた5つの記事を「基本シリーズ」としてまとめました。
それに伴い、記事のタイトルも変更いたしました。

基本①:「m○n×クイズ」の得点表示の作り方

基本②:勝利・失格時に色が変わるようにする

基本③:勝ち抜け・失格等のルール設定を変更できるようにする

基本④:タイトルバーを作り、問題数やラウンド名などを表示する

基本⑤(終):「終わった問題」の行と「今の問題」の行を色分け表示する


また、このシリーズが終了する前に投稿した、

「by」の得点表示の作り方

「アタック風サバイバル(アタサバ)」の得点表示の作り方

の2本における、ダウンロード可能な完成品についても、「基本シリーズ」で取り上げた機能を施したバージョンのものを用意しました。
※アタサバの方は、7月24日時点で未対応です。もうしばらくお待ち下さい。

「通過クイズ」の得点表示の作り方(基本形)

イメージ
「通過クイズ」の得点表示の作り方を解説します。

通過クイズとは、早押しクイズで規定の点数を獲得すると「通過権」が発生し(この際「通過席」という特別な解答席に移動することもあります)、その状態で、次の問題も早押しで正解すれば勝ち抜け、というルールです。
ただし、他のプレイヤーに正解されてしまうと、通過権は消失し、ポイントは0に戻ってしまいます(スルーや他のプレイヤーの誤答が発生した場合、通過権は消失しません)。勝ち抜けるには、再びポイントを稼ぎ、通過権を獲得した状態で正解しなければなりません。

単にポイントを積み重ねるルールとは違い、「勝ち抜けるために必ず正解しなければいけない場面」という特別な状況が発生します。問題運の要素が大きいと言ってしまえばそれまでですが、「特殊な状況におけるプレッシャーに負けない精神力」が問われているとも言えるでしょう
(これは連答系の形式についても同様のことが言えます)。

有名な例としては、やはり「アメリカ横断ウルトラクイズ」の準決勝として有名な「通せんぼクイズ」が挙げられます。
現在ですと、インターネットクイズ番組「LOCK OUT!」の準決勝でも行われておりますね。

ひとくちに「通過クイズ」といっても、さまざまなバリエーションが存在します。
例えば、「通過権リーチの人しか通過を阻止することができない」という「マンオブ風通過クイズ」や、「通過チャレンジに失敗しても、挑戦するたびに、次に通過権を得るために必要なポイントが少なくなっていく」とうい「abcゲートクイズ」などがあります。
誤答罰1つとっても、「1P減点」「○回で失格」「1P以上持っているときの誤答は1P減点だが、0Pのときの誤答は×が1つつき、3×で失格」などがあります。

これらの作り方は今度の機会に譲るとして、今回は、最もベーシックな、「3Pで通過席」「誤答は3回で失格(通常席か通過席かは問わない)、減点はなし」というルールで作ります。

それでは、「終わった問題」の行と「今の問題」の行を色分け表示するの続きから作っていきます。
完成品はこちらです。

【作り方】 ①ルール設定セルを変更する このように書き換えておきます。

②ポイント記録テーブルを作る これももうおなじみですね。N~U列を使いましょう。

N7:U56の範囲を選択し、格子を描きます。
N~U列の6行目には0を書いて…

「Round Trip Quiz」の得点表示の作り方

イメージ
Round Trip Quizの得点表示の作り方を解説します。

この形式は、前半戦と後半戦に分かれています。
前半戦は、「正解:自分が+1p/誤答:自分以外全員が+1p」のルールで行い、誰かが規定ポイント数に達した時点で終了となります。
後半戦は、前半戦で稼いだポイントを持ち越して、アタサバの要領で「正解:自分以外が-1p/誤答:自分のみ-1p」のルールで行います。ポイントが0になったプレイヤーから敗退していき、最後まで生き残った1名が勝者となります。

これは『勝抜杯』の決勝のルールとして有名です。
(この大会の場合、後半戦で残り2人となってからは、誤答罰は解答権移動に切り替わります)

ここでは、「3人対戦」「前半戦は13pに達したら終了」というルールに設定します。また、前半戦と後半戦は別のシートに分けます。

それでは、「終わった問題」の行と「今の問題」の行を色分け表示するの続きから作っていきます。
完成品はこちらです。

また、前回の得点タワーを発展させて作成したものもこちらに置いておきます。
こちらのスクリーンショットはこんな感じです。


【作り方】 ①参加者の列を3人に減らす D~F列は残し、G~K列は一気に削除します。
そして、D~F列の幅を広げます。今回は60.00に設定します。


②正解数・誤答数カウントセルを作り、数式を入力する 今回は誤答数を画面上に表示せず、正解数と誤答数は非表示セルに計算してもらいます。

まず、誤答数表示セル(5行目)の中身は全て消去し、5行目の隣に新たに1行挿入します。

5行目を正解数カウントセル、6行目を誤答数カウントセルとします。
そして、D5、D6セルにそれぞれ以下の数式を入れ、F列までオートフィルします。

D5セル
=SUM(D$8:D$57)

D6セル
=COUNTIF(D$8:D$57,"x")

③ポイント数表示セルを作る 5行目と6行目の数値をもとに計算し、ポイントを4行目に表示します。
D4セルに以下の数式を入れ、F4までオートフィルします。

=D5+SUM($D$6:$F$6)-D6

前半戦のポイントは、(自分の正解数)+(自分以外の誤答数)で表されます。
自分の正解数は5行目を参照すればいいです。
自分以外の誤答数は、まずSUM関数で自分を含めた3人の合計誤答数を求め、後で自分の誤答数だけを引…