********************************CLOZE.BI*********************************** '$FORM Cloze '$FORM FrmClzHelp '$FORM FrmSC '$FORM FrmSP '$FORM FrmTrans DECLARE SUB Skip (X AS INTEGER) DECLARE SUB TRIM (X AS STRING) DECLARE FUNCTION Adjustlen (X AS STRING) AS INTEGER DECLARE SUB TextProcess (X AS STRING) DECLARE SUB RandomWord () DECLARE SUB GetClozedata () DECLARE SUB GetInstructions (X AS INTEGER) DECLARE SUB W (sec AS INTEGER) COMMON SHARED english() AS STRING, phrase() AS STRING, singleword() AS STRING, title() AS STRING COMMON SHARED GG() AS INTEGER, HH() AS INTEGER, htab() AS INTEGER, vtab() AS INTEGER, randcheck() AS INTEGER COMMON SHARED PP() AS INTEGER, QQ() AS INTEGER COMMON SHARED wordnum AS INTEGER, gapnum AS INTEGER, words AS INTEGER COMMON SHARED score AS INTEGER, starttime AS LONG COMMON SHARED heading AS STRING, match AS STRING, clozefile AS STRING COMMON SHARED passage AS STRING, wordentered AS STRING, answer AS STRING, correct AS STRING COMMON SHARED phrasecount AS INTEGER, randomnum AS INTEGER COMMON SHARED gapinterval AS INTEGER, filenum AS INTEGER COMMON SHARED gap AS INTEGER, gapfilled AS INTEGER COMMON SHARED characters AS INTEGER, brackets AS INTEGER, transflag AS INTEGER, editflag AS INTEGER COMMON SHARED linecount AS INTEGER *******************************CLOZE.MAK********************************* CLZ.FRM CLOZE.BAS SECPASS.FRM GAPFILL.FRM CLZHELP.FRM TRANSCLZ.FRM FILEDIA.FRM EDIT.FRM OPTIONS.FRM ********************************CLOZE.BAS********************************* '$INCLUDE: 'cloze.bi' ******ACCENTS****** SUB Accents () DIM Z AS STRING Z = " " DIM T AS STRING NL$ = CHR$(13) + CHR$(10) 'FrmClzHelp.Text1.BackColor = QBCOLOR(7) 'FrmClzHelp.Text1.ForeColor = QBCOLOR(0) 'FrmClzHelp.SHOW T = T + Z + "Use 'ALT' key with the keypad numbers" + NL$ + NL$ T = T + Z + "GRAVE.......=133 =138 =141 =149 =151" + NL$ + NL$ T = T + Z + "ACUTE.......=160 =130 =161 =162 =163" + NL$ + NL$ T = T + Z + "UMLAUT......=132 =148 =129 =142 =153 =154" + NL$ + NL$ T = T + Z + "CIRCUMFLEX..=131 =136 =140 =147 =150" + NL$ + NL$ T = T + Z + "CEDILLA.....=135 =128" + NL$ + NL$ T = T + Z + "OTHER SIGNS =225 =164 =173 =168 =137 =139" + NL$ + NL$ 'FrmClzHelp.Text1.Text = T MSGBOX T, 0, "ACCENTED CHARACTERS" END SUB ******ADJUSTLEN****** FUNCTION Adjustlen (X AS STRING) AS INTEGER DIM Z AS STRING Z = RIGHT$(X, 1) IF Z = "!" OR Z = "," OR Z = "." OR Z = ":" OR Z = ";" OR Z = "?" OR X = " " THEN Adjustlen = LEN(X) - 1 ELSE Adjustlen = LEN(X) END IF END FUNCTION ******GETCLOZEDATA******(Loads Cloze File) SUB GetClozedata () DIM X AS STRING passage = "" filenum = FREEFILE title(1) = "JAC's CLOZE ACTIVITIES" ON LOCAL ERROR GOTO FileIOError OPEN clozefile FOR INPUT AS #filenum LINE INPUT #filenum, title(2) LINE INPUT #filenum, heading FOR I = 1 TO 20 IF EOF(filenum) THEN EXIT FOR END IF LINE INPUT #filenum, X IF LEFT$(X, 1) = "*" THEN X = "" passage = passage + X NEXT CLOSE #filenum EXIT SUB FileIOError: MSGBOX "File Error. Please Check" RESUME bye bye: END SUB ******GETINSTRUCTIONS******(Loads Cloze.INF) SUB GetInstructions (X AS INTEGER) DIM Z AS STRING DIM T AS STRING NL$ = CHR$(13) + CHR$(10) FrmClzHelp.SHOW filenum = FREEFILE OPEN "Cloze.inf" FOR INPUT AS #filenum IF X > 0 THEN Skip (24 * X) FOR I = 1 TO 24 LINE INPUT #filenum, Z T = T + Z + NL$ NEXT CLOSE #filenum FrmClzHelp.Text1.Text = T END SUB ******LENTRIM******(Removes punctuation characters from end of words and creates converted string 'match' for word matching) SUB LENTRIM (X AS STRING) DIM Z AS STRING, temp AS STRING Z = RIGHT$(X, 1) IF Z = "." OR Z = "," OR Z = "(" OR Z = ")" OR Z = "/" OR Z = "!" OR Z = ":" OR Z = ";" OR Z = CHR$(34) OR Z = "?" OR Z = " " THEN match = LEFT$(X, LEN(X) - 1) ELSE match = X END IF temp = "" FOR I = 1 TO LEN(match) Z = MID$(match, I, 1) IF ASC(Z) > 64 AND ASC(Z) < 91 THEN Z = LCASE$(Z) IF ASC(Z) = 32 THEN Z = "" temp = temp + Z NEXT match = temp END SUB ******RANDOMWORD****** SUB RandomWord () DO randomnum = INT(RND * wordnum) + 1 LOOP UNTIL randcheck(randomnum) = 0 END SUB SUB Skip (X AS INTEGER) DIM Z AS STRING FOR I = 1 TO X IF EOF(filenum) THEN EXIT FOR END IF LINE INPUT #filenum, Z NEXT END SUB ******TEXTPROCESS****** (Breaks passage into words with text co-ordinates) SUB TextProcess (X AS STRING) DIM temp AS STRING DIM Z AS STRING FOR I = 1 TO 200 GG(I) = 0 HH(I) = 0 NEXT temp = "" brackets = 0 wordnum = 0 IF LEN(X) = 0 THEN EXIT SUB IF ASC(RIGHT$(X, 1)) <> 32 THEN X = X + " " END IF FOR I = 1 TO LEN(X) Z = MID$(X, I, 1) IF ASC(Z) = 35 THEN GG(wordnum + 1) = 35 ELSEIF ASC(Z) = 91 THEN HH(wordnum + 1) = 91 brackets = brackets + 1 ELSEIF ASC(Z) = 93 THEN HH(wordnum + 1) = 93 brackets = brackets + 1 ELSEIF ASC(Z) = 32 THEN wordnum = wordnum + 1 singleword(wordnum) = temp temp = "" ELSE temp = temp + Z END IF NEXT htab(1) = 0 vtab(1) = 1 vdrop = 1 FOR I = 2 TO wordnum htab(I) = htab(I - 1) + LEN(singleword(I - 1)) + 1 vtab(I) = vdrop IF LEN(singleword(I)) + htab(I) > 74 THEN htab(I) = 0 vdrop = vdrop + 1 vtab(I) = vdrop END IF NEXT END SUB ******PAUSE ROUTINE*-***** SUB W (sec AS INTEGER) DIM X AS LONG DIM Y AS LONG X = TIMER DO Y = TIMER LOOP UNTIL Y > X + sec END SUB CLOZE.FRM ***************************************************************************** CLOZE Version 1.00 BEGIN Form Cloze AutoRedraw = 0 BackColor = QBColor(8) BorderStyle = 3 Caption = "JAC's CLOZE ACTIVITIES" '$FORM Options '$FORM FrmEdit '$FORM FileDia DECLARE SUB Accents () DECLARE SUB GetClozedata () '$INCLUDE: 'cloze.bi' ******EXIT Button****** SUB Command1_Click () response% = MSGBOX("Do you wish to quit Y/N?", 4) IF response% = 6 THEN UNLOAD Cloze CLOSE END END IF END SUB ******LOAD SETTINGS****** SUB Form_Load () WindowState = 2 MnuActivity.Enabled = 0 MnuHelp.Enabled = 0 REDIM english(20) AS STRING, phrase(20) AS STRING, singleword(200) AS STRING, title(3) AS STRING REDIM GG(200) AS INTEGER, HH(200) AS INTEGER, htab(200) AS INTEGER, vtab(200) AS INTEGER, randcheck(200) AS INTEGER REDIM QQ(20) AS INTEGER, PP(20) AS INTEGER END SUB ******MENUITEM for ACCENTS****** SUB MnuAccents_Click () Accents END SUB ******ACTIVITIES MENU HEADING****** SUB MnuActivity_Click () END SUB ******MENUITEM to edit existing passage****** SUB MnuEditPassage_Click () editflag = -1 FileDia.SHOW 1 GetClozedata TextProcess (passage) FrmEdit.Text1.Text = passage FrmEdit.SHOW END SUB ******MENUITEM for FILE Heading****** SUB MnuFileName_Click () END SUB ******MENUITEM to open CLOZE FILE****** SUB MnuFileOpen_Click () FileDia.SHOW 1 If clozefile="" THEN EXIT SUB GetClozedata TextProcess (passage) MnuActivity.Enabled = -1 MnuHelp.Enabled = -1 MnuTrans.Enabled = 0 MnuTransInst.Enabled = 0 IF RIGHT$(title(2), 1) = "|" THEN MnuTrans.Enabled = -1 MnuTransInst.Enabled = -1 title(2) = LEFT$(title(2), LEN(title(2)) - 1) END IF Label1.Caption = title(1) Label2.Caption = title(2) Label3.Caption = "Choose an Activity" Label4.Caption = "From the Activity menu" END SUB ******MENUITEM for HELP Heading****** SUB MnuHelp_Click () END SUB ******MENUITEM for CREATING NEW PASSAGE****** SUB MnuCreatePassage_Click () FrmEdit.SHOW END SUB ******MENUITEM for Create/Edit Instructions****** SUB MnuCreateInst_Click () GetInstructions(4) END SUB ******MENUITEM for PG Instructions****** SUB MnuPGInst_Click () GetInstructions (2) END SUB ******MENUITEM for PG Setup****** SUB MnuPreGap_Click () Text1.Visible = 0 gapnum = 0 FrmSC.SHOW FrmSC.Picture1.CurrentX = (74 - LEN(heading)) / 2 FrmSC.Picture1.PRINT heading DIM T AS STRING gapinterval = 0 FOR I = 1 TO wordnum IF GG(I) = 35 THEN gapnum = gapnum + 1 FrmSC.Picture1.CurrentX = htab(I) FrmSC.Picture1.CurrentY = vtab(I) FOR J = 1 TO Adjustlen(singleword(I)) T = T + CHR$(178) NEXT FrmSC.Picture1.PRINT T T = "" ELSE FrmSC.Picture1.CurrentX = htab(I) FrmSC.Picture1.CurrentY = vtab(I) FrmSC.Picture1.PRINT singleword(I) END IF NEXT FrmSC.Label2.Caption = "" FrmSC.Label3.Caption = "" FrmSC.Text1.Text = "" starttime = TIMER FrmSC.Text1.Enabled = -1 FrmSC.Text1.SETFOCUS END SUB ******MENUITEM to QUIT****** SUB MnuQuit_Click () response% = MSGBOX("Do you wish to quit Y/N?", 4) IF response% = 6 THEN UNLOAD Cloze CLOSE END END IF END SUB ******MENUITEM for RG Setup****** SUB MnuRandGap_Click () DIM T AS STRING Text1.Visible = 0 Options.SHOW 1 '(for gapinterval) gapnum = wordnum / gapinterval IF wordnum MOD gapinterval > gapinterval / 2 THEN gapnum = gapnum - 1 FrmSC.SHOW FrmSC.Picture1.CLS FrmSC.Picture1.CurrentX = (74 - LEN(heading)) / 2 FrmSC.Picture1.PRINT heading FOR I = 1 TO wordnum IF I MOD gapinterval = 0 THEN FrmSC.Picture1.CurrentX = htab(I) FrmSC.Picture1.CurrentY = vtab(I) FOR J = 1 TO Adjustlen(singleword(I)) T = T + CHR$(178) NEXT FrmSC.Picture1.PRINT T T = "" ELSE FrmSC.Picture1.CurrentX = htab(I) FrmSC.Picture1.CurrentY = vtab(I) FrmSC.Picture1.PRINT singleword(I) END IF NEXT FrmSC.Label2.Caption = "" FrmSC.Label3.Caption = "" FrmSC.Text1.Text = "" starttime = TIMER FrmSC.Text1.Enabled = -1 FrmSC.Text1.SETFOCUS END SUB ******MENUITEM for RG Instructions****** SUB MnuRGInst_Click () GetInstructions (1) END SUB ******MENUITEM for SP Setup****** SUB MnuSecPass_Click () Text1.Visible = 0 FrmSP.SHOW FrmSP.Picture1.CLS FrmSP.Picture1.CurrentX = (74 - LEN(heading)) / 2 FrmSP.Picture1.PRINT heading words = 0 score = 0 FrmSP.Label2.Caption = "" FrmSP.Label3.Caption = "" FrmSP.Text1.Text = "" starttime = TIMER FrmSP.Text1.SETFOCUS FOR I = 1 TO wordnum randcheck(I) = 0 NEXT END SUB ******MENUITEM for SP Instructions****** SUB MnuSPInst_Click () GetInstructions (0) END SUB ******MENUITEM to Study Passage****** SUB MnuStudyPass_Click () DIM Z AS STRING DIM T AS STRING FrmClzHelp.SHOW FOR I = 1 TO LEN(passage) Z = MID$(passage, I, 1) IF Z = "#" OR Z = "[" OR Z = "]" THEN Z = "" T = T + Z NEXT FrmClzHelp.Text1.Text = T END SUB ******MENUITEM for TG Instructions****** SUB MnuTransInst_Click () GetInstructions (3) END SUB ******MENUITEM for TG Setup****** SUB MnuTrans_Click () DIM T AS STRING DIM phrasecount AS INTEGER filenum = FREEFILE OPEN clozefile FOR INPUT AS #filenum Skip (22) FOR I = 1 TO 20 IF EOF(filenum) THEN EXIT FOR END IF LINE INPUT #filenum, english(I) NEXT CLOSE #filenum phrasecount = 0 FrmTrans.SHOW FrmTrans.CLS FrmTrans.Picture1.CurrentX = (74 - LEN(heading)) / 2 FrmTrans.Picture1.PRINT heading FOR I = 1 TO wordnum IF HH(I) = 91 THEN phraseflag = 1 phrasecount = phrasecount + 1 FrmTrans.Picture1.CurrentX = htab(I) FrmTrans.Picture1.CurrentY = vtab(I) FOR J = 1 TO Adjustlen(singleword(I)) T = T + CHR$(178) NEXT FrmTrans.Picture1.PRINT T T = "" phrase(phrasecount) = phrase(phrasecount) + " " + singleword(I) PP(phrasecount) = I ELSEIF HH(I) = 93 THEN FrmTrans.Picture1.CurrentX = htab(I) FrmTrans.Picture1.CurrentY = vtab(I) FOR J = 1 TO Adjustlen(singleword(I)) T = T + CHR$(178) NEXT FrmTrans.Picture1.PRINT T T = "" phrase(phrasecount) = phrase(phrasecount) + " " + singleword(I) QQ(phrasecount) = I phraseflag = 0 ELSEIF phraseflag > 0 THEN FrmTrans.Picture1.CurrentX = htab(I) FrmTrans.Picture1.CurrentY = vtab(I) FOR J = 1 TO Adjustlen(singleword(I)) T = T + CHR$(178) NEXT FrmTrans.Picture1.PRINT T T = "" phrase(phrasecount) = phrase(phrasecount) + " " + singleword(I) ELSE FrmTrans.Picture1.CurrentX = htab(I) FrmTrans.Picture1.CurrentY = vtab(I) FrmTrans.Picture1.PRINT singleword(I) END IF NEXT gapnum = phrasecount FrmTrans.Label2.Caption = "" FrmTrans.Label3.Caption = "" FrmTrans.Label4.Caption = "" FrmTrans.Text1.Text = "" gapfilled = 1 FrmTrans.Text1.SETFOCUS END SUB File Dialogue Form (FileDia.FRM) ****************************************************************************************** FILEDIA Version 1.00 BEGIN Form FileDia AutoRedraw = 0 BackColor = QBColor(7) BorderStyle = 1 Caption = "Select File" '$INCLUDE: 'cloze.bi' ******OK Button****** SUB Command1_Click () clozefile=Label1.Caption UNLOAD FileDia END SUB ******CANCEL Button****** SUB Command2_Click () clozefile="" UNLOAD FileDia END SUB ******SET DRIVE PATH****** SUB Drive1_Change () Dir1.Path = Drive1.Drive END SUB ******SET DIRECTORY PATH****** SUB Dir1_Change () File1.Path = Dir1.Path END SUB ******GET FILE PATH****** SUB File1_Click () Label1.Caption = Dir1.Path + "\" + File1.FileName clozefile = Label1.Caption END SUB ******SET FILE PATTERN****** SUB Form_Load () Label1.Caption = Drive1.Drive + "\" File1.Pattern = "*.CLZ" END SUB Create/Edit Passage ************************************************************************** Version 1.00 BEGIN Form FrmEdit AutoRedraw = 0 BackColor = QBColor(7) BorderStyle = 2 Caption = "Create/Edit Passage" '$INCLUDE: 'cloze.bi' ******DONE Button******(Process passage, removing surplus spaces, counting lines, characters, words and phrases. Edits phrases for translation and saves new/amended file) SUB Command1_Click () DIM T AS STRING DIM Z AS STRING DIM temp AS STRING DIM msg AS STRING DIM X AS STRING, Y AS STRING DIM NL AS STRING NL = CHR$(13) + CHR$(10) characters = 0 wordnum = 0 spaceflag = 0 linecount = 0 brackets=0 temp = "" T = Text1.Text T = LTRIM$(T) FOR I = 1 TO LEN(T) Z = MID$(T, I, 1) IF Z = " " AND spaceflag = 1 THEN Z = "" END IF IF Z = " " AND spaceflag = 0 THEN wordnum = wordnum + 1 spaceflag = 1 characters = characters + 1 END IF IF Z <> " " THEN characters = characters + 1 spaceflag = 0 IF Z="[" OR Z="]" THEN brackets=brackets+1 END IF END IF temp = temp + Z IF characters > 70 THEN temp = temp + NL linecount = linecount + 1 characters = 0 END IF NEXT T = temp Text2.Text = STR$(wordnum) Text3.Text=STR$(INT(brackets/2)) IF wordnum > 200 THEN msg = "Contains " + STR$(wordnum) + " words! Max.=200""" MSGBOX msg EXIT SUB END IF IF transflag = -1 OR RIGHT$(title(2), 1) = "|" THEN IF brackets MOD 2 > 0 THEN msg = "Phrase brackets incomplete!" MSGBOX msg EXIT SUB END IF phrasenum = brackets / 2 FOR I = 1 TO phrasenum IF editflag = -1 THEN msg = "Change phrase " + STR$(I) + "?" X = "Press ENTER or OK to keep existing phrase" Y = english(I) english(I) = INPUTBOX$(msg, X, Y) IF english(I)="" THEN EXIT FOR ELSE english(I) = INPUTBOX$("Enter phrase " + STR$(I)) IF english(I)="" THEN EXIT FOR END IF NEXT END IF filenum = FREEFILE IF editflag=-1 THEN clozefile = INPUTBOX$("Change Filename?","OK for no change", clozefile) ELSE clozefile = INPUTBOX$("Enter Filename (e.g. Mycloze.clz)") END IF IF clozefile = "" THEN clozefile = "noname.clz" OPEN clozefile FOR OUTPUT AS #filenum PRINT #filenum, title(2) PRINT #filenum, heading PRINT #filenum, T FOR I = linecount + 1 TO 19 PRINT #filenum, "*" NEXT IF transflag = -1 THEN FOR I = 1 TO phrasenum PRINT #filenum, english(I) NEXT END IF CLOSE #filenum GetClozeData TextProcess(passage) MSGBOX("Cloze File saved as " + clozefile) END SUB ******EXIT Button****** SUB Command2_Click () UNLOAD FrmEdit END SUB ******LOAD Settings******(Gets Title, Heading etc Loads phrases for editing) SUB Form_Load () FOR I=1 TO 20 english(I(="" NEXT Cloze.MnuActivity.Enabled=0 IF editflag = 0 THEN wordnum=0 brackets=0 END IF transflag = 0 IF editflag=-1 THEN title(2) = INPUTBOX$("Change Title for Cloze Activity?", "OK for no change",title(2)) ELSE title(2) = INPUTBOX$("Enter Title for Cloze Activity") IF title(2)="" THEN EXIT SUB END IF IF editflag=-1 THEN heading = INPUTBOX$("Change Heading for Passage?", "OK for no change", heading) ELSE heading = INPUTBOX$("Enter Heading for Passage") IF heading="" THEN EXIT SUB END IF response% = MSGBOX("Translation Phrases Included?", 4) IF response% = 6 THEN transflag = -1 IF RIGHT$(title(2), 1) <> "|" THEN title(2) = title(2) + "|" END IF IF editflag=-1 THEN OPEN clozefile FOR INPUT AS #filenum Skip (22) FOR I = 1 TO 20 IF EOF(filenum) THEN EXIT FOR END IF LINE INPUT #filenum, english(I) NEXT CLOSE #filenum END IF END IF Text2.Text = STR$(wordnum) Text3.Text = STR$(INT(brackets / 2)) END SUB ******Restore Normal Functions after Edit Process****** SUB Form_Unload (Cancel AS INTEGER) editflag = 0 IF clozefile="" THEN EXIT SUB GetClozedata TextProcess (passage) Cloze.MnuActivity.Enabled = -1 Cloze.MnuHelp.Enabled = -1 Cloze.MnuTrans.Enabled = 0 Cloze.MnuTransInst.Enabled = 0 IF RIGHT$(title(2), 1) = "|" THEN Cloze.MnuTrans.Enabled = -1 Cloze.MnuTransInst.Enabled = -1 title(2) = LEFT$(title(2), LEN(title(2)) - 1) END IF Cloze.Label1.Caption = title(1) Cloze.Label2.Caption = title(2) Cloze.Label3.Caption = "Choose an Activity" Cloze.Label4.Caption = "From the Activity Menu" END SUB Standard CLOZE (Gapfill.FRM) *************************************************************************** SC -GAPFILL DECLARE SUB Accents () DECLARE SUB LENTRIM (X AS STRING) DECLARE SUB Command2_Click () DECLARE SUB NextGap () DECLARE SUB W (sec AS INTEGER) '$INCLUDE: 'cloze.bi' ******EXIT Button****** SUB Command1_Click () UNLOAD FrmSC END SUB ******ACCENTS Button****** SUB Command2_Click () Accents Text1.SETFOCUS END SUB ******LOAD Settings****** SUB Form_Load () Window.State = 2 gap = 0 score = 0 words = 0 gapfilled = 1 Text1.Enabled = -1 numsec = 0 starttime = TIMER END SUB ******MOVE to next GAP****** SUB NextGap () IF words > wordnum THEN EXIT SUB IF gapinterval > 0 THEN DO words = words + 1 LOOP UNTIL words MOD gapinterval = 0 ELSE DO words = words + 1 LOOP UNTIL GG(words) = 35 END IF END SUB ******INPUT WORD****** SUB Text1_Change () wordentered = Text1.Text END SUB ******MAIN GAPFILL PROCEDURE****** SUB Text1_KeyPress (KeyAscii AS INTEGER) IF KeyAscii = 13 THEN numsec = INT(TIMER - starttime) Label3.Caption = "TIME = " + STR$(numsec) + " seconds" KeyAscii = 0 Text1.SETFOCUS IF words > wordnum THEN EXIT SUB IF gapfilled = 1 THEN NextGap LENTRIM (singleword(words)) correct = match LENTRIM (wordentered) answer = match IF answer = correct THEN Picture1.CurrentX = htab(words) Picture1.CurrentY = vtab(words) Picture1.PRINT singleword(words) Label4.Caption = "That's the right word!" W 2 Text1.Text = "" Label4.Caption = "" score = score + 1 Label2.Caption = "Your score is " + STR$(score) gap = gap + 1 gapfilled = 1 ELSEIF wordentered = "W" OR wordentered = "w" THEN Picture1.CurrentX = htab(words) Picture1.CurrentY = vtab(words) Picture1.PRINT singleword(words) score = score - 1 Label2.Caption = "Your score is " + STR$(score) Text1.Text = "" Label4.Caption = "" gap = gap + 1 gapfilled = 1 ELSEIF wordentered = "Q" OR wordentered = "q" THEN UNLOAD FrmSC EXIT SUB ELSE Label4.Caption = "That's not the word!" Label2.Caption = "Your score is " + STR$(score) W 2 Text1.Text = "" Label4.Caption = "" gapfilled = 0 END IF IF gap = gapnum THEN Label4.Caption = "PASSAGE COMPLETE" starttime = 0 numsec = 0 Text1.Enabled = 0 Command1.SETFOCUS words = 0 score = 0 gap = 0 gapfiller = 1 END IF END IF14 END SUB SECRET PASSAGE (SecPass.FRM) ************************************************************************ Version 1.00 BEGIN Form FrmSP AutoRedraw = -1 BackColor = QBColor(7) BorderStyle = 2 Caption = "SECRET PASSAGE" DECLARE SUB Accents () DECLARE SUB LENTRIM (X AS STRING) DECLARE SUB RandomWord () DECLARE SUB W (sec AS INTEGER) DECLARE SUB CheckWord () '$INCLUDE: 'cloze.bi' ******Checks each word entered. Locates on screen****** SUB CheckWord () DIM msg AS STRING FOR i = 1 TO wordnum LENTRIM (singleword(i)) IF (match = wordentered OR singleword(i) = wordentered) AND randcheck(i) <> 1 THEN Picture1.CurrentX = htab(i) Picture1.CurrentY = vtab(i) Picture1.PRINT singleword(i) IF words > 60 THEN score = score + 20 ELSE score = score + 10 END IF words = words + 1 randcheck(i) = 1 flag = words END IF NEXT IF flag = 0 THEN Label4.Caption = "Not a hidden word!" W 2 Text1.Text = "" Label4.Caption = "" ELSE Label4.Caption = "That's a word!" W 1 Text1.Text = "" Label4.Caption = "" END IF END SUB ******EXIT Button****** SUB Command1_Click () UNLOAD FrmSP END SUB ******ACCENTS Button****** SUB Command2_Click () Accents Text1.SETFOCUS END SUB ******LOAD Settings****** SUB Form_Load () Window.State = 2 Text1.Enabled = -1 numsec = 0 starttime = TIMER END SUB ******INPUT Word****** SUB Text1_Change () wordentered = Text1.Text END SUB ******Main Secret Passage Procedure*******(uses Checkword) SUB Text1_KeyPress (KeyAscii AS INTEGER) IF KeyAscii = 13 THEN numsec = INT(TIMER - starttime) Label3.Caption = "TIME = " + STR$(numsec) + " seconds" KeyAscii = 0 Text1.SETFOCUS LENTRIM (wordentered) wordentered = match IF wordentered = "Q" OR wordentered = "q" THEN score = score - 200 FOR i = 1 TO wordnum FrmSP.Picture1.CurrentX = htab(i) FrmSP.Picture1.CurrentY = vtab(i) FrmSP.Picture1.PRINT singleword(i) NEXT Label2.Caption = "Your score is " + STR$(score) Label4.Caption = "OK You've given up!" Text1.Text = "" Text1.Enabled = 0 Command1.SETFOCUS ELSEIF wordentered = "W" OR wordentered = "w" THEN score = score - 10 words = words + 1 RandomWord Label4.Caption = "You asked for a word" Picture1.CurrentX = htab(randomnum) Picture1.CurrentY = vtab(randomnum) Picture1.PRINT singleword(randomnum) randcheck(randomnum) = 1 Label2.Caption = "Your score is " + STR$(score) W 1 Text1.Text = "" Label4.Caption = "" ELSEIF wordentered = "P" OR wordentered = "p" THEN Label4.Caption = "10 secs to view passage" Picture1.AutoRedraw = 0 Command1.Enabled = 0 FOR i = 1 TO wordnum FrmSP.Picture1.CurrentX = htab(i) FrmSP.Picture1.CurrentY = vtab(i) FrmSP.Picture1.PRINT singleword(i) NEXT W 10 Picture1.AutoRedraw = -1 Command1.Enabled = -1 score = score - 100 Text1.Text = "" Label4.Caption = "" numsec = INT(TIMER - starttime) Label2.Caption = "Your score is " + STR$(score) Label3.Caption = "TIME = " + STR$(numsec) + " seconds" Picture1.CLS Picture1.CurrentX = (74 - LEN(heading)) / 2 Picture1.PRINT heading FOR i = 1 TO wordnum IF randcheck(i) = 1 THEN Picture1.CurrentX = htab(i) Picture1.CurrentY = vtab(i) Picture1.PRINT singleword(i) END IF NEXT W 1 Text1.Text = "" ELSEIF LEN(wordentered) = 0 THEN Label4.Caption = "Enter a WORD!" W 1 Text1.Text = "" score = score - 10 ELSE CheckWord Label2.Caption = "Your score is " + STR$(score) END IF IF words >= wordnum THEN Label4.Caption = "PASSAGE COMPLETE" Command1.SETFOCUS Text1.Enabled = 0 END IF END IF END SUB TRANSLATION CLOZE ***************************************************************************Version 1.00 BEGIN Form FrmTrans AutoRedraw = -1 BackColor = QBColor(8) BorderStyle = 2 Caption = "TRANSLATION CLOZE" DECLARE SUB Accents () DECLARE SUB LENTRIM (X AS STRING) DECLARE SUB W (sec AS INTEGER) '$INCLUDE: 'cloze.bi' ******EXIT Button****** SUB Command1_Click () UNLOAD FrmTrans END SUB ******ACCENTS Button****** SUB Command2_Click () Accents Text1.SETFOCUS END SUB ******LOAD Settings****** SUB Form_Load () Window.State = 2 Text1.Enabled = -1 numsec = 0 starttime = TIMER gap = 0 score = 0 words = 0 gapfilled = 1 Label1.Caption = "CLICK HERE FOR A PHRASE" END SUB ******PROMPT for phrase****** SUB Label1_Click () Label1.Caption = "Enter phrase- " + english(gap + 1) END SUB ******INPUT phrase****** SUB Text1_Change () wordentered = Text1.Text END SUB ******Main Translation CLOZE Procedure****** SUB Text1_KeyPress (KeyAscii AS INTEGER) IF KeyAscii = 13 THEN numsec = INT(TIMER - starttime) label3.Caption = "TIME = " + STR$(numsec) + " seconds" KeyAscii = 0 DIM T AS STRING IF gapfilled = 1 THEN DO words = words + 1 LOOP UNTIL HH(words) = 91 gap = gap + 1 END IF Text1.SETFOCUS T = phrase(gap) LENTRIM (phrase(gap)) correct = match LENTRIM (wordentered) answer = match IF answer = correct THEN Label4.Caption = "That's right - " FOR I = PP(gap) TO QQ(gap) Picture1.CurrentX = htab(I) Picture1.CurrentY = vtab(I) Picture1.PRINT singleword(I) NEXT score = score + 1 gapfilled = 1 IF gap < gapnum THEN Label1.Caption = "CLICK HERE FOR A PHRASE" label2.Caption = "Your score is " + STR$(score) W 2 Text1.Text = "" Label4.Caption = "" ELSEIF wordentered = "W" OR wordentered = "w" THEN FOR I = PP(gap) TO QQ(gap) Picture1.CurrentX = htab(I) Picture1.CurrentY = vtab(I) Picture1.PRINT singleword(I) NEXT score = score - 1 gapfilled = 1 Label4.Caption = "You asked for a phrase" W 1 Text1.Text = "" Label1.Caption = "" Label4.Caption = "" label2.Caption = "Your score is " + STR$(score) IF gap < gapnum THEN Label1.Caption = "CLICK HERE FOR A PHRASE" ELSEIF wordentered = "Q" OR wordentered = "q" THEN UNLOAD FrmTrans EXIT SUB ELSE Label4.Caption = "Sorry- Not acceptable!" W 2 Text1.Text = "" Label4.Caption = "" gapfilled = 0 label2.Caption = "Your score is " + STR$(score) END IF IF gap = gapnum THEN label3.Caption = "TIME = " + STR$(numsec) + " seconds" Label4.Caption = "PASSAGE COMPLETE" Text1.Enabled = 0 Command1.SETFOCUS END IF END IF END SUB Options.FRM (Used to get Gapinterval) ***************************************************************************Version 1.00 BEGIN Form Options AutoRedraw = 0 BackColor = QBColor(8) BorderStyle = 1 Caption = "Select Gap Interval" '$INCLUDE: 'cloze.bi' ******EXIT Button****** SUB Command1_Click () UNLOAD Options END SUB ******SET DEFAULT****** SUB Form_Load () Option1(0).Value = -1 gapinterval = 2 END SUB ******CHOOSE gapinterval****** SUB Option1_Click (index AS INTEGER) gapinterval = index + 2 END SUB