トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

FlashCard02byHSP

*disclaimer
35942

35941

FlashCard02

flashCard02b.hsp(3)
text.csv(65)

; 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