*disclaimer
613300
613299
FlashCard02
flashCard02b.hsp(210)
text.csv(281)
; Flash Card ; version 02 ; copyleft 2017-06-29 sugiura@nagoya-u.jp ; 2017-07-04 バグ修正 問題数の実際と表示のズレ修正 ; 2019-06-27 sdimコメント追加 ; テキストファイルから、一行ずつ、カンマ区切りで2項目、読み込む ; テキストファイルは text.txt というファイル名で、 ; 一行二項目をカンマ区切りにして、同じフォルダーに入れておく。 *start cls pos 100, 100 font "MS ゴシック", 48, 17 mes "では、はじめます。" notesel text ; 事前に読み込みバッファ設定 noteload "text.csv" ; CSVファイルの読み込み gyosuu = notemax ; notemaxは、メモリーパッド内の行数。 sdim wordlist, 2, notemax ; 二次元配列の定義: sdimで文字列型配列宣言、変数名、フィールが二つ、レコード数 item = "" repeat gyosuu ; 行数(語数)分だけ繰り返す。 noteget item, cnt ; noteget で行単位で読みだす。cntで読み込みインデックス番号を指定 split item, ",", wordlist(0,cnt), wordlist(1,cnt); カンマで切って(split)、二次元配列に入れていく item = "" await 1 loop randomize repeat length(wordlist) x = rnd(cnt+1) R(cnt) = R(x) R(x) = cnt + 1 await 1 loop cls pos 100, 100 font "MS ゴシック", 48, 17 mes "単語数は、"+gyosuu+"語です。" mes "" mes "時間制限1秒" mes "" pos 300, 300 button goto "OK", *main stop *main i = 0 cls *main2 if i = length(R) : goto *owaru ; 問題数の上限に達したら終わり cls monme = str(i+1) pos 200, 150 font "MS ゴシック", 48, 17 mes monme+": "+wordlist(1, R(i)-1) wait 100 mes " ↓" mes " "+wordlist(0, R(i)-1) wait 50 i = i + 1 pos 300, 300 button "Next", *main2 ; button "Next", *main mes "" button "Quit", *owaru stop ; おわり *owaru cls wait 100 pos 200, 100 font "MS ゴシック", 48, 17 mes "おわりますか?" mes "" mes "" font "MS ゴシック", 48, 17 button goto "Again!", *start mes "" button goto "おわります", *owari stop *owari cls wait 50 pos 200, 100 font "MS ゴシック", 48, 17 mes "じゃ、またね。" wait 150 end
https://sugiura-ken.org/wiki/