「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セル)を変えます。
この形式においては、失格条件の数字は「誤答回数」ではなく「ポイント」であることを忘れないでください。

③ポイント表示セルの数式を変える

OFFSET関数を用いて、ポイント記録テーブルから現時点でのポイントを参照します。
また、失格条件も変更する必要があります。この形式では、誤答罰に制限はなく、代わりにポイントによる失格条件が定義されています。そのため、OUTと表示される場合の条件も書き換える必要があります。

D4セルを以下のように変更し、K4セルまでオートフィルします。

=IF(SUM(D7:D56)>=$N$4,"WIN",IF(COUNTIF(D7:D56,"x")>=$O$4,"LOSE",SUM(D7:D56)))

=IF(OFFSET(N$6,$P$4,0)>=$N$4,"WIN",IF(OFFSET(N$6,$P$4,0)<=$O$4,"LOSE",OFFSET(N$6,$P$4,0)))





コメント

このブログの人気の投稿

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

参加者の苗字と名前を分離する/選手名を均等な大きさで表示する

勝ち抜け時に順位を表示する