席順を決めるために「あみだくじ」を印刷できるサイトを探したのですが、項目数が少なかったり、印刷ができなかったりとなかなかぴったり合うものがなかったので「なでしこ」で作ってみました。
幸い、あみだくじで当たりを決めるサンプルがあったので、それを改造して席順の数字を書くようにしました
画面の大きさ的に40項目くらいまでは行けそうです。それ以上作りたい場合は一番上の画面幅、画面高さを大きくすればいけると思います
--ここからプログラム
# ***** 画面設定 *****
画面幅は1000。
画面高は640。
母艦について
タイトルは「あみだくじ」
CW=画面幅。
CH=画面高。
新規ボタンとはボタン。
これについて
X=10。
Y=600。
クリックした時は~新規作成処理。
印刷ボタンとはボタン。
これについて
X=120。
Y=600。
クリックした時は~印刷処理。
# ***** 初期設定 *****
線太さは3。
文字色は黒色
# ***** あみだ作成 *****
●新規作成処理
画面クリア。 # 前回の結果を消す。
「本数={~}段数=」で項目記入。 # クジの本数を入力する。
もしそれが空ならば戻る。
クジの本数はそれ@「本数」
もしクジの本数<2ならば戻る。
クジの段数はそれ@「段数」
もしクジの段数<2ならば戻る。
クジの間隔はINT((画面幅-100)/(クジの本数-1))。
#席順の番号を作成
M=クジの本数
番号を1からMまで繰り返す。
番号箱[番号-1]=番号。
番号箱を配列シャッフル。
# 縦線を引く
YY=560
(クジの本数)回
XX=50+((回数-1)*クジの間隔)。
XX,50からXX,550へ線
M=XX-(番号箱[回数-1]の文字幅取得)/2
M,YYへ移動して、番号箱[回数-1]を表示
# 横線を引く
クジの段間隔はINT(500/クジの段数)。
(クジの段数-1)回
クジ位置[回数-1]=0
(クジの本数-1)回
P=回数。
1の間。
Pの横線。
もし(クジ位置のPを表列合計)>0ならば抜ける。
●横線(Pの)
(クジの段数-1)回
Q=回数-1。
もしクジ位置[Q,P-1]が1ならば続ける
クジ位置[Q,P]は2の乱数。
もしクジ位置[Q,P]=1ならば
YY=50+(クジの段間隔)*(Q+1)。
XX=50+(P-1)*(クジの間隔)。
XX,YYからXX+(クジの間隔),YYへ線。
# ***** 印刷 *****
●印刷処理
母艦印刷 # 印刷する時はコメントを解除
「印刷しました。」と言う。
--プログラムここまで