投稿

7月 23, 2017の投稿を表示しています

「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 さてここで

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

イメージ
「連誤答」とは、「ある人が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問前の時点で連誤答状態だったか

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

このブログの初期に投稿した、「基本機能」のタグをつけた5つの記事を「基本シリーズ」としてまとめました。 それに伴い、記事のタイトルも変更いたしました。 基本①:「m○n×クイズ」の得点表示の作り方 基本②:勝利・失格時に色が変わるようにする 基本③:勝ち抜け・失格等のルール設定を変更できるようにする 基本④:タイトルバーを作り、問題数やラウンド名などを表示する 基本⑤(終):「終わった問題」の行と「今の問題」の行を色分け表示する また、このシリーズが終了する前に投稿した、 「by」の得点表示の作り方 「アタック風サバイバル(アタサバ)」の得点表示の作り方 の2本における、ダウンロード可能な完成品についても、「基本シリーズ」で取り上げた機能を施したバージョンのものを用意しました。 ※アタサバの方は、7月24日時点で未対応です。もうしばらくお待ち下さい。 9月4日追記:アタサバについても対応しました。