As you know, criticism is essential to forward development, so I've posted my latest small project here for just that purpose. Please lemme know what you all think of any aspect of this bit of code. It's simple, but I think it serves its purpose well. Thank you everybody!
WELCOME:
HIDE MOUSE
`print welcome and instructions
SET TEXT SIZE 30
CENTER TEXT 320,170, "WELCOME TO MATH TUTOR"
SET TEXT SIZE 10
CENTER TEXT 320,220, "Think fast, your math problem disappears quickly!"
CENTER TEXT 320,235, "Beware! If you get too many wrong answers, your score could shrink!"
`input skill level and math choice
SET CURSOR 150,265
INPUT "Please select a skill level between 1 and 10> ",S
SET CURSOR 150,295
PRINT "(a) Addition"
SET CURSOR 150,310
PRINT "(b) Subtraction"
SET CURSOR 150,325
PRINT "(c) Multiplication"
SET CURSOR 150,355
INPUT "And now, choose one of the above> ",M$
`goto selected math choice
IF M$="a"
CLS
SET TEXT SIZE 30 : CENTER TEXT 320,200, "READY" : SLEEP 2000
GOTO ADD
ENDIF
IF M$="b"
CLS
SET TEXT SIZE 30 : CENTER TEXT 320,200, "READY" : SLEEP 2000
GOTO SUB
ENDIF
IF M$="c"
CLS
SET TEXT SIZE 30 : CENTER TEXT 320,200, "READY" : SLEEP 2000
GOTO MUL
ENDIF
IF M=ELSE
CLS
GOTO WELCOME
ENDIF
`set beggining score
SC=0
`**************addition tutor**************
ADD:
`random number generator
DIM random(15,2)
random(1,1)=RND(S*10) : random(1,2)=RND(S*10)
random(2,1)=RND(S*10) : random(2,2)=RND(S*10)
random(3,1)=RND(S*10) : random(3,2)=RND(S*10)
random(4,1)=RND(S*10) : random(4,2)=RND(S*10)
random(5,1)=RND(S*10) : random(5,2)=RND(S*10)
random(6,1)=RND(S*10) : random(6,2)=RND(S*10)
random(7,1)=RND(S*10) : random(7,2)=RND(S*10)
random(8,1)=RND(S*10) : random(8,2)=RND(S*10)
random(9,1)=RND(S*10) : random(9,2)=RND(S*10)
random(10,1)=RND(S*10) : random(10,2)=RND(S*10)
random(11,1)=RND(S*10) : random(11,2)=RND(S*10)
random(12,1)=RND(S*10) : random(12,2)=RND(S*10)
random(13,1)=RND(S*10) : random(13,2)=RND(S*10)
random(14,1)=RND(S*10) : random(14,2)=RND(S*10)
random(15,1)=RND(S*10) : random(15,2)=RND(S*10)
`begin loop
DO
CLS
PRINT "SCORE> ",SC
X=(RND(14)+1)
Y=(RND(14)+1)
Z=100
I=10
`begin problem
PROB_A:
SET CURSOR 310,240
PRINTC random(X,1)
PRINTC "+"
PRINT random(Y,2)
SLEEP Z
INK RGB(0,0,0),RGB(0,0,0) : BOX 310,240,420,255 : INK RGB(255,255,255),RGB(0,0,0)
INPUT "Answer> ",A
IF A=random(X,1)+random(Y,2)
SC=SC+I
PRINT "GOOD JOB!"
ELSE
Z=Z+100
PRINT "WRONG ANSWER!"
SLEEP 2000
INK RGB(0,0,0),RGB(0,0,0)
BOX 0,255,150,285
INK RGB(255,255,255),RGB(0,0,0)
I=I-2
GOTO PROB_A
ENDIF
SLEEP 2000
SET TEXT SIZE 30 : CENTER TEXT 320,200, "READY" : SLEEP 2000
LOOP
`**************subtraction tutor**************
SUB:
`random number generator
DIM random(15,2)
random(1,1)=RND(S*10) : random(1,2)=RND(S*10)
random(2,1)=RND(S*10) : random(2,2)=RND(S*10)
random(3,1)=RND(S*10) : random(3,2)=RND(S*10)
random(4,1)=RND(S*10) : random(4,2)=RND(S*10)
random(5,1)=RND(S*10) : random(5,2)=RND(S*10)
random(6,1)=RND(S*10) : random(6,2)=RND(S*10)
random(7,1)=RND(S*10) : random(7,2)=RND(S*10)
random(8,1)=RND(S*10) : random(8,2)=RND(S*10)
random(9,1)=RND(S*10) : random(9,2)=RND(S*10)
random(10,1)=RND(S*10) : random(10,2)=RND(S*10)
random(11,1)=RND(S*10) : random(11,2)=RND(S*10)
random(12,1)=RND(S*10) : random(12,2)=RND(S*10)
random(13,1)=RND(S*10) : random(13,2)=RND(S*10)
random(14,1)=RND(S*10) : random(14,2)=RND(S*10)
random(15,1)=RND(S*10) : random(15,2)=RND(S*10)
DO
CLS
PRINT "SCORE> ",SC
X=(RND(14)+1)
Y=(RND(14)+1)
Z=100
I=10
`begin problem
PROB_S:
SET CURSOR 310,240
PRINTC random(X,1)
PRINTC "-"
PRINT random(Y,2)
SLEEP Z
INK RGB(0,0,0),RGB(0,0,0) : BOX 310,240,420,255 : INK RGB(255,255,255),RGB(0,0,0)
INPUT "Answer> ",A
IF A=random(X,1)-random(Y,2)
SC=SC+I
PRINT "GOOD JOB!"
ELSE
Z=Z+100
PRINT "WRONG ANSWER!"
SLEEP 2000
INK RGB(0,0,0),RGB(0,0,0)
BOX 0,255,150,285
INK RGB(255,255,255),RGB(0,0,0)
I=I-2
GOTO PROB_S
ENDIF
SLEEP 2000
SET TEXT SIZE 30 : CENTER TEXT 320,200, "READY" : SLEEP 2000
LOOP
`**************multiplication tutor**************
MUL:
`random number generator
DIM random(15,2)
random(1,1)=RND(S*10) : random(1,2)=RND(S*10)
random(2,1)=RND(S*10) : random(2,2)=RND(S*10)
random(3,1)=RND(S*10) : random(3,2)=RND(S*10)
random(4,1)=RND(S*10) : random(4,2)=RND(S*10)
random(5,1)=RND(S*10) : random(5,2)=RND(S*10)
random(6,1)=RND(S*10) : random(6,2)=RND(S*10)
random(7,1)=RND(S*10) : random(7,2)=RND(S*10)
random(8,1)=RND(S*10) : random(8,2)=RND(S*10)
random(9,1)=RND(S*10) : random(9,2)=RND(S*10)
random(10,1)=RND(S*10) : random(10,2)=RND(S*10)
random(11,1)=RND(S*10) : random(11,2)=RND(S*10)
random(12,1)=RND(S*10) : random(12,2)=RND(S*10)
random(13,1)=RND(S*10) : random(13,2)=RND(S*10)
random(14,1)=RND(S*10) : random(14,2)=RND(S*10)
random(15,1)=RND(S*10) : random(15,2)=RND(S*10)
DO
CLS
PRINT "SCORE> ",SC
X=(RND(14)+1)
Y=(RND(14)+1)
Z=100
I=10
`begin problem
PROB_M:
SET CURSOR 310,240
PRINTC random(X,1)
PRINTC "x"
PRINT random(Y,2)
SLEEP Z
INK RGB(0,0,0),RGB(0,0,0) : BOX 310,240,420,255 : INK RGB(255,255,255),RGB(0,0,0)
INPUT "Answer> ",A
IF A=random(X,1)*random(Y,2)
SC=SC+I
PRINT "GOOD JOB!"
ELSE
Z=Z+100
PRINT "WRONG ANSWER!"
SLEEP 2000
INK RGB(0,0,0),RGB(0,0,0)
BOX 0,255,150,285
INK RGB(255,255,255),RGB(0,0,0)
I=I-2
GOTO PROB_M
ENDIF
SLEEP 2000
SET TEXT SIZE 30 : CENTER TEXT 320,200, "READY" : SLEEP 2000
LOOP