55 lines
1.2 KiB
Plaintext
55 lines
1.2 KiB
Plaintext
I1 *RandVocabWord()
|
|
{
|
|
I8 i;
|
|
I1 *ptr;
|
|
if (!ws_dict_num_words)
|
|
return NULL;
|
|
i=RandU4%ws_dict_num_words;
|
|
ptr=ws_dict_word_list;
|
|
while (i-- && *ptr==WSD_WORD_CHAR)
|
|
ptr+=StrLen(ptr)+3;
|
|
if (*ptr++!=WSD_WORD_CHAR)
|
|
return NULL;
|
|
else
|
|
return ptr;
|
|
}
|
|
|
|
void VocabQuiz()
|
|
{
|
|
I8 i,num;
|
|
I1 ch,*right_word,*words[4];
|
|
do {
|
|
right_word=RandVocabWord;
|
|
for (i=0;i<4;i++)
|
|
words[i]=RandVocabWord;
|
|
num=RandU4%4;
|
|
words[num]=right_word;
|
|
|
|
PrintF("$$WW,1$$$$CM-LE,5$$$$FG,RED$$$$BK,1$$%s$$BK,0$$:$$FG$$$$LM,4$$\r\n",right_word);
|
|
for (i=0;i<4;i++)
|
|
PrintF("\r\n\r\n$$FG,GREEN$$$$BT-LE+LM-X,\"%d\",\"%d\"$$$$FG$$"
|
|
"$$LM,7$$%s\r\n$$LM,4$$",i+1,i+1,WsdGetDef(words[i]));
|
|
PutS("\r\n\r\n$$FG,LTBLUE$$Answer:$$FG$$");
|
|
do {
|
|
ch=GetKey(NULL,TRUE);
|
|
LtfBottom(Fs->cur_ltf);
|
|
if (ch>='1' && ch<='4') {
|
|
CrLf;
|
|
if (ch-'1'==num) {
|
|
PutS("$$FG,LTGREEN$$Correct\r\n$$FG$$");
|
|
Sound(1000);
|
|
} else {
|
|
PutS("$$FG,LTRED$$Incorrect\r\n$$FG$$");
|
|
Sound(200);
|
|
}
|
|
Sleep(500);
|
|
Sound(0);
|
|
WsdPopUpDef(right_word);
|
|
break;
|
|
}
|
|
} while (ch!=CH_CTRLQ && ch!=CH_ESC);
|
|
PrintF("$$LM,0$$\r\n");
|
|
} while (ch!=CH_CTRLQ && ch!=CH_ESC);
|
|
}
|
|
|
|
|