Files
TempleOS-Rijn/LT/Apps/Vocabulary/VocabQuiz.CPZ
T
2018-09-08 21:45:20 +02:00

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