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);
}