3b219c91f61052d94145090c82ab30f605f62ca1
[qbasicapps.git] / math / loto / loto.bas
1 ' Lottery analyzer\r
2 ' made by Svjatoslav Agejenko\r
3 ' in 2001\r
4 ' H-Page: svjatoslav.eu\r
5 ' E-Mail: svjatoslavagejenko@gmail.com\r
6  \r
7 DECLARE SUB ennus ()\r
8 DECLARE SUB menu ()\r
9 DECLARE SUB gr1 ()\r
10 DECLARE SUB gr2 ()\r
11 DECLARE SUB getson (a$)\r
12 DECLARE SUB loaddata ()\r
13 DECLARE SUB wai ()\r
14 DECLARE SUB gr3 ()\r
15 DEFINT A-Y\r
16 \r
17 DECLARE SUB start ()\r
18 DIM SHARED mitus, sona$(1 TO 50)\r
19 DIM SHARED num(1 TO 500, 1 TO 7)\r
20 DIM SHARED mitun\r
21 \r
22 start\r
23 loaddata\r
24 \r
25 menu\r
26 \r
27 SUB ennus\r
28 DIM buf(1 TO 48)\r
29 PRINT "viimase 10 loosimise ajal:"\r
30 \r
31 FOR a = mitun - 10 TO mitun\r
32 FOR b = 2 TO 7\r
33 buf(num(a, b)) = buf(num(a, b)) + 1\r
34 NEXT b\r
35 NEXT a\r
36 \r
37 FOR b = 1 TO 6\r
38 c = 0\r
39 FOR a = 1 TO 48\r
40 IF buf(a) > c THEN c = buf(a): d = a\r
41 NEXT a\r
42 PRINT d; " esines: "; c; " korda"\r
43 buf(d) = 0\r
44 NEXT b\r
45 \r
46 PRINT "--------------------------------------"\r
47 \r
48 FOR a = 1 TO mitun\r
49 FOR b = 2 TO 7\r
50 buf(num(a, b)) = a\r
51 NEXT b\r
52 NEXT a\r
53 \r
54 FOR b = 1 TO 6\r
55 c = 30000\r
56 FOR a = 1 TO 48\r
57 IF buf(a) < c THEN c = buf(a): d = a\r
58 NEXT a\r
59 PRINT d; " esines viimati: "; mitun - c; " loosimist tagasi"\r
60 buf(d) = 30000\r
61 NEXT b\r
62 \r
63 \r
64 END SUB\r
65 \r
66 SUB getson (a$)\r
67 mitus = 0\r
68 \r
69 d = 1\r
70 FOR b = 1 TO LEN(a$)\r
71 c$ = RIGHT$(LEFT$(a$, b), 1)\r
72 IF c$ = " " THEN\r
73 d = 1\r
74 ELSE\r
75 IF d = 1 THEN\r
76 mitus = mitus + 1\r
77 sona$(mitus) = ""\r
78 d = 0\r
79 END IF\r
80 sona$(mitus) = sona$(mitus) + c$\r
81 END IF\r
82 NEXT b\r
83 \r
84 END SUB\r
85 \r
86 SUB gr1\r
87 CLS\r
88 LINE (0, 0)-(600, 0), 1\r
89 LINE (0, 49)-(600, 49), 1\r
90 LINE (0, 50)-(600, 50), 1\r
91 LINE (0, 48 * 6 + 51)-(600, 48 * 6 + 51), 1\r
92 FOR a = 1 TO mitun\r
93 c = 0\r
94 FOR b = 2 TO 7\r
95 c = c + num(a, b)\r
96 PSET (a, num(a, b)), 15\r
97 NEXT b\r
98 LINE (a, c + 50)-(a, 24 * 6 + 50), 10\r
99 NEXT a\r
100 wai\r
101 END SUB\r
102 \r
103 SUB gr2\r
104 CLS\r
105 DIM buf(1 TO 20000)\r
106 \r
107 FOR x = 1 TO mitun - 1\r
108 FOR a = 2 TO 7\r
109 LINE (600, num(x, a))-(610, num(x + 1, a)), 3\r
110 NEXT a\r
111 LINE (600, 1)-(600, 48), 1\r
112 SOUND 0, 2\r
113 GET (10, 1)-(610, 50), buf(1)\r
114 PUT (1, 1), buf(1), PSET\r
115 LINE (601, 1)-(610, 50), 0, BF\r
116 IF INKEY$ <> "" GOTO 5\r
117 NEXT x\r
118 wai\r
119 5\r
120 END SUB\r
121 \r
122 SUB gr3\r
123 CLS\r
124 PAINT (1, 1), 3\r
125 DIM buf(1 TO 48)\r
126 DIM buf2(1 TO 20000)\r
127 c = 0\r
128 \r
129 FOR a = 1 TO mitun\r
130 FOR b = 1 TO 48\r
131 buf(b) = 0\r
132 NEXT b\r
133 \r
134 FOR b = 2 TO 7\r
135 buf(num(a, b)) = 10\r
136 NEXT b\r
137 \r
138 FOR b = 1 TO 48\r
139 c = c + 1\r
140 buf2(c) = buf(b)\r
141 NEXT b\r
142 NEXT a\r
143 \r
144 FOR e = 2 TO 400\r
145 d = 0\r
146 FOR x = 1 TO 639\r
147 FOR y = 1 TO e\r
148 d = d + 1\r
149 IF d > c THEN GOTO 4\r
150 PSET (x, y), buf2(d)\r
151 NEXT y\r
152 NEXT x\r
153 4\r
154 LINE (x + 1, 1)-(x + 1, e), 14\r
155 LINE (x + 1, y)-(x + 4, y), 12\r
156 IF INKEY$ <> "" THEN GOTO 6\r
157 NEXT e\r
158 wai\r
159 6\r
160 END SUB\r
161 \r
162 SUB loaddata\r
163 PRINT "�ks hetk ...."\r
164 \r
165 mitun = 0\r
166 OPEN "loos.txt" FOR INPUT AS #1\r
167 1\r
168 IF EOF(1) <> 0 THEN GOTO 2\r
169 LINE INPUT #1, a$\r
170 getson a$\r
171 mitun = mitun + 1\r
172 FOR b = 1 TO 7\r
173 num(mitun, b) = VAL(sona$(b))\r
174 NEXT b\r
175 GOTO 1\r
176 2\r
177 CLOSE #1\r
178 \r
179 CLS\r
180 END SUB\r
181 \r
182 SUB menu\r
183 3\r
184 CLS\r
185 7\r
186 LOCATE 1, 1\r
187 PRINT "           Viking loto statistika anal��s"\r
188 PRINT "1 - t�ppgraaf"\r
189 PRINT "2 - joongraaf"\r
190 PRINT "3 - sobitus"\r
191 PRINT "4 - statistika"\r
192 PRINT "5 - v�lja"\r
193 a$ = INPUT$(1)\r
194 \r
195 IF a$ = "1" THEN gr1\r
196 IF a$ = "2" THEN gr2\r
197 IF a$ = "3" THEN gr3\r
198 IF a$ = "4" THEN ennus: GOTO 7\r
199 IF a$ = "5" THEN SYSTEM\r
200 GOTO 3\r
201 \r
202 END SUB\r
203 \r
204 SUB start\r
205 SCREEN 12\r
206 \r
207 END SUB\r
208 \r
209 SUB wai\r
210 a$ = INPUT$(1)\r
211 END SUB\r
212 \r