58 lines
1.2 KiB
HolyC
58 lines
1.2 KiB
HolyC
|
U8 *RandVocabWord()
|
||
|
{
|
||
|
I64 i;
|
||
|
U8 *ptr;
|
||
|
if (!acd.num_words)
|
||
|
return NULL;
|
||
|
i=RandU32%acd.num_words;
|
||
|
ptr=acd.word_lst;
|
||
|
while (i-- && *ptr==ACD_WORD_CHAR)
|
||
|
ptr+=StrLen(ptr)+3;
|
||
|
if (*ptr++!=ACD_WORD_CHAR)
|
||
|
return NULL;
|
||
|
else
|
||
|
return ptr;
|
||
|
}
|
||
|
|
||
|
U0 VocabQuiz()
|
||
|
{
|
||
|
I64 ch,i,num;
|
||
|
U8 *right_word,*words[4];
|
||
|
if (!FileFind(ACD_DEF_FILENAME)) {
|
||
|
"Uncompressed dictionary not present.\n";
|
||
|
return;
|
||
|
}
|
||
|
do {
|
||
|
right_word=RandVocabWord;
|
||
|
for (i=0;i<4;i++)
|
||
|
words[i]=RandVocabWord;
|
||
|
num=RandU32&3;
|
||
|
words[num]=right_word;
|
||
|
|
||
|
"$$WW,1$$$$CM-LE,5$$$$RED$$$$BK,1$$%s$$BK,0$$:$$FG$$$$LM,4$$\n",right_word;
|
||
|
for (i=0;i<4;i++)
|
||
|
"\n\n$$GREEN$$$$BT-X,\"%d\",LM=\"%d\"$$$$FG$$"
|
||
|
"$$LM,7$$%s\n$$LM,4$$",i+1,i+1,ACDDefGet(words[i]);
|
||
|
"\n\n$$LTBLUE$$Answer:$$FG$$";
|
||
|
do {
|
||
|
ch=GetKey(,TRUE);
|
||
|
DocBottom;
|
||
|
if ('1'<=ch<='4') {
|
||
|
'\n';
|
||
|
if (ch-'1'==num) {
|
||
|
"$$LTGREEN$$Correct\n$$FG$$";
|
||
|
Snd(74);
|
||
|
} else {
|
||
|
"$$LTRED$$Incorrect\n$$FG$$";
|
||
|
Snd(46);
|
||
|
}
|
||
|
Sleep(500);
|
||
|
Snd;
|
||
|
ACDPopUpDef(right_word);
|
||
|
break;
|
||
|
}
|
||
|
} while (ch!=CH_SHIFT_ESC && ch!=CH_ESC);
|
||
|
"$$LM,0$$\n";
|
||
|
} while (ch!=CH_SHIFT_ESC && ch!=CH_ESC);
|
||
|
}
|