templeos-info/public/Wb/Apps/Vocabulary/VocabQuiz.HC

58 lines
1.2 KiB
HolyC
Raw Normal View History

2024-03-16 10:26:19 +00:00
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);
}