トップ 履歴 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

FlashCard03byHSP

*disclaimer
644653

Flash Card 音声付

644652

  • 英単語、日本語対訳、音声ファイルの三つの関連付け

  • 学習活動の流れ
    1. 日本語対訳を提示
    2. 英単語を思い浮かべる(2秒)
    3. 英単語の提示とともに音声を流す

  • 素材の準備
    1. 英単語と対訳リスト
    2. 英単語の発音ファイル
      1. 合成音声で作成してもよい

  • プログラミング上のポイント
    1. 音声ファイル名を数字にして、英単語・対訳リストの順番に対応付ける

flashCard03.hsp(253)
text.csv(274)
1.mp3(242)
2.mp3(257)
3.mp3(253)
4.mp3(256)
5.mp3(252)
6.mp3(257)
7.mp3(278)
8.mp3(268)
9.mp3(258)

; Flash Card
; version 03
; copyleft 2017-07-04 sugiura@nagoya-u.jp

; テキストファイルから、一行ずつ、カンマ区切りで2項目、読み込む
; テキストファイルは text.csv というファイル名で、
; 一行二項目をカンマ区切りにして、同じフォルダーに入れておく。
; 音声ファイルを、項目の順序に対応させ、ファイル名を数字にしておく

pos 100, 100
font "MS ゴシック", 36, 17

mes "Flash Card 03"
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

	if i = length(R) : goto *owaru   ; 問題数の上限に達したら終わり

	monme = str(i+1)
	
	pos 200, 150
	font "MS ゴシック", 36, 17
	mes monme+": "+wordlist(1, R(i)-1)

	wait 200
	mes "  ↓"
	mes "  "+wordlist(0, R(i)-1)
	
	mmplay R(i)						; 対応する音を鳴らす
	
	i = i + 1
		
	wait 10
	
	pos 300, 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