あみだくじの作り方を模索する
このたび、4~14人グループのくじ順を決める電子版あみだくじを作りました。当選者、役員を選出、掃除当番を決める、順番を無作為に決めるときなどにくじ引きを用いることがあります。このあみだくじはただひとりの当選者を決めるだけでなく順番決めに利用できることが特長です。
概要
プロ野球のドラフト会議などでは先ず、くじを引く順番をくじで決めます。その順番で本番のくじを引いているようです。くじを何番目に引くかは当たりくじを引く確率には関係ないですが、人情的には始めの方で引きたくなります。あみだくじは運営者が紙やホワイトボードに参加者ぶんの縦線を引き、大雑把に横線を引いてから一部を隠し、参加者に追加の横線を引いてもらって作為が生じないように配慮されています。
以前、BasicやC言語にてプログラミングし発表したことがありますが、今回はHTMLによる電子くじプログラミングについて言及します。
ここではプログラミング言語の乱数関数を用いて作為性のないくじを作っています。くじの信頼性を考えると以下のような項目を挙げることができます。
1.運営者の意図を排除する
2.引く順番に影響されない
3.過去の傾向をひきずらない
4.同率のようなケースを生じないように
5.原則、過去に作られたものと同じものがなく一意性がある
6.プログラミング電子くじにおいては、くじを決定するアルゴリズムや求められた時には全ソースコードを公開する
Result
作り方
1.ねらいを明確にする。くじを引く行為は乱数を使う。くじ番号に個人のIDを割り振る。グループ構成に変更がなければ一度決めたID割り振りは変更しない。IDは年齢順、入社年、出席番号の若い順など一律に割り振ることもできる。
2.後で図にすることを想定して縦棒と横棒を引けるようにくじを座標として記憶する。
3.座標の作り方は6人参加ならば5本の川に4個の橋を架けるように位置決めする。橋の数は1つの川に対して4~6くらいがちょうどである。
4.橋を架けるとき、左から順に右に移動し2番目以降の川に橋を架けるときには左隣の川の橋に重ならないように調整する。上の図の〇箇所において、2川に最初の橋を架けるとき、1川の橋の真横になるとあみだくじは不成立になる。そのような事態が起きた場合、ここでは2川において縦方向の値に1を加えている。
5.この処理を最後の川まで繰り返す。
運用上の処理
1.あみだくじは引いて楽しむことが大切だ。あみだくじの縦横線をなぞるように色が変わる動作など緩やかな変化になるように配慮する。コンピュータ処理は一瞬で動作が完了するので遅延関数や同期関数を組み合わせて使う。
2.あみだくじをなぞるとき、縦から横、横から縦に移動するたびにキーボードのクリック音のような音を鳴らす。
使い方
1.くじ番号に個人のIDを割り振る。
2.くじの背景画として果物、トランプ、麻雀の中から好みの絵柄を選ぶ。
3.左端・下の矢印ボタンを使って参加人数を入力する。
4.左端・上の抽選ボタンを押してあみだ抽選をする。2つ目のボタンを選べばあみだくじの縦横線をなぞる時の音を無音にできる。
プログラミングと補足説明
1.プログラムコードを取得し、人数により川の幅を調整すればもっと多人数のあみだくじを作ることができる。
2.背景画を活動的・教育的・芸術的な配慮を加味するには、独自に画像を用意する。その際、clip:rectの使い方をマスターする。
3.参加人数や背景画などがいつも一定ならば, JavaScriptを使わずcssだけのコードで実現できそう。
4.特定の橋を渡ったら倍付けの評価をするなどJavaScriptのプログラミングにより高度・巧妙なあみだくじを作成できる。
5.当選者はいつも左から3番目である。最低参加人数が4人だから3番目あたりが手ごろと考えここに決めている。ここを引くことは乱数の値で決まる。
余談
番号のついて項目の説明はである調、その他はです・ます調です。
プログラムコード
コードの内容
1.背景画として果物が描画 flexibleAmidaV110.html
2.背景画としてトランプが描画 flexibleAmidaV111.html
3.背景画として麻雀が描画 flexibleAmidaV112.htm
/***********************************************************************/
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?