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