Jump to content
Sign in to follow this  
FixxxxxeR

Game Breakout !

Recommended Posts

Berikut ialah Source code untuk game Break Out , dalam GWBASIC , aku berniat untuk convert game ni ke dalam Qbasic dan GLBasic ... algorithm dia simple jerr...tak berapa payah untuk difahami , kalau korang nak convert game ni ker windows ok gak...sama-sama kita pakat buat..mesti seronok :-
My website [url="http://jalisoftware.xtreemhost.com/"]htt://jalisoftware.xtreemhost.com/[/url]

10 REM ibm pc spinout
20 REM K.R. Sloan, Jr.
30 REM 1 January 1982
40 DIM BALL(14)
50 DIM PADDLE(9)
60 DIM BRICK(20, 4)
65 RANDOMIZE (VAL(RIGHT$(TIME$, 2)))
70 KEY OFF: PLAY \"mb\"
80 LOUD = 0
90 BRUNO$ = \"l16o2b-o3cl8ddc+16do2fp1\"
110 T = 8: B = 188: L = 8: R = 308
120 BH = 8: BW = (R - L) / 20
130 BT = T + (BH * 4): BB = BT + (BH * 4)
135 CLS
140 LOCATE 7, 12: PRINT \"Welcome to Spinout\";
150 LOCATE 8, 12: PRINT \"ArchMach Version 1\";
160 LOCATE 12, 1: PRINT \"Choose a key to move the paddle right\";
170 R$ = INKEY$: IF R$ = \"\" GOTO 170
180 LOCATE 12, 1: PRINT \"Choose a key to move the paddle left \";
190 L$ = INKEY$: IF L$ = \"\" GOTO 190
200 IF R$ = L$ GOTO 160
210 LOCATE 12, 1: PRINT \"Choose a key to serve \";
220 S$ = INKEY$: IF S$ = \"\" GOTO 220
230 IF (R$ = S$) OR (L$ = S$) GOTO 160
240 LOCATE 12, 1: PRINT \"Choose a key to turn noise on/off \";
250 N$ = INKEY$: IF N$ = \"\" GOTO 250
260 IF (R$ = N$) OR (L$ = N$) OR (S$ = N$) GOTO 160
270 LOCATE 12, 1: INPUT ; \"How good are you at this game (1-10)\"; SKILL
275 IF SKILL < 1 GOTO 270
276 IF SKILL > 10 GOTO 270
280 SKILL = SKILL / 10
290 MAXVX = 6 + (4 * SKILL): MAXVY = MAXVX
295 G = SKILL / 5
296 DEF SEG = 0: EQUIPMENT% = PEEK(&H410)\':POKE &H410,EQUIPMENT%-&H10
297 WIDTH 40: WIDTH 80: SCREEN 0, 0, 0: SCREEN 1: COLOR 1, 0: CLS
300 LINE (0, 0)-(319, 199), 0, BF
310 FOR BY = 0 TO 3
320 FOR BX = 0 TO 19
330 BRICK(1 + BX, 1 + BY) = 10 + 50 * BY
340 LINE (L + 2 + (BW * BX), BT + 2 + (BH * BY))-STEP(BW - 4, BH - 4), 2 + INT(BY / 2), BF
350 NEXT BX, BY
360 SCORE = 0
370 LINE (L, T)-(R, T)
380 LINE -(R, B )
390 LINE -(L, B )
400 LINE -(L, T)
410 X = 160: Y = 100
420 LASTD$ = \"\"
430 FOR I = 1 TO 5
440 FOR J = 1 TO 5
450 IF ((I - 3) * (I - 3)) + ((J - 3) * (J - 3)) < 6.25 THEN PSET (X - 3 + I, Y - 3 + J)
460 NEXT J, I
470 GET (X - 2, Y - 2)-(X + 2, Y + 2), BALL
480 PL = 150: PR = 170: PY = B - 20
490 LINE (PL, PY)-(PR, PY), 1, BF
500 GET (PL, PY)-(PR, PY), PADDLE
510 REM main loop
520 IF LOUD = 1 THEN PLAY BRUNO$
530 FOR SHOT = 1 TO 4
540 LOCATE 25, 1
550 PRINT USING \"#####\"; SCORE;
560 LOCATE 25, 8
570 PRINT USING \"Ball # \"; SHOT;
580 LOCATE 25, 18
590 PRINT \"K.R.Sloan,Jr. 1Jan82\";
600 IF X > R THEN X = R
610 IF X < L THEN X = L
620 IF Y < T THEN Y = T
630 IF Y > B THEN Y = B
640 PUT (X - 2, Y - 2), BALL
650 X = L + RND(X) * (R - L)
660 Y = B - 10
670 PUT (X - 2, Y - 2), BALL
680 VX = 6 * RND(1) - 3
690 VY = -5 - 2 * RND(1)
700 SPIN = 0
710 FAST = 1 + SKILL
720 GOSUB 1410 \'MOVE PADDLE
730 IF D$ <> S$ GOTO 720
740 OX = X: OY = Y: OBX = BX: OBY = BY
750 OVX = VX: OVY = VY
760 VX = OVX - (SPIN * OVY * .05): VY = OVY + (SPIN * OVX * .05) + G
761 SPIN = SPIN * .9999
770 IF VX > MAXVX THEN VX = MAXVX
771 IF VY > MAXVY THEN VY = MAXVY
780 IF VX < -MAXVX THEN VX = -MAXVX
781 IF VY < -MAXVY THEN VY = -MAXVY
790 X = X + VX: Y = Y + VY
800 BX = INT((X - L) / BW)
810 IF BX > 19 THEN BX = 19
820 IF BX < 0 THEN BX = 0
830 BY = INT((Y - BT) / BH)
840 IF BY > 3 GOTO 1050
850 IF BY < 0 GOTO 1050
860 IF BRICK(1 + BX, 1 + BY) <= 0 GOTO 1050
870 IF BY > 1 GOTO 890
880 VY = VY * FAST
890 IF (OBX <> BX) THEN VX = -VX
900 IF (OBY <> BY) THEN VY = -VY
910 SCORE = SCORE + BRICK(1 + BX, 1 + BY)
920 SOUND 440, 2 * LOUD
930 PUT (OX - 2, OY - 2), BALL, XOR
940 LINE (L + 2 + (BW * BX), BT + 2 + (BH * BY))-STEP(BW - 4, BH - 4), 0, BF
950 PUT (OX - 2, OY - 2), BALL, XOR
960 BRICK(1 + BX, 1 + BY) = -BRICK(1 + BX, 1 + BY)
970 IF SCORE < 6800 GOTO 1050
972 LOCATE 25, 1
974 PRINT USING \"#####\"; SCORE;
980 FOR FLASH = 1 TO 8
990 COLOR FLASH, .5 + RND(FLASH)
1000 PLAY \"mfaemb\"
1010 NEXT FLASH
1040 GOTO 1340
1050 IF X <= L THEN X = L + L - X: VX = -VX: VY = VY + SPIN: SOUND 600, 2 * LOUD
1060 IF X >= R THEN X = R + R - X: VX = -VX: VY = VY - SPIN: SOUND 1200, 2 * LOUD
1070 IF Y <= T THEN Y = T + T - Y: VY = -VY: VX = VX - SPIN: SOUND 880, 2 * LOUD
1080 IF Y >= B GOTO 1310
1090 IF (Y < PY) OR (OY > PY) THEN GOTO 1270
1100 IF ((PL - 2) < X) AND (X < (PR + 2)) GOTO 1130
1110 IF ((PL - 2) < OX) AND (OX < (PR + 2)) GOTO 1130
1120 GOTO 1270
1130 Y = PY + PY - Y
1140 SOUND 300, 5 * LOUD
1150 IF (RND(1) * 2) > SKILL GOTO 1210
1160 BX = INT(RND(1) * 19.99): BY = INT(RND(1) * 3.99):
1170 IF BRICK(1 + BX, 1 + BY) > 0 GOTO 1210
1180 BRICK(1 + BX, 1 + BY) = -BRICK(1 + BX, 1 + BY)
1190 LINE (L + 2 + (BW * BX), BT + 2 + (BH * BY))-STEP(BW - 4, BH - 4), 2 + INT(BY / 2), BF
1200 SCORE = SCORE - BRICK(1 + BX, 1 + BY)
1210 LOCATE 25, 1
1220 PRINT SCORE;
1230 VY = -VY
1240 MISS = (X - (PL + PR) / 2) / (PL - PR)
1250 VX = VX + VY * MISS * SKILL * 5
1260 SPIN = (SPIN * SKILL) + MISS * SKILL
1270 PUT (X - 2, Y - 2), BALL, XOR
1280 PUT (OX - 2, OY - 2), BALL, XOR
1290 GOSUB 1410 \'move paddle
1300 GOTO 740
1310 REM lost ball
1320 IF LOUD = 1 THEN SOUND 200, 20
1330 NEXT SHOT
1340 REM End of Game
1341 \'DEF SEG=0:POKE &H410,125:WIDTH 40:WIDTH 80:SCREEN 0,0,0
1342 WIDTH 80: SCREEN 0, 0, 0
1350 LOCATE 12, 20
1360 PRINT \"Do you want to play another game?\";
1370 D$ = INKEY$
1380 IF D$ = \"y\" THEN RUN
1390 IF D$ = \"n\" THEN STOP
1400 GOTO 1370
1410 REM move paddle routine
1420 OPL = PL
1430 D$ = INKEY$
1440 IF D$ = N$ THEN LOUD = -1 * LOUD + 1
1450 IF D$ = L$ THEN PL = PL - 5: GOTO 1430
1460 IF D$ = R$ THEN PL = PL + 5: GOTO 1430
1470 IF PL < L THEN PL = L
1480 IF PL > (R - 20) THEN PL = R - 20
1490 IF OPL = PL THEN RETURN
1500 PR = PL + 20
1510 PUT (OPL, PY), PADDLE, XOR
1520 PUT (PL, PY), PADDLE, XOR
1530 RETURN

[img]http://img12.imageshack.us/img12/1091/breakouta.jpg[/img]

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...