10 REM ************** 20 REM 4 In A Row 30 REM By Tim Surtell 40 REM ************** 50 REM NC100 Version 3 : 1/94 60 REM Downloaded from Tim's NC Users' Site 70 REM http://www.ncus.org.uk 80 DIMN$(2),S(5,5) 90 INPLAY=RND(2):C=0 100 CLS 110 FORX=15 TO 65 STEP 10:MOVEX,8:DRAWX,58:NEXT 120 FORY=8 TO 58 STEP 10:MOVE15,Y:DRAW65,Y:NEXT 130 MOVE140,5:DRAW140,57:DRAW350,57:DRAW350,5:DRAW140,5 140 MOVE375,5:DRAW375,57:DRAW466,57:DRAW466,5:DRAW375,5 150 PRINTTAB(67,1)CHR$19"Players"CHR$20 160 PRINTTAB(63,3)"Player 1 :"TAB(63,4)"Black"TAB(63,5)"Player 2 :"TAB(63,6)"White"; 170 VDU28,25,6,57,1 180 CLS 190 PRINTTAB(10)CHR$19"4 In A Row"CHR$20 200 INPUT''"Type in your name, player 1 "N$(1) 210 CLS 220 PRINTTAB(10)CHR$19"4 In A Row"CHR$20 230 INPUT''"Type in your name, player 2 "N$(2) 240 CLS 250 PRINTTAB(10)CHR$19"4 In A Row"CHR$20 260 PRINTN$(INPLAY);"'s turn." 270 PRINT"Use the cursor keys to select"'"position. Press ENTER to select." 280 X=19:Y=13:REFX=1:REFY=1 290 PRINTTAB(0,4)"Co-ordinates : ";REFX;",";REFY 300 MOVEX,2:DRAWX,6:DRAWX-2,4:MOVEX,6:DRAWX+2,4:MOVEX+1,2:DRAWX+1,6:DRAWX-1,4:MOVEX+1,6:DRAWX+3,4 310 MOVE6,Y:DRAW10,Y:DRAW8,Y-2:MOVE10,Y:DRAW8,Y+2:MOVE6,Y+1:DRAW10,Y+1:DRAW8,Y-1:MOVE10,Y+1:DRAW8,Y+3 320 G=GET 330 MOVEX-2,2:PLOT103,X+3,6 340 MOVE6,Y-2:PLOT103,10,Y+3 350 IF G=240 AND REFY<5 REFY=REFY+1:Y=Y+10 360 IF G=241 AND REFY>1 REFY=REFY-1:Y=Y-10 370 IF G=242 AND REFX>1 REFX=REFX-1:X=X-10 380 IF G=243 AND REFX<5 REFX=REFX+1:X=X+10 390 PRINTTAB(0,4)"Co-ordinates : ";REFX;",";REFY 400 IF G=13 GOTO420 410 GOTO300 420 IF S(REFX,REFY)<>0 VDU7:GOTO240 430 MOVEREFX*10+7,REFY*10:PLOT101,REFX*10+13,REFY*10+6 440 IF INPLAY=2 MOVEREFX*10+8,REFY*10+1:PLOT103,REFX*10+12,REFY*10+5:S(REFX,REFY)=2 ELSE S(REFX,REFY)=1 450 PROCCHECK 460 IF INPLAY=1 INPLAY=2 ELSE INPLAY=1 470 C=C+1 480 IF C=25 PROCWIN(99) 490 GOTO240 500 DEF PROCCHECK 510 FORX=1 TO 5 520 IF S(X,1)=1 AND S(X,2)=1 AND S(X,3)=1 AND S(X,4)=1 PROCWIN(1) 530 IF S(X,1)=2 AND S(X,2)=2 AND S(X,3)=2 AND S(X,4)=2 PROCWIN(2) 540 IF S(X,2)=1 AND S(X,3)=1 AND S(X,4)=1 AND S(X,5)=1 PROCWIN(1) 550 IF S(X,2)=2 AND S(X,3)=2 AND S(X,4)=2 AND S(X,5)=2 PROCWIN(2) 560 NEXT 570 FORY=1 TO 5 580 IF S(1,Y)=1 AND S(2,Y)=1 AND S(3,Y)=1 AND S(4,Y)=1 PROCWIN(1) 590 IF S(1,Y)=2 AND S(2,Y)=2 AND S(3,Y)=2 AND S(4,Y)=2 PROCWIN(2) 600 IF S(2,Y)=1 AND S(3,Y)=1 AND S(4,Y)=1 AND S(5,Y)=1 PROCWIN(1) 610 IF S(2,Y)=2 AND S(3,Y)=2 AND S(4,Y)=2 AND S(5,Y)=2 PROCWIN(2) 620 NEXT 630 IF S(1,1)=1 AND S(2,2)=1 AND S(3,3)=1 AND S(4,4)=1 PROCWIN(1) 640 IF S(1,1)=2 AND S(2,2)=2 AND S(3,3)=2 AND S(4,4)=2 PROCWIN(2) 650 IF S(2,2)=1 AND S(3,3)=1 AND S(4,4)=1 AND S(5,5)=1 PROCWIN(1) 660 IF S(2,2)=2 AND S(3,3)=2 AND S(4,4)=2 AND S(5,5)=2 PROCWIN(2) 670 IF S(1,5)=1 AND S(2,4)=1 AND S(3,3)=1 AND S(4,2)=1 PROCWIN(1) 680 IF S(1,5)=2 AND S(2,4)=2 AND S(3,3)=2 AND S(4,2)=2 PROCWIN(2) 690 IF S(2,4)=1 AND S(3,3)=1 AND S(4,2)=1 AND S(5,1)=1 PROCWIN(1) 700 IF S(2,4)=2 AND S(3,3)=2 AND S(4,2)=2 AND S(5,1)=2 PROCWIN(2) 710 IF S(1,2)=1 AND S(2,3)=1 AND S(3,4)=1 AND S(4,5)=1 PROCWIN(1) 720 IF S(1,2)=2 AND S(2,3)=2 AND S(3,4)=2 AND S(4,5)=2 PROCWIN(2) 730 IF S(2,1)=1 AND S(3,2)=1 AND S(4,3)=1 AND S(5,4)=1 PROCWIN(1) 740 IF S(2,1)=2 AND S(3,2)=2 AND S(4,3)=2 AND S(5,4)=2 PROCWIN(2) 750 IF S(1,4)=1 AND S(2,3)=1 AND S(3,2)=1 AND S(4,1)=1 PROCWIN(1) 760 IF S(1,4)=2 AND S(2,3)=2 AND S(3,2)=2 AND S(4,1)=2 PROCWIN(2) 770 IF S(2,3)=1 AND S(3,4)=1 AND S(4,3)=1 AND S(5,2)=1 PROCWIN(1) 780 IF S(2,3)=2 AND S(3,4)=2 AND S(4,3)=2 AND S(5,2)=2 PROCWIN(2) 790 IF C=25 PROCWIN(99) 800 ENDPROC 810 DEF PROCWIN(W) 820 CLS 830 PRINTTAB(10)CHR$19"4 In A Row"CHR$20 840 IF W<>99 PRINT'N$(W);" wins! Well Done!!!" 850 IF W=99 PRINT'"Nobody won the game!" 860 PRINT'"Do you want another game ? (Y/N)" 870 G$=GET$ 880 IF G$="Y" VDU26:RUN 890 IF G$="N" VDU26:CLS:END 900 GOTO870