'Connect 4 'If you do something interesting or cool with this program 'such as make some AI for it or make it show which 4 chips 'connected, please send it to me, I would be very interested 'in seeing it because for now, I don't have enough time to 'do these things. 'Email me with any questions/comments at bullet42@hotmail.com DECLARE SUB options () DECLARE SUB tiegame () DECLARE SUB rwon () DECLARE SUB bwon () DECLARE SUB check () DECLARE SUB refresh () DECLARE SUB game () DECLARE SUB title () DECLARE SUB connect4 () COMMON SHARED plx, ply, stx, sty DIM SHARED plc%(1 TO 7, 1 TO 6) CLS up = 72 dn = 80 lt = 75 rt = 77 null$ = CHR$(0) st1 = 65 st2 = 77 col = 15 col2 = 15 col3 = 15 z = 1 SCREEN 12 pal = 65536 * 0 + 256 * 63 + 63 pal2 = 65536 * 4 + 256 * 0 + 30 pal3 = 65536 * 0 + 256 * 0 + 50 pal4 = 65536 * 50 + 256 * 10 + 2 pal5 = 65536 * 30 + 256 * 0 + 0 pal6 = 65536 * 15 + 256 * 15 + 15 pal7 = 65536 * 0 + 256 * 63 + 0 pal8 = 65536 * 0 + 256 * 20 + 50 PALETTE 1, pal5 PALETTE 2, pal2 PALETTE 3, pal3 PALETTE 6, pal6 PALETTE 7, pal7 PALETTE 9, pal4 PALETTE 10, pal8 PALETTE 14, pal WINDOW (-320, 240)-(320, -240) DIM pntr%(1 TO 50) LINE (-60, -67)-(-60, -77), 15 LINE -(-55, -72), 15 LINE -(-60, -67) PAINT (-57, -72), 15 GET (-60, -77)-(-54, -67), pntr% CLS CIRCLE (-90, 100), 100, 1 PAINT (-90, 100), 1 CIRCLE (-90, 100), 70, 9 PAINT (-90, 100), 9 CIRCLE (90, 100), 100, 2 PAINT (90, 100), 2 CIRCLE (90, 100), 70, 3 PAINT (90, 100), 3 COLOR 7 LOCATE 20, 35 PRINT "CONNECT 4" COLOR 14 PRINT TAB(32); "BY LUIS PADILLA" LINE (-75, -60)-(51, -98), 17, B FOR y = -98 TO -60 FOR x = -75 TO 51 IF POINT(x, y) <> 0 THEN PSET (1.8 * x + 20 + co, 2 * y + 260), POINT(x, y) PSET (1.8 * x + 20 + 1 + co, 2 * y + 260), POINT(x, y) PSET (1.8 * x + 20 + co, 2 * y + 260 + 1), POINT(x, y) END IF NEXT x co = co + 1 NEXT y LINE (-75, -60)-(51, -98), 0, BF COLOR col LOCATE 20, 35 PRINT "PLAY GAME" PRINT COLOR col2 PRINT 'TAB(35); "OPTIONS" PRINT COLOR col3 PRINT TAB(35); "EXIT" PUT (-st1, -st2), pntr% 'PLAY "MB L8 n55 L8 n50 n50 n50 L25 n0 L3 n50 L8 n48 n50 n52 L12 n0 L3 n50" 'PLAY "MB L8 n55 n55 n55 L40 n50 L8 n51 L45 n0 L4 n50 L8 n50 n50 n54 L15 n0 L8 n55" 'PLAY "MB L5 n0 L8 n55 n0 n50 n50 L5 n0 L8 n54 n54 L12 n0 L8 n55 L4 n0" 'PLAY "MB l8 n55 n0 n50 n50 L4 n0 L8 n54 n54 L13 n0 L6 n55 " DO DO a$ = INKEY$ IF a$ = null$ + CHR$(dn) OR a$ = null$ + CHR$(up) THEN EXIT DO IF a$ = CHR$(32) OR a$ = CHR$(13) THEN fl = 1 EXIT DO END IF LOOP IF z < 3 THEN IF a$ = null$ + CHR$(dn) THEN LINE (-65, -65)-(-55, -150), 0, BF st2 = st2 + 64 PUT (-st1, -st2), pntr% z = z + 2 END IF END IF IF z > 1 THEN IF a$ = null$ + CHR$(up) THEN LINE (-65, -65)-(-55, -150), 0, BF st2 = st2 - 64 PUT (-st1, -st2), pntr% z = z - 2 END IF END IF IF fl = 1 THEN EXIT DO LOOP IF z = 1 THEN CALL connect4 IF z = 3 THEN END SUB bwon CLS CIRCLE (0, 0), 72, 1 PAINT (0, 0), 1 CIRCLE (0, 0), 48, 9 PAINT (0, 0), 9 CIRCLE (0, -12), 30, 0, -3.14, -6.28, .7 PAINT (0, -13), 0 CIRCLE (-20, 20), 10, 15, , , .5 PAINT (-20, 20), 15 CIRCLE (-20, 20), 5, 0, , , 2 PAINT (-20, 20), 0 CIRCLE (20, 20), 10, 15, , , .5 PAINT (20, 20), 15 CIRCLE (20, 20), 5, 0, , , 2 PAINT (20, 20), 0 LINE (0, 15)-(-5, -5), 4 LINE -(5, -5), 4 LINE -(0, 15), 4 PAINT (0, 10), 4 LINE (72, 0)-(80, -30) LINE (-72, 0)-(-80, 50) CIRCLE (-80, 50), 10, 9 PAINT (-81, 50), 9 CIRCLE (80, -30), 10, 9 PAINT (81, -30), 9 LINE (-20, -72)-(-20, -100), 15 LINE (20, -72)-(20, -100), 15 LINE (-17, -100)-(-40, -110), 10, BF LINE (17, -100)-(40, -110), 10, BF LINE (-80, -110)-(80, -120), 2, BF COLOR 9 ln$ = "BLUE GUY WON" FOR cut = 1 TO 20 ln1$ = MID$(ln$, cut, 1) ln2$ = ln2$ + ln1$ NEXT cut ln3$ = " " ln3$ = " " + ln2$ + " " z = LEN(ln3$) nu = 80 LOCATE 25, 31 PRINT "PRESS ESC OR E TO END" LINE (-121, 79 + nu)-(104, 34 + nu), 14, B LINE (-120, 78 + nu)-(103, 35 + nu), 2, BF LINE (-110, 73 + nu)-(93, 40 + nu), 1, BF LINE (-100, 68 + nu)-(83, 45 + nu), 2, BF LINE (-100, 68 + nu)-(-85, 63 + nu), 0 LINE (83, 68 + nu)-(70, 63 + nu), 0 LINE (-100, 45 + nu)-(-85, 50 + nu), 0 LINE (83, 45 + nu)-(70, 50 + nu), 0 DO FOR co = 1 TO z FOR co& = 1 TO 3000 IF a$ = CHR$(27) OR a$ = "e" OR a$ = "E" THEN END NEXT co& sen$ = MID$(ln3$, co, 20) LOCATE 7, 30 PRINT sen$ IF a$ = CHR$(27) OR a$ = "e" OR a$ = "E" THEN END NEXT co a$ = INKEY$ LOOP END SUB SUB check FOR cox = 1 TO 7 co = 1 IF plc%(cox, co) = 0 THEN nd = 1 END IF NEXT cox IF nd = 0 THEN COLOR 7 LOCATE 2, 2 PRINT " TIE GAME " LINE (-315, 225)-(-190, 210), 1, B FOR x = -190 TO -315 STEP -1 FOR y = 225 TO 210 STEP -1 PSET (2.5 * x + 620, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620, 2.5 * y - 525 + 1), POINT(x, y) PSET (2.5 * x + 620 + 1, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620 + 1.5, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620, 2.5 * y - 525 + 1.5), POINT(x, y) NEXT y NEXT x LINE (-315, 225)-(-190, 210), 0, BF SLEEP 5 CALL tiegame END END IF chk1 = 0 chk2 = 0 chk3 = 0 chk4 = 0 chk5 = 0 chk6 = 0 chk7 = 0 chk8 = 0 chk9 = 0 chk10 = 0 chk11 = 0 chk12 = 0 chk13 = 0 chk14 = 0 chk15 = 0 chk16 = 0 chk17 = 0 chk18 = 0 chk19 = 0 chk20 = 0 chk21 = 0 chk22 = 0 chk23 = 0 chk24 = 0 chk25 = 0 chk26 = 0 chk27 = 0 chk28 = 0 FOR cox = 1 TO 7 chk1 = 0 chk2 = 0 FOR co = 1 TO 6 IF plc%(cox, co) = 1 THEN chk1 = chk1 + 1 IF chk1 = 4 THEN fl2 = 1 END IF ELSEIF plc%(cox, co) = 0 OR plc%(cox, co) = 2 THEN chk1 = 0 END IF IF plc%(cox, co) = 2 THEN chk2 = chk2 + 1 IF chk2 = 4 THEN fl2 = 2 END IF ELSEIF plc%(cox, co) = 0 OR plc%(cox, co) = 1 THEN chk2 = 0 END IF NEXT co NEXT cox FOR co = 1 TO 6 chk3 = 0 chk4 = 0 FOR cox = 1 TO 7 IF plc%(cox, co) = 1 THEN chk3 = chk3 + 1 IF chk3 = 4 THEN fl2 = 1 END IF ELSEIF plc%(cox, co) = 0 OR plc%(cox, co) = 2 THEN chk3 = 0 END IF IF plc%(cox, co) = 2 THEN chk4 = chk4 + 1 IF chk4 = 4 THEN fl2 = 2 END IF ELSEIF plc%(cox, co) = 0 OR plc%(cox, co) = 1 THEN chk4 = 0 END IF NEXT cox NEXT co FOR co = 1 TO 6 IF plc%(co, co) = 1 THEN chk5 = chk5 + 1 IF chk5 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co) = 0 OR plc%(co, co) = 2 THEN chk5 = 0 END IF NEXT co FOR co = 1 TO 6 IF plc%(co, co) = 2 THEN chk6 = chk6 + 1 IF chk6 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co) = 0 OR plc%(co, co) = 1 THEN chk6 = 0 END IF NEXT co FOR co = 2 TO 7 IF plc%(co, co - 1) = 1 THEN chk7 = chk7 + 1 IF chk7 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co - 1) = 0 OR plc%(co, co - 1) = 2 THEN chk7 = 0 END IF NEXT co FOR co = 2 TO 7 IF plc%(co, co - 1) = 2 THEN chk8 = chk8 + 1 IF chk8 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co - 1) = 0 OR plc%(co, co - 1) = 1 THEN chk8 = 0 END IF NEXT co FOR co = 3 TO 7 IF plc%(co, co - 2) = 1 THEN chk9 = chk9 + 1 IF chk9 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co - 2) = 0 OR plc%(co, co - 2) = 2 THEN chk9 = 0 END IF NEXT co FOR co = 3 TO 7 IF plc%(co, co - 2) = 2 THEN chk10 = chk10 + 1 IF chk10 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co - 2) = 0 OR plc%(co, co - 2) = 1 THEN chk10 = 0 END IF NEXT co FOR co = 4 TO 7 IF plc%(co, co - 3) = 1 THEN chk11 = chk11 + 1 IF chk11 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co - 3) = 0 OR plc%(co, co - 3) = 2 THEN chk11 = 0 END IF NEXT co FOR co = 4 TO 7 IF plc%(co, co - 3) = 2 THEN chk12 = chk12 + 1 IF chk12 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co - 3) = 0 OR plc%(co, co - 3) = 1 THEN chk12 = 0 END IF NEXT co FOR co = 1 TO 5 IF plc%(co, co + 1) = 1 THEN chk13 = chk13 + 1 IF chk13 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co + 1) = 0 OR plc%(co, co + 1) = 2 THEN chk13 = 0 END IF NEXT co FOR co = 1 TO 5 IF plc%(co, co + 1) = 2 THEN chk14 = chk14 + 1 IF chk14 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co + 1) = 0 OR plc%(co, co + 1) = 1 THEN chk14 = 0 END IF NEXT co FOR co = 1 TO 4 IF plc%(co, co + 2) = 1 THEN chk15 = chk15 + 1 IF chk15 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co + 2) = 0 OR plc%(co, co + 2) = 2 THEN chk15 = 0 END IF NEXT co FOR co = 1 TO 4 IF plc%(co, co + 2) = 2 THEN chk16 = chk16 + 1 IF chk16 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co + 2) = 0 OR plc%(co, co + 2) = 1 THEN chk16 = 0 END IF NEXT co stco = 6 FOR co = 4 TO 7 IF plc%(co, stco) = 1 THEN chk17 = chk17 + 1 IF chk17 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk17 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 4 TO 7 IF plc%(co, stco) = 2 THEN chk18 = chk18 + 1 IF chk18 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk18 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 3 TO 7 IF plc%(co, stco) = 1 THEN chk19 = chk19 + 1 IF chk19 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk19 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 3 TO 7 IF plc%(co, stco) = 2 THEN chk20 = chk20 + 1 IF chk20 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk20 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 2 TO 7 IF plc%(co, stco) = 1 THEN chk21 = chk21 + 1 IF chk21 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk21 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 2 TO 7 IF plc%(co, stco) = 2 THEN chk22 = chk22 + 1 IF chk22 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk22 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 1 TO 6 IF plc%(co, stco) = 1 THEN chk23 = chk23 + 1 IF chk23 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk23 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 1 TO 6 IF plc%(co, stco) = 2 THEN chk24 = chk24 + 1 IF chk24 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk24 = 0 END IF stco = stco - 1 NEXT co stco = 5 FOR co = 1 TO 5 IF plc%(co, stco) = 1 THEN chk25 = chk25 + 1 IF chk25 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk25 = 0 END IF stco = stco - 1 NEXT co stco = 5 FOR co = 1 TO 5 IF plc%(co, stco) = 2 THEN chk26 = chk26 + 1 IF chk26 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk26 = 0 END IF stco = stco - 1 NEXT co stco = 4 FOR co = 1 TO 4 IF plc%(co, stco) = 1 THEN chk27 = chk27 + 1 IF chk27 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk27 = 0 END IF stco = stco - 1 NEXT co stco = 4 FOR co = 1 TO 4 IF plc%(co, stco) = 2 THEN chk28 = chk28 + 1 IF chk28 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk28 = 0 END IF stco = stco - 1 NEXT co FOR cox = 1 TO 7 co = 1 IF plc%(cox, co) = 0 THEN nd = 1 END IF NEXT cox IF nd = 0 THEN PRINT "TIE GAME" CALL tiegame END END IF chk1 = 0 chk2 = 0 chk3 = 0 chk4 = 0 chk5 = 0 chk6 = 0 chk7 = 0 chk8 = 0 chk9 = 0 chk10 = 0 chk11 = 0 chk12 = 0 chk13 = 0 chk14 = 0 chk15 = 0 chk16 = 0 chk17 = 0 chk18 = 0 chk19 = 0 chk20 = 0 chk21 = 0 chk22 = 0 chk23 = 0 chk24 = 0 chk25 = 0 chk26 = 0 chk27 = 0 chk28 = 0 FOR cox = 1 TO 7 chk1 = 0 chk2 = 0 FOR co = 1 TO 6 IF plc%(cox, co) = 1 THEN chk1 = chk1 + 1 IF chk1 = 4 THEN fl2 = 1 END IF ELSEIF plc%(cox, co) = 0 OR plc%(cox, co) = 2 THEN chk1 = 0 END IF IF plc%(cox, co) = 2 THEN chk2 = chk2 + 1 IF chk2 = 4 THEN fl2 = 2 END IF ELSEIF plc%(cox, co) = 0 OR plc%(cox, co) = 1 THEN chk2 = 0 END IF NEXT co NEXT cox FOR co = 1 TO 6 chk3 = 0 chk4 = 0 FOR cox = 1 TO 7 IF plc%(cox, co) = 1 THEN chk3 = chk3 + 1 IF chk3 = 4 THEN fl2 = 1 END IF ELSEIF plc%(cox, co) = 0 OR plc%(cox, co) = 2 THEN chk3 = 0 END IF IF plc%(cox, co) = 2 THEN chk4 = chk4 + 1 IF chk4 = 4 THEN fl2 = 2 END IF ELSEIF plc%(cox, co) = 0 OR plc%(cox, co) = 1 THEN chk4 = 0 END IF NEXT cox NEXT co FOR co = 1 TO 6 IF plc%(co, co) = 1 THEN chk5 = chk5 + 1 IF chk5 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co) = 0 OR plc%(co, co) = 2 THEN chk5 = 0 END IF NEXT co FOR co = 1 TO 6 IF plc%(co, co) = 2 THEN chk6 = chk6 + 1 IF chk6 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co) = 0 OR plc%(co, co) = 1 THEN chk6 = 0 END IF NEXT co FOR co = 2 TO 7 IF plc%(co, co - 1) = 1 THEN chk7 = chk7 + 1 IF chk7 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co - 1) = 0 OR plc%(co, co - 1) = 2 THEN chk7 = 0 END IF NEXT co FOR co = 2 TO 7 IF plc%(co, co - 1) = 2 THEN chk8 = chk8 + 1 IF chk8 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co - 1) = 0 OR plc%(co, co - 1) = 1 THEN chk8 = 0 END IF NEXT co FOR co = 3 TO 7 IF plc%(co, co - 2) = 1 THEN chk9 = chk9 + 1 IF chk9 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co - 2) = 0 OR plc%(co, co - 2) = 2 THEN chk9 = 0 END IF NEXT co FOR co = 3 TO 7 IF plc%(co, co - 2) = 2 THEN chk10 = chk10 + 1 IF chk10 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co - 2) = 0 OR plc%(co, co - 2) = 1 THEN chk10 = 0 END IF NEXT co FOR co = 4 TO 7 IF plc%(co, co - 3) = 1 THEN chk11 = chk11 + 1 IF chk11 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co - 3) = 0 OR plc%(co, co - 3) = 2 THEN chk11 = 0 END IF NEXT co FOR co = 4 TO 7 IF plc%(co, co - 3) = 2 THEN chk12 = chk12 + 1 IF chk12 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co - 3) = 0 OR plc%(co, co - 3) = 1 THEN chk12 = 0 END IF NEXT co FOR co = 1 TO 5 IF plc%(co, co + 1) = 1 THEN chk13 = chk13 + 1 IF chk13 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co + 1) = 0 OR plc%(co, co + 1) = 2 THEN chk13 = 0 END IF NEXT co FOR co = 1 TO 5 IF plc%(co, co + 1) = 2 THEN chk14 = chk14 + 1 IF chk14 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co + 1) = 0 OR plc%(co, co + 1) = 1 THEN chk14 = 0 END IF NEXT co FOR co = 1 TO 4 IF plc%(co, co + 2) = 1 THEN chk15 = chk15 + 1 IF chk15 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, co + 2) = 0 OR plc%(co, co + 2) = 2 THEN chk15 = 0 END IF NEXT co FOR co = 1 TO 4 IF plc%(co, co + 2) = 2 THEN chk16 = chk16 + 1 IF chk16 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, co + 2) = 0 OR plc%(co, co + 2) = 1 THEN chk16 = 0 END IF NEXT co stco = 6 FOR co = 4 TO 7 IF plc%(co, stco) = 1 THEN chk17 = chk17 + 1 IF chk17 = 5 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk17 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 4 TO 7 IF plc%(co, stco) = 2 THEN chk18 = chk18 + 1 IF chk18 = 5 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk18 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 3 TO 7 IF plc%(co, stco) = 1 THEN chk19 = chk19 + 1 IF chk19 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk19 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 3 TO 7 IF plc%(co, stco) = 2 THEN chk20 = chk20 + 1 IF chk20 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk20 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 2 TO 7 IF plc%(co, stco) = 1 THEN chk21 = chk21 + 1 IF chk21 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk21 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 2 TO 7 IF plc%(co, stco) = 2 THEN chk22 = chk22 + 1 IF chk22 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk22 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 1 TO 6 IF plc%(co, stco) = 1 THEN chk23 = chk23 + 1 IF chk23 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk23 = 0 END IF stco = stco - 1 NEXT co stco = 6 FOR co = 1 TO 6 IF plc%(co, stco) = 2 THEN chk24 = chk24 + 1 IF chk24 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk24 = 0 END IF stco = stco - 1 NEXT co stco = 5 FOR co = 1 TO 5 IF plc%(co, stco) = 1 THEN chk25 = chk25 + 1 IF chk25 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk25 = 0 END IF stco = stco - 1 NEXT co stco = 5 FOR co = 1 TO 5 IF plc%(co, stco) = 2 THEN chk26 = chk26 + 1 IF chk26 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk26 = 0 END IF stco = stco - 1 NEXT co stco = 4 FOR co = 1 TO 4 IF plc%(co, stco) = 1 THEN chk27 = chk27 + 1 IF chk27 = 4 THEN fl2 = 1 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 2 THEN chk27 = 0 END IF stco = stco - 1 NEXT co stco = 4 FOR co = 1 TO 4 IF plc%(co, stco) = 2 THEN chk28 = chk28 + 1 IF chk28 = 4 THEN fl2 = 2 END IF ELSEIF plc%(co, stco) = 0 OR plc%(co, stco) = 1 THEN chk28 = 0 END IF stco = stco - 1 NEXT co IF fl2 = 1 THEN COLOR 7 LOCATE 2, 2 PRINT "BLUE PLAYER WON" LINE (-315, 225)-(-190, 210), 1, B FOR x = -190 TO -315 STEP -1 FOR y = 225 TO 210 STEP -1 PSET (2.5 * x + 620, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620, 2.5 * y - 525 + 1), POINT(x, y) PSET (2.5 * x + 620 + 1, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620 + 1.5, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620, 2.5 * y - 525 + 1.5), POINT(x, y) NEXT y NEXT x LINE (-315, 225)-(-190, 210), 0, BF SLEEP 5 CALL bwon ELSEIF fl2 = 2 THEN COLOR 7 LOCATE 2, 2 PRINT "RED PLAYER WON" LINE (-315, 225)-(-190, 210), 1, B FOR x = -190 TO -315 STEP -1 FOR y = 225 TO 210 STEP -1 PSET (2.5 * x + 620, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620, 2.5 * y - 525 + 1), POINT(x, y) PSET (2.5 * x + 620 + 1, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620 + 1.5, 2.5 * y - 525), POINT(x, y) PSET (2.5 * x + 620, 2.5 * y - 525 + 1.5), POINT(x, y) NEXT y NEXT x LINE (-315, 225)-(-190, 210), 0, BF SLEEP 5 CALL rwon END IF END SUB SUB connect4 CLS FOR co = 1 TO 30 PRINT NEXT co LINE (-200, 170)-(0, -170), 1, BF LINE (0, 170)-(200, -170), 3, BF LINE (-190, 160)-(190, -160), 14, BF inc = 40 inc2 = 55 sty = -170 stx = -220 FOR co = 1 TO 6 * 7 y = sty + inc x = stx + inc2 inc = inc + 50 IF co / 6 = INT(co / 6) THEN inc2 = inc2 + 55 inc = 40 END IF CIRCLE (x, y), 20, 0 PAINT (x, y), 0 NEXT co CALL game END SUB SUB game null$ = CHR$(0) LOCATE 27, 27 PRINT "Press space to drop piece" lt = 75 rt = 77 ply = 200 plx = -170 cox = 1 DO CIRCLE (plx, ply), 18, 1 PAINT (plx, ply), 1 CIRCLE (plx, ply), 12, 9 PAINT (plx, ply), 9 LINE (290, 40)-(210, -40), 6, BF CIRCLE (250, 0), 36, 2 PAINT (250, 0), 2 CIRCLE (250, 0), 24, 3 PAINT (250, 0), 3 LINE (-290, 40)-(-210, -40), 7, BF CIRCLE (-250, 0), 36, 1 PAINT (-250, 0), 1 CIRCLE (-250, 0), 24, 9 PAINT (-250, 0), 9 DO LOCATE 2, 20 a$ = INKEY$ IF a$ = null$ + CHR$(lt) THEN IF plx > -165 THEN CIRCLE (plx, ply), 18, 0 PAINT (plx, ply), 0 plx = plx - 55 cox = cox - 1 CIRCLE (plx, ply), 18, 1 PAINT (plx, ply), 1 CIRCLE (plx, ply), 12, 9 PAINT (plx, ply), 9 END IF ELSEIF a$ = null$ + CHR$(rt) THEN IF plx <= 155 THEN CIRCLE (plx, ply), 18, 0 PAINT (plx, ply), 0 plx = plx + 55 cox = cox + 1 CIRCLE (plx, ply), 18, 1 PAINT (plx, ply), 1 CIRCLE (plx, ply), 12, 9 PAINT (plx, ply), 9 END IF ELSEIF a$ = CHR$(32) THEN DO FOR co = 6 TO 1 STEP -1 IF plc%(cox, co) = 0 THEN EXIT FOR IF co = 1 THEN PLAY "MB L15 n1 L4 n1" fl = 1 END IF NEXT co IF fl = 0 THEN PLAY "MB L20 n20" plc%(cox, co) = 1 ind = 1 END IF fl = 0 CALL refresh EXIT DO LOCATE 1, 40 PRINT cox LOOP END IF LOOP UNTIL ind = 1 ind = 0 CIRCLE (plx, ply), 18, 0 PAINT (plx, ply), 0 CIRCLE (plx, ply), 12, 0 PAINT (plx, ply), 0 CIRCLE (plx, ply), 18, 2 PAINT (plx, ply), 2 CIRCLE (plx, ply), 12, 3 PAINT (plx, ply), 3 LINE (-290, 40)-(-210, -40), 6, BF CIRCLE (-250, 0), 36, 1 PAINT (-250, 0), 1 CIRCLE (-250, 0), 24, 9 PAINT (-250, 0), 9 LINE (290, 40)-(210, -40), 7, BF CIRCLE (250, 0), 36, 2 PAINT (250, 0), 2 CIRCLE (250, 0), 24, 3 PAINT (250, 0), 3 DO LOCATE 2, 20 a$ = INKEY$ IF a$ = null$ + CHR$(lt) THEN IF plx > -165 THEN CIRCLE (plx, ply), 18, 0 PAINT (plx, ply), 0 plx = plx - 55 cox = cox - 1 CIRCLE (plx, ply), 18, 2 PAINT (plx, ply), 2 CIRCLE (plx, ply), 12, 3 PAINT (plx, ply), 3 END IF ELSEIF a$ = null$ + CHR$(rt) THEN IF plx <= 155 THEN CIRCLE (plx, ply), 18, 0 PAINT (plx, ply), 0 plx = plx + 55 cox = cox + 1 CIRCLE (plx, ply), 18, 2 PAINT (plx, ply), 2 CIRCLE (plx, ply), 12, 3 PAINT (plx, ply), 3 END IF ELSEIF a$ = CHR$(32) THEN DO FOR co = 6 TO 1 STEP -1 IF plc%(cox, co) = 0 THEN EXIT FOR END IF IF co = 1 THEN PLAY "MB L15 n1 L4 n1" fl = 1 END IF NEXT co IF fl = 0 THEN PLAY "MB L20 n10" plc%(cox, co) = 2 ind = 1 END IF fl = 0 CALL refresh EXIT DO LOCATE 1, 40 PRINT cox LOOP END IF LOOP UNTIL ind = 1 ind = 0 LOOP END SUB SUB refresh FOR co = 1 TO 7 FOR co2 = 1 TO 6 IF plc%(co, co2) = 1 THEN CIRCLE (-220 + (co * 55), 170 - (co2 * 50)), 18, 1 PAINT (-220 + (co * 55), 170 - (co2 * 50)), 1 CIRCLE (-220 + (co * 55), 170 - (co2 * 50)), 12, 9 PAINT (-220 + (co * 55), 170 - (co2 * 50)), 9 ELSEIF plc%(co, co2) = 2 THEN CIRCLE (-220 + (co * 55), 170 - (co2 * 50)), 18, 2 PAINT (-220 + (co * 55), 170 - (co2 * 50)), 2 CIRCLE (-220 + (co * 55), 170 - (co2 * 50)), 12, 3 PAINT (-220 + (co * 55), 170 - (co2 * 50)), 3 END IF NEXT co2 NEXT co CALL check END SUB SUB rwon CLS CIRCLE (0, 0), 72, 2 PAINT (0, 0), 2 CIRCLE (0, 0), 48, 3 PAINT (0, 0), 3 CIRCLE (0, -12), 30, 0, -3.14, -6.28, .7 PAINT (0, -13), 0 CIRCLE (-20, 20), 10, 15, , , .5 PAINT (-20, 20), 15 CIRCLE (-20, 20), 5, 0, , , 2 PAINT (-20, 20), 0 CIRCLE (20, 20), 10, 15, , , .5 PAINT (20, 20), 15 CIRCLE (20, 20), 5, 0, , , 2 PAINT (20, 20), 0 LINE (0, 15)-(-5, -5), 4 LINE -(5, -5), 4 LINE -(0, 15), 4 PAINT (0, 10), 4 LINE (72, 0)-(80, -30) LINE (-72, 0)-(-80, 50) CIRCLE (-80, 50), 10, 3 PAINT (-81, 50), 3 CIRCLE (80, -30), 10, 3 PAINT (81, -30), 3 LINE (-20, -72)-(-20, -100), 15 LINE (20, -72)-(20, -100), 15 LINE (-17, -100)-(-40, -110), 10, BF LINE (17, -100)-(40, -110), 10, BF LINE (-80, -110)-(80, -120), 1, BF COLOR 2 ln$ = "RED GUY WON" FOR cut = 1 TO 20 ln1$ = MID$(ln$, cut, 1) ln2$ = ln2$ + ln1$ NEXT cut ln3$ = " " ln3$ = " " + ln2$ + " " z = LEN(ln3$) nu = 80 LOCATE 25, 31 PRINT "PRESS ESC OR E TO END" LINE (-121, 79 + nu)-(104, 34 + nu), 14, B LINE (-120, 78 + nu)-(103, 35 + nu), 2, BF LINE (-110, 73 + nu)-(93, 40 + nu), 1, BF LINE (-100, 68 + nu)-(83, 45 + nu), 2, BF LINE (-100, 68 + nu)-(-85, 63 + nu), 0 LINE (83, 68 + nu)-(70, 63 + nu), 0 LINE (-100, 45 + nu)-(-85, 50 + nu), 0 LINE (83, 45 + nu)-(70, 50 + nu), 0 COLOR 3 DO a$ = INKEY$ FOR co = 1 TO z FOR co& = 1 TO 3000 IF a$ = CHR$(27) OR a$ = "e" OR a$ = "E" THEN END NEXT co& sen$ = MID$(ln3$, co, 20) LOCATE 7, 30 PRINT sen$ NEXT co LOOP UNTIL a$ = CHR$(27) OR a$ = "e" OR a$ = "E" END SUB SUB tiegame CLS CIRCLE (-100, 5), 75, 1 PAINT (-100, 5), 1 CIRCLE (-100, 5), 50, 9 PAINT (-100, 5), 9 CIRCLE (-120, 20), 15, 15, , , .25 PAINT (-120, 20), 15 CIRCLE (-80, 20), 15, 15, , , .25 PAINT (-80, 20), 15 LINE (80, -65)-(85, -100), 2, BF LINE (-80, -65)-(-85, -100), 1, BF LINE (120, -65)-(125, -100), 2, BF LINE (-120, -65)-(-125, -100), 1, BF LINE (60, -100)-(85, -110), 10, BF LINE (-60, -100)-(-85, -110), 10, BF LINE (120, -100)-(145, -110), 10, BF LINE (-120, -100)-(-145, -110), 10, BF LINE (-120, -20)-(-80, -15), 0, BF CIRCLE (100, 5), 75, 2 PAINT (100, 5), 2 CIRCLE (100, 5), 50, 3 PAINT (100, 5), 3 LINE (120, -20)-(80, -15), 0, BF CIRCLE (120, 20), 15, 15, , , .25 PAINT (120, 20), 15 CIRCLE (80, 20), 15, 15, , , .25 PAINT (80, 20), 15 CIRCLE (80, 20), 5, 0 PAINT (80, 20), 0 CIRCLE (120, 20), 5, 0 PAINT (120, 20), 0 CIRCLE (-80, 20), 5, 0 PAINT (-80, 20), 0 CIRCLE (-120, 20), 5, 0 PAINT (-120, 20), 0 LINE (-125, 35)-(-110, 30), 0 LINE (125, 35)-(110, 30), 0 LINE (-75, 35)-(-90, 30), 0 LINE (75, 35)-(90, 30), 0 LINE (-175, 5)-(-190, -20) LINE (175, 5)-(190, -20) LINE (25, 5)-(10, -20) LINE (-25, 5)-(-10, -20) CIRCLE (-10, -20), 10, 1 PAINT (-10, -20), 1 CIRCLE (10, -20), 10, 2 PAINT (10, -20), 2 CIRCLE (-190, -20), 10, 1 PAINT (-190, -20), 1 CIRCLE (190, -20), 10, 2 PAINT (190, -20), 2 ln$ = "TIE GAME" FOR cut = 1 TO 20 ln1$ = MID$(ln$, cut, 1) ln2$ = ln2$ + ln1$ NEXT cut ln3$ = " " ln3$ = " " + ln2$ + " " z = LEN(ln3$) nu = 80 LOCATE 25, 31 PRINT "PRESS ESC OR E TO END" LINE (-121, 79 + nu)-(104, 34 + nu), 14, B LINE (-120, 78 + nu)-(103, 35 + nu), 2, BF LINE (-110, 73 + nu)-(93, 40 + nu), 1, BF LINE (-100, 68 + nu)-(83, 45 + nu), 2, BF LINE (-100, 68 + nu)-(-85, 63 + nu), 0 LINE (83, 68 + nu)-(70, 63 + nu), 0 LINE (-100, 45 + nu)-(-85, 50 + nu), 0 LINE (83, 45 + nu)-(70, 50 + nu), 0 DO a$ = INKEY$ FOR co = 1 TO z FOR co& = 1 TO 3000 IF a$ = CHR$(27) OR a$ = "e" OR a$ = "E" THEN END NEXT co& sen$ = MID$(ln3$, co, 20) LOCATE 7, 30 PRINT sen$ IF a$ = CHR$(27) OR a$ = "e" OR a$ = "E" THEN END NEXT co LOOP UNTIL a$ = CHR$(27) OR a$ = "e" OR a$ = "E" END SUB