Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 18:29 25.06.24 
Клубове/ Компютри и Интернет / Visual Basic Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Нещо от моята младост...
Автор ЩиpлицМодератор (разузнавач)
Публикувано17.06.03 21:17  



... или "Как не трябва да се пише код"

не се смейте много ;о)

--------------------------------------------------------------------
  CLEAR : DIM b(640)

SCREEN 2
o = 140: p = 1: g = .01: chwind = 0
DEF SEG = 0: keyflag = PEEK(1047): POKE 1047, 32: DEF SEG

3 GOSUB 700: CLS : LOCATE 12, 26: PRINT "Loading data of file? (Y/n)";
4 v$ = INKEY$: IF v$ = "" THEN 4
5 IF v$ = "N" OR v$ = "n" THEN 17 ELSE 6
6 OPEN "c:\osp\boom.dat" FOR INPUT AS #1
7 INPUT #1, p1$: INPUT #1, s1: INPUT #1, t3: INPUT #1, t4
INPUT #1, p2$: INPUT #1, s2: INPUT #1, t5: INPUT #1, t6
INPUT #1, p
8 FOR s = 1 TO 639: pz$ = INPUT$(1, #1): b(s) = ASC(pz$): NEXT s
9 INPUT #1, w: rd = 1: CLOSE #1: safe = 1: GOTO 19
17 CLS : LOCATE 8, 24: PRINT "Player '1', your name? "; : INPUT "", p1$
18 LOCATE 10, 24: PRINT "Player '2', your name? "; : INPUT "", p2$
19 CLS : RANDOMIZE TIMER
20 r = 0: CLS : chwind = 0: GOTO 110
25 IF rd = 1 THEN 670
26 FOR s = 1 TO 639
30 o = o - (RND(1) * 8 - 4): IF o > 199 THEN o = 199 - (o - 199)
35 IF o < 110 THEN o = (110 - o) + 110
40 PSET (s, o), 7
50 b(s) = o
55 IF INKEY$ = CHR$(27) THEN GOTO ends
60 NEXT s
61 w = (INT((RND(1) * 50) - 25) * 100) / 100
IF chwind = 1 THEN RETURN ELSE
62 n = 0
63 rd = 0
65 r = 1: LOCATE 8, 24: PRINT " ";
70 FOR s = 3 TO 13
80 CIRCLE (80, b(80)), s + 2, 7, 0, 3.14: CIRCLE (560, b(560)), s + 2, 7, 0, 3.14
90 NEXT s
110 IF r = 1 OR chwind = 1 THEN GOSUB 570
IF chwind = 1 THEN chwind = 0: RETURN ELSE
111 LOCATE 1, 15: PRINT "Score:"; s1: LOCATE 1, 53: PRINT "Score:"; s2;
112 LOCATE 1, 1: PRINT p1$: LOCATE 1, 67
PRINT p2$: LOCATE 1, 31: PRINT "Produced by OSP co.";
113 LOCATE 25, 11
PRINT "Space-back 'S'-Safe in file 'N'-Next 'H'-Help ESC-Quit"; : GOSUB 312
114 IF r = 0 THEN LOCATE 8, 24: PRINT "Player"; p; ", you have a chance !!!";
119 IF r = 0 THEN 25
chwind = 1: GOSUB 61: GOSUB 570
120 LOCATE 3, 4 + (66 * (p - 1)): PRINT " ";
121 LOCATE 2, 5 + (66 * (p - 1)): IF p = 1 THEN PRINT t3 ELSE PRINT t5
LOCATE 2, 1 + (66 * (p - 1))
PRINT "Dg=>";
t1 = 2
GOSUB 330
d1 = t
122 IF p = 1 THEN t3 = t ELSE t5 = t
124 LOCATE 2, 4 + (66 * (p - 1)): PRINT " ";
LOCATE 3, 5 + (66 * (p - 1)): IF p = 1 THEN PRINT t4 ELSE PRINT t6
130 LOCATE 3, 1 + (66 * (p - 1)): PRINT "Pw=>"; : t1 = 3: GOSUB 330: IF t < 150 AND t1 = 3 THEN t = 150
131 p1 = t: LOCATE 3, 5 + (66 * (p - 1)): PRINT p1; " ";
132 IF p = 1 THEN t4 = t ELSE t6 = t
133 LOCATE 3, 4 + (66 * (p - 1)): PRINT " ";
135 IF p = 1 THEN d1 = 90 - d1
140 x = 80 + (480 * (p - 1)): y = b(x) - 7
150 d = d1 / 57.1745
151 d = 3.14159 - d
153 IF p = 1 THEN d = d - 1.57
171 PSET (x, y), 7
172 IF p = 1 THEN 176 ELSE 173
173 IF x > 70 AND x < 90 AND y > (b(80) - 10)
AND y < (b(80) + 10) THEN 210 ELSE 177
176 IF x > 550 AND x < 570 AND y > (b(560) - 10)
AND y < (b(560) + 10) THEN 210
177 IF y > b(x) THEN 300
182 g = g + (g / 9.8)
184 px = COS(d) * .02: IF px < 0 THEN px = px * -1
185 IF p = 1 THEN px = px * -1
186 d = d + px: IF d < 0 THEN d = 6.27
190 x = x + (COS(d) * p1 / 80) + (w / 10)
195 IF x < 0 OR x > 639 THEN 300
200 y = y - (SIN(d) * p1 / 80) + g / 2
202 v$ = INKEY$
203 IF v$ = CHR$(27) THEN GOTO ends
204 IF v$ = "S" OR v$ = "s" THEN GOSUB 460
205 IF v$ = "N" OR v$ = "n" THEN 560
209 GOTO 171
210 LOCATE 12, 38: PRINT " BOOM !!! ": FOR s = 0 TO 1000: NEXT s
220 IF p = 1 THEN s1 = s1 + 1 ELSE s2 = s2 + 1
230 CLS : GOSUB 305: GOTO 20
300 GOSUB 305: chwind = 1: GOSUB 61: GOSUB 570: GOTO 120
305 IF n = 1 THEN 311
306 IF p = 1 THEN px = .01 ELSE px = px * -1
307 g = .01
310 IF p = 1 THEN p = 2 ELSE p = 1
311 LOCATE 4, 1: PRINT " "; : LOCATE 4, 67: PRINT " ";
312 LOCATE 4, 1 + (66 * (p - 1)): PRINT "Player"; p;
320 RETURN
330 t = 0
340 v$ = INKEY$: IF v$ = "" THEN 340
345 IF v$ = CHR$(27) THEN 850
347 IF q = 1 THEN LOCATE 8, 33: PRINT " "; : q = 0
348 IF v$ <> "1" AND v$ <> "2" AND v$ <> "3" AND v$ <> "4"
AND v$ <> "5" AND v$ <> "6" AND v$ <> "7" AND v$ <> "8"
AND v$ <> "9" AND v$ <> "0" THEN 349 ELSE 350
349 IF v$ <> "H" AND v$ <> "h" AND v$ <> "N" AND v$ <> "n"
AND v$ <> "S" AND v$ <> "s" AND v$ <> CHR$(32)
AND v$ <> CHR$(13) THEN 340
350 IF v$ = "0" AND t * 10 <= 3000 THEN t = t * 10
360 IF v$ = "1" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 1
370 IF v$ = "2" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 2
380 IF v$ = "3" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 3
390 IF v$ = "4" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 4
400 IF v$ = "5" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 5
410 IF v$ = "6" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 6
420 IF v$ = "7" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 7
430 IF v$ = "8" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 8
435 IF v$ = "9" AND (t * 10) + 1 <= 3000 THEN t = (t * 10) + 9
440 IF v$ = "H" OR v$ = "h" THEN 630
441 IF v$ = "N" OR v$ = "n" THEN 560
442 IF v$ = CHR$(32) AND t1 = 3 AND t = 0 THEN GOSUB 120
445 IF v$ = CHR$(32) THEN t = INT(t / 10)
446 IF v$ = CHR$(13) AND t = 0 THEN safe = 0: GOTO 510 ELSE
447 IF v$ = CHR$(13) THEN safe = 0: RETURN ELSE
448 IF v$ = "S" OR v$ = "s" THEN GOSUB 460
450 LOCATE t1, 5 + (66 * (p - 1))
IF t = 0 THEN 452
PRINT t; " "
GOTO 340
452 IF t1 = 2 AND p = 1 THEN PRINT t3; " "
IF t1 = 3 AND p = 1 THEN PRINT t4; " "
IF t1 = 2 AND p = 2 THEN PRINT t5; " "
IF t1 = 3 AND p = 2 THEN PRINT t6; " "
GOTO 340
460 OPEN "c:\osp\boom.dat" FOR OUTPUT AS #1
461 PRINT #1, p1$: PRINT #1, s1: PRINT #1, t3: PRINT #1, t4
PRINT #1, p2$: PRINT #1, s2: PRINT #1, t5: PRINT #1, t6
PRINT #1, p
464 FOR s = 1 TO 639: pz$ = CHR$(b(s)): PRINT #1, pz$; : NEXT s
468 PRINT #1, w: CLOSE #1
490 LOCATE 8, 33: PRINT "Safe completed": q = 1
495 safe = 1
500 RETURN
510 IF p = 1 AND t1 = 2 THEN t = t3
520 IF p = 2 AND t1 = 2 THEN t = t5
530 IF p = 1 AND t1 = 3 THEN t = t4
540 IF p = 2 AND t1 = 3 THEN t = t6
550 RETURN
560 n = 1: CLS : GOTO 20
565 REM IF w = 0 THEN RETURN
570 LOCATE 3, 25
PRINT " ";
LOCATE 4, 37: PRINT "Wind: "; w;
IF w < 0 THEN w1 = w * -1 ELSE w1 = w
580 LINE (319 - (w1 * 4), 20)-(319 + (w1 * 4), 20), 7
600 IF w < 0 THEN 605 ELSE 620
605 w2 = -1
607 LINE (319 + ((w1 * 4) * w2), 20)-((319 + ((w1 * 4) * w2 - (w2 * 10))) + w2, 17), 7
610 LINE (319 + ((w1 * 4) * w2), 20)-((319 + ((w1 * 4) * w2 - (w2 * 10))) + w2, 23), 7: RETURN
620 w2 = 1: GOTO 607
630 SCREEN 0: CLS : SHELL "type c:\osp\boom.hlp"
640 LOCATE 23, 62: PRINT "ESC-Back to game";
650 IF INKEY$ <> CHR$(27) THEN 650
660 SCREEN 2: rd = 1: GOTO 20
670 FOR s = 1 TO 639
672 PSET (s, b(s)), 7
674 IF INKEY$ = CHR$(27) THEN GOTO ends
676 NEXT s
678 GOTO 62

700 CLS : LINE (0, 150)-(640, 150), 7
710 FOR s = 3 TO 13
720 CIRCLE (80, 150), s + 2, 7, 0, 3.14
725 CIRCLE (560, 150), s + 2, 7, 0, 3.14
730 NEXT s
740 FOR s = 0 TO 3.14 STEP .02
750 mh = 319 + 239 * COS(s)
760 mv = 150 - 100 * SIN(s)
770 PSET (mh, mv), 7
IF INKEY$ <> "" THEN RETURN
780 NEXT s
790 LOCATE 12, 35: tit$ = "B O O M !!!": PRINT tit$;
800 LOCATE 14, 33: ver$ = " Version 1.11 ": PRINT ver$
810 LOCATE 17, 30: prod$ = " Produced by OSP co. ": PRINT prod$
820 LOCATE 23, 26: PRINT "Press any key to continue ..."
IF LEFT$(RIGHT$(prod$, 8), 1) <> LEFT$(RIGHT$(tit$, 7), 1) THEN 840
brstr = 0
FOR s = 1 TO 21
brstr = brstr + ASC(LEFT$(RIGHT$(prod$, s), 1))
NEXT s
IF brstr <> 1699 THEN GOTO 840 ELSE

830 v$ = INKEY$
IF v$ = "" THEN 830 ELSE
IF v$ = CHR$(27) THEN GOTO ends ELSE RETURN

840 SCREEN 0
CLS
COLOR 12
PRINT "WARNING! ";
COLOR 28
PRINT "This program is modifyed! "
COLOR 12
PRINT "B O O M! ";
COLOR 28
PRINT "Program aborted terminated! "
COLOR 7
GOTO ends
DEF SEG = 0
blockage:
ON ERROR GOTO blockage
POKE 1047, 0
GOTO blockage

850 IF safe = 1 THEN 900
LOCATE 8, 25: PRINT "Do you want to safe info? (Y/n)": q = 1
860 v$ = INKEY$: IF v$ = "" THEN 860
IF v$ = "N" OR v$ = "n" OR v$ = CHR$(27) THEN 900
GOSUB 460
900 CLS
GOTO ends

ends:
DEF SEG = 0
POKE 1047, keyflag
DEF SEG
SCREEN 0
COLOR 7, 0
PRINT
CLS
END

-------------------------------------------

писал съм този "шедьовър" по времето когато прохождах в писането на Бейсик въобще. Както виждате, има номера на редове, които са в стила "Advanced Basic". След това разни преработки ги правих на MS QBasic, и липсват номера на редовете, но това не ми пречеше особено тогава ;о) Просто разгледайте редовете от 348 надолу ;о) на мен много ми харесва тази част от "програмата".

Драснете и вие някой ваш шедьовър, нека да знаем не само как да пишем, а и как да НЕ пишем ;о)

----------------------------------
помислих, хареса ми, помислих пак...

Цялата тема
ТемаАвторПубликувано
* Нещо от моята младост... ЩиpлицМодератор   17.06.03 21:17
. * Я и аз да се закача с нещо :)) Дъpвoдeлeц   25.06.03 01:25
. * ехеее, тука било весело бе! zaphod   29.06.03 22:49
. * Re: ехеее, тука било весело бе! Tuonela   30.06.03 10:37
. * Re: ехеее, тука било весело бе! Щиpлиц   30.06.03 21:33
. * mCrCpoQookvttDNGhv Hil   16.03.08 21:22
. * jrnOJKFdpjG Nikolet   19.03.08 04:35
. * Re: jrnOJKFdpjG Щиpлиц   19.03.08 07:44
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.