Boggle

This file is part of Miscellaneous Programs . Download the collection to get this file.
Date: 198x
Type: Program
Platform(s): TS 2068
Tags: Game

Find word patterns in a 4×4 block.

Content

Related Products

Related Articles

Related Content

Image Gallery

Boggle

Source Code

    5 LET R=1: GO TO 800
   15 PRINT OVER O;AT 20,16-(4 AND L(R)=2)-(3 AND L(R)=3);INT (T/60)
   20 PRINT OVER 1-O;AT 1,0+(3 AND L(R)=1);K$: PRINT '''
   25 LET J=1
   27 IF L(R)=3 THEN GO TO 32
   30 PRINT OVER 1;"         ";: FOR I=J TO J+3: PRINT OVER 1-O;C$(I);"u" AND C$(I)="Q"; OVER 1;(" " AND C$(I)<>"Q"); OVER 1;" ";: NEXT I: PRINT '''
   31 GO TO 35
   32 PRINT OVER 1;"         ";: FOR I=J TO J+3: PRINT OVER 1-O;(C$(I) AND C$(I)<>"\h" AND C$(I)<>"\r" AND C$(I)<>"\l");"u" AND C$(I)="Q";"Ch" AND C$(I)="\h";"LL" AND C$(I)="\l";"rr" AND C$(I)="\r"; OVER 1;(" " AND C$(I)<>"Q" AND C$(I)<>"\h" AND C$(I)<>"\r" AND C$(I)<>"\l"); OVER 1;" ";: NEXT I: PRINT '''
   35 LET J=J+4: IF J=17 THEN RETURN 
   40 GO TO 27
   50 LET N=INT (RND*16)+1: LET A(16)=N
   55 LET B(N)=INT (RND*16)+1
   60 LET N=B(N): IF B(N)<>0 THEN GO TO 55
   65 LET A(C)=N: LET C=C+1: IF C=16 THEN GO TO 80
   70 GO TO 55
   80 FOR I=1 TO 16: LET D$(I)=A$(6*A(I)-5 TO 6*A(I))
   85 LET N=INT (RND*6)+1: LET C$(I)=D$(I,N): NEXT I
   90 PRINT OVER 1;AT 1,2+(2 AND L(R)=1);P$+I$(1)
   95 PRINT OVER 1;AT 20,3;W$: PRINT AT 20,16;T$
   96 GO SUB 20
  100 FOR T=9000 TO 0 STEP -1
  105 IF T=1800 THEN BEEP 1,-30
  110 IF INKEY$<>"" THEN GO TO 160
  115 NEXT T
  120 BEEP 2,0: IF SW=0 THEN GO TO 300
  125 GO TO 600
  150 LET O=1: GO SUB 550
  154 GO SUB 15
  155 GO TO 115
  160 LET O=0: GO SUB 15
  165 GO SUB 550
  200 IF L(R)=1 THEN INPUT "ENTER WORD  (""0"" TO SEE LETTERS)";X$
  201 IF L(R)=3 THEN INPUT "ENTER SU PALABRA, O ""0"" PARA VERLAS LETRAS  ";X$ 
  202 IF L(R)=2 THEN INPUT "ENTER WORT (""0""  UM DAS BRETT ZUSEHEN  ";X$
  204 IF X$="0" THEN GO TO 150
  205 IF LEN X$<4 OR LEN X$>10 THEN GO TO 200
  210 FOR I=1 TO LEN X$:
  211 IF X$(I)=" " THEN GO TO 200
  212 IF L(R)=3 AND X$(I)="W" THEN LET X$(I)="\n"
  213 NEXT I
  214 FOR I=1 TO (S AND S>B)+(B AND B>=S): IF X$=S$(I, TO LEN X$) AND S$(I,LEN X$+1)=" " THEN GO TO 200:
  215: IF X$=J$(I, TO LEN X$) AND J$(I,LEN X$+1)=" " THEN GO TO 200:
  216 NEXT I
  218 LET T(S)=LEN X$: PRINT AT 20,0;S: LET S$(S)=X$
  220 PRINT AT S-1-(20 AND S>20)-(20 AND S>40),0+(22 AND S>20)-(11 AND S>40);S$(S, TO T(S))
  222 LET S=S+1: IF SW=0 THEN GO TO 200
  224 FOR I=1 TO F: IF S$(S-1, TO 10)=F$(I) THEN GO TO 235
  225 NEXT I
  230 GO TO 200
  235 LET K(B)=LEN X$: LET J$(B)=X$: LET S$(S-1)="QKZ": LET F$(I)="QKZ": LET B=B+1
  240 GO TO 200
  250 FOR I=64 TO 176 STEP 24: PLOT I,143: DRAW 0,-96: NEXT I
  255 FOR I=47 TO 143 STEP 24: PLOT 64,I: DRAW 94,0: NEXT I
  260 RETURN 
  300 LET O=0: GO SUB 20
  305 FOR I=1 TO S-1: LET F$(I)=S$(I): LET S$(I)="QXZ": LET G(I)=T(I): NEXT I
  310 LET F=S-1: LET S=1: LET SW=1
  312 PRINT AT 20,0;"  "
  315 IF L(R)=1 THEN INPUT "PLAYER 2: ENTER INITIALS ";I$(2)
  316 IF L(R)=3 THEN INPUT "JUGADOR 2: ENTER INICIALES";I$(2)
  317 IF L(R)=2 THEN INPUT "SPIELER 2 ANFANGBUCHSTABEN";I$(2)
  319 IF R=1 THEN LET H$=I$(2)
  325 GO TO 96
  330 IF SW=1 THEN GO TO 345
  335 INPUT "REDUCE PLAYER"; BRIGHT 1;" 1 "; BRIGHT 0;"SCORE BY ?  (99 TO SEE BOARD AND/OR UNSCROLL ";A1
  340 IF A1=99 THEN GO TO 740
  345 LET SW=1: INPUT "REDUCE PLAYER"; BRIGHT 1;" 2 "; BRIGHT 0;"SCORE BY ?  (99 TO SEE BOARD AND/OR UNSCROLL ";A2
  350 IF A2=99 THEN GO TO 740
  355 RETURN 
  370 IF SW=1 THEN GO TO 385
  375 INPUT OVER 1;"ZIEHEN ? AUS SPIELER"; BRIGHT 1;" 1 "; BRIGHT 0;"AB (99   ZUM BRETT U/O ZURu";CHR$ 8;"\oCKROLLEN) ";A1
  380 IF A1=99 THEN GO TO 740
  385 LET SW=1: INPUT OVER 1;"ZIEHEN ? AUS SPIELER"; BRIGHT 1;" 2 "; BRIGHT 0;"AB (99   ZUM BRETT U/O ZURu";CHR$ 8;"\oCKROLLEN) ";A2
  390 IF A2=99 THEN GO TO 740
  395 RETURN 
  410 IF SW=1 THEN GO TO 425
  415 INPUT OVER 1;"QUITAR \c \a\l JUGADOR"; BRIGHT 1;" 1 "; BRIGHT 0;"? (99 PARAEL TABLERO Y/O ARROLLAR ATRA";CHR$ 8;"\u\s) " ;A1
  420 IF A1=99 THEN GO TO 740
  425 LET SW=1: INPUT OVER 1;"QUITAR \c \a\l JUGADOR"; BRIGHT 1;" 2 "; BRIGHT 0;"? (99 PARAEL TABLERO Y/O ARROLLAR ATRA";CHR$ 8;"\u\s) " ;A2
  430 IF A2=99 THEN GO TO 740
  435 RETURN 
  550 LET BB=1:: FOR I=1 TO S-1
  552 IF S$(I, TO 3)="QKZ" THEN LET S$(I)=J$(BB)
  557 PRINT OVER O;AT I-1-(20 AND I>20)-(20 AND I>40),0+(22 AND I>20)-(11 AND I>40);S$(I, TO T(I))
  558 IF S$(I, TO 10)=J$(BB) THEN LET S$(I)="QKZ"
  559 IF S$(I, TO 3)="QKZ" THEN LET BB=BB+1
  560 NEXT I
  562 GO SUB 250
  565 RETURN 
  600 LET SW=0
  601 CLS : LET J=1
  602 FOR I=J TO J+3: PRINT AT (J-1)/4,28+I-J;C$(I);: NEXT I: PRINT AT (J-1)/4,27;"▌": LET J=J+4: IF J=17 THEN GO TO 604
  603 GO TO 602
  604: PRINT OVER 1;AT 0,0;(B$+W$ AND L(R)<>3)+(W$+B$ AND L(R)=3)+": ";
  605 LET SCR1=0: FOR I=1 TO B-1: PRINT J$(I, TO K(I));" ";: IF PEEK 23688<K(I+1)+7 AND PEEK 23689>19 THEN PRINT 
  606 NEXT I
  607 PRINT : PRINT : PRINT TAB 12;I$(1): IF B<4 THEN PRINT 
  609 FOR I=1 TO F
  615 IF F$(I, TO 3)="QKZ" THEN GO TO 632
  618 LET X=1+(1 AND G(I)=5)+(2 AND G(I)=6)+(4 AND G(I)=7)+(10 AND G(I)=8)+(19 AND G(I)=9)+(39 AND G(I)=10)        
  628 LET SCR1=SCR1+X
  630 PRINT F$(I);X,
  632 NEXT I
  636 PRINT TAB 26;"\j": PRINT TAB 26;SCR1
  637 PRINT : PRINT : PRINT TAB 12;I$(2): IF B<4 THEN PRINT 
  638 LET SCR2=0
  639 FOR I=1 TO S-1
  640 IF S$(I, TO 3)="QKZ" THEN GO TO 665
  654 LET Y=1+(1 AND T(I)=5)+(2 AND T(I)=6)+(4 AND T(I)=7)+(10 AND T(I)=8)+(19 AND T(I)=9)+(39 AND T(I)=10)          
  657 LET SCR2=SCR2+Y
  660 PRINT S$(I, TO 10);Y,
  665 NEXT I
  670 PRINT TAB 26;"\j": PRINT TAB 26;SCR2
  672 IF PEEK 23689<4 THEN PRINT '
  675 GO SUB 290+40*L(R)
  720 LET SCR1=SCR1-A1: LET SCR2=SCR2-A2
  725 CLS : PRINT TAB 13;G$;TAB 23;H$
  726 IF I$(1)=G$ THEN GO TO 729
  727 LET Z=SCR1: LET SCR1=SCR2: LET SCR2=Z
  729 LET X(R)=SCR1: LET Y(R)=SCR2: LET Z$="EGSEDSIAE"
  730 FOR I=1 TO R: PRINT AT I+1,0;R$(LEN R$-5 TO LEN R$-1);" ";I;"(";Z$(3*L(R)+L(I)-3);")    ";X(I);: PRINT AT I+1,23;Y(I): NEXT I
  735 PRINT OVER 1;AT 21,0;R$: INPUT RR
  736 PRINT OVER 1;AT 21,0;R$
  737 LET R=R+1: IF RR=R THEN GO TO 1100
  739 PRINT "END OF MATCH": GO TO 3000
  740 CLS : PRINT '''': GO SUB 25
  745 IF INKEY$<>"" THEN GO TO 601
  746 GO TO 745
  810 FOR I=1 TO 8: READ V$: FOR J=0 TO 7: READ Y: POKE USR V$+J,Y: NEXT J: NEXT I
  815 DATA "N",60,66,98,82,74,70,66,0
  820 DATA "C",16,0,16,48,64,68,68,56
  825 DATA "O",36,36,0,0,0,0,0,0
  830 DATA "U",2,4,8,0,0,0,0,0
  835 DATA "J",0,255,0,0,0,0,0,0
  840 DATA "H",4,20,100,134,133,69,53,0
  842 DATA "R",0,119,204,136,136,136,136,0
  845 DATA "L",0,132,132,132,132,132,231,0
  850 DATA 16,-1,0,15,1,1,12,-1,1,7,1,1,4,0,-1,8,-1,1,3,-1,-1
  855 DATA 6,0,1,2,-1,0,1,0,-1,5,0,-1,9,1,-1,14,-1,0,13,0,0
  920 DIM R(20): DIM L(20): DIM X(20): DIM Y(20)
  925 DIM I$(2,3)
 1000 LET O=0: LET C$="NURLDOGEOGOGENOB": GO SUB 250
 1005 PRINT ''''': GO SUB 25
 1010 PAUSE 120: LET A=148: LET B=60: PRINT BRIGHT 1;AT 14,18;"B": FOR I=1 TO 14: READ X: READ Y: READ Z
 1015 REM  NEXT I: GO TO 1050 
 1020 FOR J=1 TO 24: LET A=A+Y: LET B=B+Z: PLOT A,B: NEXT J: PLOT BRIGHT 1;A,B: PLOT PAPER 0;148,60
 1025 FOR J=0 TO 4: PLOT 140-16*J,39-8*J: DRAW 10,0: NEXT J
 1030 FOR J=0 TO 5: PRINT AT 16+J,18-2*J;C$(X)
 1035 PAUSE 10: PRINT OVER 1;AT 16+J,18-2*J;C$(X): NEXT J
 1040 PRINT AT 21,I+1+(8 AND I>6)+(1 AND I>11);C$(X)
 1045 PLOT PAPER 0;A,B: NEXT I
 1100 PAUSE 120: CLS : PRINT ''': PRINT TAB 10;"1  ENGLISH"''TAB 10;"2  DEUTSCH"''TAB 10;"3  ESPA\nOL"
 1110 INPUT L(R): IF L(R)<>1 AND L(R)<>2 AND L(R)<>3 THEN GO TO 1110
 1150 DIM A(16): DIM B(16): DIM F(60): DIM G(60): DIM S(60): DIM T(60): DIM J(50): DIM K(50)
 1160 DIM S$(60,11): DIM F$(60,10): DIM J$(50,10): DIM D$(16,6): DIM C$(16,1)
 1940 IF L(R)=1 THEN LET A$="BTLAYISHrOmACASLErCDPAmEvGTINEGUYKELOQABmJTLSEPUGLrUwIEHYEFIUTODKNOrIXFBDANvEZACIATOINEHPSNwDOSE"
 1945 IF L(R)=2 THEN LET A$="BTLANIEHrOMACASLErCOPAmEvGTINEGUrKELOQABmJTLSEPUGLrUwIEHYEFIUTODKNOrIXFBDANVEZACIATOINEHPSNwDOSE"
 1950 IF L(R)=3 THEN LET A$="BTLAYISHrOmACASLOrCDPAmOvGTINEGUA\hELOQABmJTLSEPUGLrU\nIEH\rEFIUTOD\hNOrIXFBDANvEZACIATOINEHPSN\lDOSE"
 1960 LET W$=("WORDS" AND L(R)=1)+("PALABRAS" AND L(R)=3)+("Wo"+CHR$ 8+"\oRTER" AND L(R)=2)
 1965 LET T$=("    SECONDS LEFT" AND L(R)=1)+(" SEGUNDOS QUEDAN" AND L(R)=3)+("SEKUNDEN BLEIBEN" AND L(R)=2)
 1970 LET K$=(" TOUCH ANY KEY TO WRITE" AND L(R)=1)+(" CUALQUIER TECLA PARA ESCRIBIR" AND L(R)=3)+("IRGENDEINE TASTE UM ZU SCHREIBEN" AND L(R)=2)
 1975 LET P$=("ONE MOMENT PLEASE, " AND L(R)=1)+("EIN AUGENBLICK BITTE, " AND L(R)=2)+("UN MOMENTO POR FAVOR, " AND L(R)=3)
 1980 LET B$=("JOINT " AND L(R)=1)+("GEMEINSAME " AND L(R)=2)+(" EN COMu"+CHR$ 8+"\uN" AND L(R)=3)
 1990 LET R$=("NUMBER OF NEXT ROUND?" AND L(R)=1)+("NUMMER DER NA"+CHR$ 8+"\oCHSTE RUNDE?" AND L(R)=2)+("\cNu"+CHR$ 8+"\uMERO DE LA PRo"+CHR$ 8+"\uXIMA TANDA?" AND L(R)=3)
 2400 LET F=1: LET S=1: LET B=1: LET SW=0: LET C=1: LET O=0:
 2425 IF L(R)=1 THEN INPUT "PLAYER 1: ENTER INITIALS ";I$(1)
 2430 IF L(R)=3 THEN INPUT "JUGADOR 1 ENTER INICIALES ";I$(1)
 2435 IF L(R)=2 THEN INPUT "SPIELER 1 ANFANGBUCHSTABEN";I$(1)
 2450 CLS : GO SUB 250
 2455 IF R=1 THEN LET G$=I$(1)
 2460 PRINT AT 1,2+(2 AND L(R)=1);P$;I$(1)
 2475 GO TO 50
 2500 REM "BOGGLE 3"

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top