QBASIC program za upravljanje modelom lifta
' ****** dizalo ****** (autor: B.Boranic) CLS izlaz = 888: ' **** ili 956 **** OUT izlaz, 0 GOSUB maska1 ' DO GOSUB pokazivanje GOSUB biranje GOSUB vozi LOOP END ' maska1: LOCATE 1, 30: PRINT "D I Z A L O" LOCATE 20, 20: PRINT "Prizemlje" LOCATE 15, 20: PRINT "I. kat" LOCATE 10, 20: PRINT "II. kat" LOCATE 5, 20: PRINT "III.kat" ' LOCATE 5, 40: PRINT "(3)" LOCATE 10, 40: PRINT "(2)" LOCATE 15, 40: PRINT "(1)" LOCATE 20, 40: PRINT "(P)" RETURN ' pokazivanje: a = STRIG(1) b = STRIG(3) c = STRIG(5) d = STRIG(7) ' IF a = 1 THEN LOCATE 20, 10: PRINT ">>>>>>>" ELSE LOCATE 20, 10: PRINT " " END IF ' IF b = 1 THEN LOCATE 15, 10: PRINT ">>>>>>>" ELSE LOCATE 15, 10: PRINT " " END IF ' IF c = 1 THEN LOCATE 10, 10: PRINT ">>>>>>>" ELSE LOCATE 10, 10: PRINT " " END IF ' IF d = 1 THEN LOCATE 5, 10: PRINT ">>>>>>>" ELSE LOCATE 5, 10: PRINT " " END IF ' stanje = a * 2 ^ 0 + b * 2 ^ 1 + c * 2 ^ 2 + d * 2 ^ 3 RETURN ' biranje: q$ = INKEY$ IF q$ = "P" OR q$ = "p" THEN aa = 1: bb = 0: cc = 0: dd = 0 LOCATE 20, 45: PRINT "***" LOCATE 15, 45: PRINT " " LOCATE 10, 45: PRINT " " LOCATE 5, 45: PRINT " " END IF ' IF q$ = "1" THEN bb = 1: aa = 0: cc = 0: dd = 0 LOCATE 15, 45: PRINT "***" LOCATE 20, 45: PRINT " " LOCATE 10, 45: PRINT " " LOCATE 5, 45: PRINT " " END IF ' IF q$ = "2" THEN cc = 1: aa = 0: bb = 0: dd = 0 LOCATE 10, 45: PRINT "***" LOCATE 15, 45: PRINT " " LOCATE 20, 45: PRINT " " LOCATE 5, 45: PRINT " " END IF ' IF q$ = "3" THEN dd = 1: aa = 0: bb = 0: cc = 0 LOCATE 5, 45: PRINT "***" LOCATE 15, 45: PRINT " " LOCATE 10, 45: PRINT " " LOCATE 20, 45: PRINT " " END IF ' IF q$ = "Q" OR q$ = "q" THEN OUT izlaz, 0 END END IF ' idina = aa * 2 ^ 0 + bb * 2 ^ 1 + cc * 2 ^ 2 + dd * 2 ^ 3 RETURN ' vozi: IF stanje < idina THEN OUT izlaz, 1 kuda$ = "ide gore" END IF ' IF stanje > idina THEN OUT izlaz, 2 kuda$ = "ide dolje" END IF ' DO GOSUB pokazivanje LOCATE 20, 60: PRINT "stanje = "; " " LOCATE 21, 60: PRINT "idina = "; " " LOCATE 20, 60: PRINT "stanje = "; stanje LOCATE 21, 60: PRINT "idina = "; idina LOCATE 22, 60: PRINT " " LOCATE 22, 60: PRINT kuda$ IF stanje = idina THEN EXIT DO LOOP ' OUT izlaz, 0 kuda$ = "stoji" RETURN