*disclaimer
1198295
FlashCard04byHSP 音を聞いて、英単語をタイプする
1198294
flashCard04c.hsp(281)
text.csv(319)
- 音声ファイルはFlashCard03byHSPのものを使ってください。
; Flash Card
; version 04
; copyleft 2017-07-06 sugiura@nagoya-u.jp
; 2019-06-28 バグ修正
; テキストファイルから、一行ずつ、カンマ区切りで2項目、読み込む
; テキストファイルは text.csv というファイル名で、
; 一行二項目をカンマ区切りにして、同じフォルダーに入れておく。
; 音声ファイルを、項目の順序に対応させ、ファイル名を数字にしておく
pos 100, 100
font "MS ゴシック", 36, 17
mes "Flash Card 04"
mes ""
mes ""
mes "音声が流れます"
mes ""
mes "単語をタイプしてください"
mes ""
wait 200
*start
cls
notesel text ; 事前に読み込みバッファ設定
noteload "text.csv" ; CSVファイルの読み込み
gyosuu = notemax ; notemaxは、メモリーパッド内の行数。
pos 100, 100
font "MS ゴシック", 36, 17
mes "単語数は、"+gyosuu+"語です。"
;------------------------------------テキストファイルの読み込み
sdim wordlist, 2, notemax
item = ""
repeat gyosuu ; 行数(語数)分だけ繰り返す。
noteget item, cnt ; noteget で行単位で読みだす。cntで読み込み回数をインデックス番号とする
split item, ",", wordlist(0,cnt), wordlist(1,cnt)
item = ""
await 1
loop
wait 100
;-------------------------------------音声ファイルの読み込み
kaku = ".mp3" ; 音声ファイル名の拡張子
repeat gyosuu ; 項目の数だけ音声ファイルがあることになっている
ban = cnt + 1
ban = str(ban) ; 文字列型に
namae = ban + kaku ; 音声ファイル名を順に作る
mmload namae , cnt+1 ; 音声ファイルを番号順にバッファーに入れて番号をつける
pos 150, 150
mae = gyosuu - cnt ; カウントダウン
mae = str(mae) ; 文字列型に
font "MS ゴシック", 36, 17
mes mae + "秒前"
await 1000 ; 秒読み
cls
loop
;--------------------------------------学習の開始
pos 100, 100
font "MS ゴシック", 36, 17
mes "では、はじめます。"
mes ""
mes ""
pos 300, 300
button goto "Start", *main
stop
*main
;-------------------------------------ランダマイズ
randomize
repeat length(wordlist)
x = rnd(cnt+1)
R(cnt) = R(x)
R(x) = cnt + 1
await 1
loop
i = 0
*main2
cls
;mes "Now i is "+i
if i == length(R) : goto *owaru ; 問題数の上限に達したら終わり
monme = str(i+1)
;mes "Now playing "+R(i)
mmplay R(i) ; 対応する音を鳴らす
i = i + 1
pos 200, 100
font "MS ゴシック", 36, 17
mes monme + "問目"
mes ""
kotae = ""
input kotae, 150, 24
button gosub "Check", *kotaeawase
wait 10
pos 200, 300
button "Next", *main2 ; 行き先に注意 *main2
mes ""
button "Quit", *owaru
stop
;------------------------------------ 一通りおわり、繰り返すか尋ねる
*owaru
cls
wait 100
pos 200, 100
font "MS ゴシック", 36, 17
mes "おわりますか?"
mes ""
mes ""
font "MS ゴシック", 36, 17
;button goto "Again!", *start
button goto "Again!", *main
mes ""
button goto "おわります", *owari
stop
;----------------------------------------おわり
*owari
cls
wait 5
pos 200, 100
font "MS ゴシック", 36, 17
mes "じゃ、またね。"
wait 100
end
; ------------sub--------------
*kotaeawase
if kotae == wordlist(0, R(i)-1){
pos 400, 150
font "MS ゴシック", 36, 17
mes wordlist(0, R(i)-1)
mes wordlist(1, R(i)-1)
mes ""
color 0,0,255
mes "Good"
wait 100
}else{
pos 400, 150
font "MS ゴシック", 36, 17
mes wordlist(0, R(i)-1)
mes wordlist(1, R(i)-1)
mes ""
color 255,0,0
mes "Wrong"
wait 150
}
return
https://sugiura-ken.org/wiki/