2ce1a96a451a2927bdaa59a1c8c68ef560a21e3b
[qbasicapps.git] / unsorted / passw.bas
1 ' Svjatoslav Agejenko svjatoslavagejenko@gmail.com year:2002\r
2 ' See or modify "passwd.dat" for password.\r
3 ' Is useful when compiled into EXE, and put into AUTOEXEC.BAT\r
4 \r
5 DECLARE SUB check (a$)\r
6 DECLARE SUB start ()\r
7 DECLARE SUB mkv (s%, C%)\r
8 DECLARE SUB box (x1%, y1%, x2%, y2%)\r
9 \r
10 DIM SHARED cha\r
11 DIM SHARED pwd$\r
12 \r
13 start\r
14 \r
15 x = 25\r
16 x2 = 10\r
17 x3 = 0\r
18 B$ = ""\r
19 1\r
20 x = x + xs\r
21 IF x > 0 THEN xs = xs - .5\r
22 IF x < 0 THEN xs = xs + .5\r
23 xs = xs - (xs / 8)\r
24 IF x2 > 100 THEN x2 = 10\r
25 LINE (x2, 10)-(x2, 60), 0\r
26 PSET (x2, x + 35), 10\r
27 IF x2 < 99 THEN LINE (x2 + 1, 10)-(x2 + 1, 60), 3\r
28 x2 = x2 + 1\r
29 x3 = x3 + 1\r
30 IF x3 > 40 THEN x3 = 0: xs = xs - 5: SOUND 1000, 1\r
31 \r
32 SOUND 0, .5\r
33 \r
34 a$ = INKEY$\r
35 IF a$ = CHR$(13) THEN\r
36 check B$\r
37 B$ = ""\r
38 GOTO 2\r
39 END IF\r
40 IF a$ <> "" THEN\r
41 IF a$ = CHR$(8) THEN\r
42 IF LEN(B$) > 0 THEN B$ = LEFT$(B$, LEN(B$) - 1): GOTO 2\r
43 GOTO 2\r
44 END IF\r
45 B$ = B$ + a$\r
46 IF LEN(B$) > 10 THEN B$ = LEFT$(B$, 10)\r
47 2\r
48 FOR a = 1 TO 10\r
49 IF a <= LEN(B$) THEN C = 5 ELSE C = 1\r
50 CIRCLE (a * 15 + 20, 150), 6, C\r
51 PAINT (a * 15 + 20, 150), C\r
52 NEXT a\r
53 END IF\r
54 GOTO 1\r
55 \r
56 DEFINT A-Z\r
57 SUB box (x1, y1, x2, y2)\r
58 LINE (x1 + 1, y1 + 1)-(x2 - 1, y2 - 1), 0, BF\r
59 LINE (x1, y1)-(x2, y2), 10, B\r
60 LINE (x1, y1)-(x2, y1 - 9), 14, BF\r
61 LINE (x1, y1)-(x2, y1 - 9), 10, B\r
62 \r
63 LINE (x2 - 2, y1 - 2)-(x2 - 7, y1 - 7), 7, BF\r
64 LINE (x2 - 9, y1 - 2)-(x2 - 14, y1 - 7), 7, BF\r
65 \r
66 LINE (x2 - 2, y1 - 2)-(x2 - 7, y1 - 7), 0\r
67 LINE (x2 - 2, y1 - 7)-(x2 - 7, y1 - 2), 0\r
68 \r
69 LINE (x2 - 10, y1 - 3)-(x2 - 13, y1 - 3), 0\r
70 END SUB\r
71 \r
72 DEFSNG A-Z\r
73 SUB check (a$)\r
74 cha = cha - 1\r
75 \r
76 IF a$ = pwd$ THEN CLS : SCREEN 2: SYSTEM\r
77 \r
78 DIM buf(1 TO 3000)\r
79 \r
80 GET (79, 80)-(241, 141), buf(1)\r
81 \r
82 box 80, 90, 240, 140\r
83 LOCATE 14, 14\r
84 COLOR 12\r
85 PRINT "Wrong passworD"\r
86 COLOR 5\r
87 \r
88 LOCATE 16, 13\r
89 PRINT STR$(cha) + " chanses left"\r
90 \r
91 FOR a = 1 TO 30\r
92 SOUND 0, 1\r
93 NEXT a\r
94 \r
95 IF cha = 0 THEN\r
96 DIM buf2(1000)\r
97 GET (79, 138)-(241, 140), buf2\r
98 FOR a = 1 TO 40\r
99 PUT (79, 138 + a), buf2, PSET\r
100 SOUND 0, .5\r
101 NEXT a\r
102 \r
103 LOCATE 19, 14\r
104 COLOR 12\r
105 PRINT "SYSTEM HALTED"\r
106 LOCATE 21, 14\r
107 PRINT "SUCESSFULLY!!"\r
108 3\r
109 GOTO 3\r
110 END IF\r
111 \r
112 \r
113 PUT (79, 80), buf(1), PSET\r
114 \r
115 \r
116 END SUB\r
117 \r
118 DEFINT A-Z\r
119 SUB mkv (s, C)\r
120 FOR x = 160 TO 319 STEP s\r
121 LINE (x, 0)-(x, 199), C\r
122 LINE (320 - x, 0)-(320 - x, 199), C\r
123 NEXT x\r
124 \r
125 FOR y = 100 TO 199 STEP s\r
126 LINE (0, y)-(319, y), C\r
127 LINE (0, 200 - y)-(319, 200 - y), C\r
128 NEXT y\r
129 \r
130 END SUB\r
131 \r
132 DEFSNG A-Z\r
133 SUB start\r
134 \r
135 OPEN "passw.dat" FOR INPUT AS #1\r
136 LINE INPUT #1, pwd$\r
137 CLOSE #1\r
138 \r
139 SCREEN 13\r
140 \r
141 cha = 3\r
142 \r
143 s = 2\r
144 FOR C = 16 TO 31\r
145 s = s * 1.4\r
146 mkv INT(s), INT(C)\r
147 NEXT C\r
148 mkv INT(s), 0\r
149 \r
150 \r
151 box 70, 20, 270, 90\r
152 \r
153 COLOR 5\r
154 LOCATE 8, 10\r
155 PRINT "           stack dump:"\r
156 LOCATE 9, 10\r
157 PRINT "010010010010010010010100"\r
158 \r
159 LOCATE 10, 10\r
160 PRINT "Running rocket ground"\r
161 LOCATE 11, 10\r
162 PRINT "control system..."\r
163 \r
164 box 9, 9, 101, 61\r
165 \r
166 box 20, 130, 300, 190\r
167 \r
168 LOCATE 18, 5\r
169 PRINT "ENTER PASSWORD:"\r
170 \r
171 END SUB\r
172 \r