image of READY prompt

Wang2200.org

Listing of file='WORDO2 ' on disk='vmedia/more_games.wvd.zip'

# Sector 1491, program filename = 'WORDO2'
0010 REM WORDGAME TIMER IS SET FOR 2200VP (STMT 90 'A=A-.00125') ID=MA021029
0015 %            TIMER SETTING FOR 2200MVP IS 'A=A-.00250'
0020 %            TIMER SETTING FOR 2200T IS 'A=A-.02'
0030 COM A$(13)6,A(6,8),A0(5),B(8),Z0$16,Z2$64,Z8$64,Z9$64,R
0040 DIM N$(5)20,N$30,S(5),I(5),K$1,B$(1)2,D$(13)1,A$28,M$26,M1$26
0050 DIM W$11,W0(10),W$(8,10)11,W(8),M$(2)26
   : GOTO 780
0060 RETURN
   : %WORD ENTRY ROUTINE
0070 J=0
   : W$=" "
   : M$=A$
   : PRINT STR(Z0$,1,X3);"TYPE                    LETTERS AVAILABLE";HEX(0D0A)
     ;Z2$
0080 PRINT HEX(0D);W$;HEX(0D);STR(Z9$,44);STR(M$,1);HEX(0D);STR(Z9$,1,J+1);HEX
     (05)
0090 A=A-.00250
   : KEYIN K$,160,130
   : IF A<0 THEN 270
   : IF A>INT(A)THEN 90
   : PRINT HEX(060D);STR(Z9$,15);A;"  "
   : GOTO 80
0100 M1$=A$
   : M$,W$=" "
   : J2,J=0
   : PRINT Z2$
0110 IF M1$=" "THEN 80
   : I=2+2*INT(13*RND(1))
   : IF STR(M1$,I,1)=" "THEN 110
0120 J2=J2+2
   : STR(M$,J2,1)=STR(M1$,I)
   : STR(M1$,I,1)=" "
   : GOTO 110
0130 PRINT HEX(05)
   : IF K$=HEX(00)THEN 270
   : IF K$=HEX(0F)THEN 140
   : IF K$=HEX(04)THEN 100
   : IF K$=HEX(05)THEN 250
   : IF K$<>HEX(1F)THEN 90
   : A=A+60
   : GOTO 90
0140 PRINT HEX(01);STR(Z9$,1,50);"TIMEOUT";STR(Z0$,1,X3+1)
0150 KEYIN K$,160,130
   : GOTO 150
0160 PRINT HEX(06)
   : IF K$<"A"THEN 180
   : IF K$=HEX(E5)THEN 170
   : IF J>9THEN 90
   : INIT(K$)M1$
   : XOR (M1$,M$)
   : I=POS(M1$=00)
   : IF I=0THEN 90
   : J=J+1
   : STR(W$,J,1)=K$
   : W0(J)=I
   : STR(M$,I,1)=" "
   : PRINT K$;
   : GOTO 80
0170 IF J=0THEN 90
   : FOR I=1TO J
   : STR(M$,W0(I),1)=STR(W$,I)
   : NEXT I
   : W$=" "
   : PRINT STR(Z8$,1,J);STR(Z2$,1,J)
   : J=0
   : GOTO 80
0180 IF K$<>HEX(08)THEN 190
   : IF J=0THEN 90
   : STR(M$,W0(J),1)=STR(W$,J)
   : STR(W$,J)=" "
   : J=J-1
   : PRINT HEX(082008);
   : GOTO 80
0190 IF K$<>HEX(0D)THEN 90
   : IF J<3THEN 90
   : PRINT STR(Z0$,1,X4);Z2$;
0200 IF I(P1)=0OR J>3THEN 210
   : PRINT HEX(0D);"  YOU ARE VULNERABLE, AND NEED AT LEAST FOUR LETTER WORDS"
     ;HEX(0C)
   : GOTO 80
   : %TEST WORD FOR DUPLICATION
0210 MAT SEARCH W$(),=STR(W$,1,J+1)TO B$()STEP 11
   : IF B$(1)=HEX(0000)THEN 220
   : PRINT HEX(0D);" '";W$;"'  WAS ALREADY USED"
   : M$=A$
   : GOTO 70
0220 % TEST FOR PLURAL HERE
0230 J2=J-2
   : IF W(J2)=10THEN 240
   : W(J2)=W(J2)+1
   : W$(J2,W(J2))=W$
   : PRINT STR(Z0$,1,W(J2)+X8-6);STR(Z9$,1,B(J2));W$
   : GOTO 250
0240 MAT COPY W$()<J2*110-98,99>TO W$()<J2*110-109,99>
   : W$(J2,10)=W$
   : PRINT STR(Z0$,1,X8);
   : FOR I=6TO 10
   : PRINT STR(Z9$,1,B(J2));W$(J2,I)
   : PRINT
   : NEXT I
0250 IF W$=" " THEN 70
0260 FOR I=1TO LEN(W$)
   : STR(A$,2*I)=STR(W$,I,1)
   : NEXT I
   : FOR I=2TO 26STEP 2
   : STR(A$,2+LEN(A$),1)=STR(M$,I,1)
   : NEXT I
   : GOTO 70
0270 SELECT PRINT 005(64)
   : PRINT HEX(03);"VERIFICATION OF ";N$(P1);"'S WORDS:"
   : PRINT
   : PRINT "  AS THE CURSOR POINTS AT A WORD, TYPE EITHER 'Y' OR 'N'"
   : PRINT TAB(10);"TO ACCEPT OR REJECT IT."
0280 PRINT "  A REJECTED WORD WILL BE REPLACED, IF POSSIBLE,"
   : PRINT "     FROM THE EXTRA STORED WORDS OF THE SAME SIZE."
   : PRINT
   : PRINT "  IF ALL THE WORDS SHOWING ARE CORRECT, PRESS SF KEY '1"
0290 PRINT TAB(20);"(";A$;")"
0300 FOR I=1TO 8
   : FOR J=6TO W(I)
   : PRINT STR(Z0$,1,J+X8-6);STR(Z9$,1,B(I));W$(I,J)
   : NEXT J
   : NEXT I
   : I=0
   : J=6
   : SELECT PRINT 405(64)
   : GOTO 350
0310 PRINT STR(Z0$,1,J+X8-6);STR(Z9$,1,B(I));
0320 KEYIN K$,330,400
   : GOTO 320
0330 IF K$="N"THEN 360
   : IF K$="Y"THEN 340
   : IF K$<>HEX(0D)THEN 320
   : I=0
   : J=6
   : GOTO 350
0340 J=J+1
   : IF J<=W(I)THEN 310
   : J=6
0350 I=I+1
   : IF I>8THEN 410
   : IF W$(I,J)<>" "THEN 310
   : GOTO 350
0360 IF W$(I,5)<>" "THEN 370
   : W(I)= W(I)-1
   : MAT COPY W$()<110*I+11*J-109,11*(10-J)>TO W$()<110*I+11*J-120,11*(11-J)>
   : GOSUB 390
   : IF W$(I,J)<>" "THEN 310
   : GOTO 340
0370 W$(I,J)=W$(I,5)
   : PRINT W$(I,J)
   : MAT COPY -W$()<110*I-109,44>TO -W$()<110*I-109,55>
   : GOTO 310
   : %SCORE DISPLAY SUBROUTINE
0380 N$=" "
   : I=I+1
   : IF I>PTHEN 60
   : IF I=P1THEN 380
   : J=LEN(N$(I))
   : STR(N$,22-J)=N$(I)
   : STR(N$,24)="-"
   : CONVERT S(I)TO STR(N$,26),(####)
   : RETURN
   : %DISPLAY COLUMN OF WORDS
0390 FOR J1=6TO 10
   : PRINT STR(Z0$,1,J1+X8-6);STR(Z9$,1,B(I));STR(W$(I,J1),1,I+2)
   : NEXT J1
   : RETURN
   : %SCORE CALCULATION
0400 IF K$<>HEX(01)THEN 320
0410 S=0
   : FOR I=1TO 8
   : S=S+A(W(I)-4,I)
   : NEXT I
   : FOR I=1TO 5
   : IF W(I)+W(I+1)<20THEN 420
   : S=S+A0(I)
0420 NEXT I
0430 IF I(P1)=0THEN 440
   : IF S>499THEN 440
   : S=-500
0440 S(P1)=S(P1)+S
   : SELECT PRINT 005(64)
   : PRINT HEX(03);N$(P1);"  GETS ";S;
   : IF I(P1)>0OR S(P1)<2000THEN 450
   : I(P1)=2000
   : PRINT " POINTS, AND IS NOW VULNERABLE WITH A SCORE OF ";S(P1)
   : PRINT
   : PRINT
   : GOTO 460
0450 PRINT " POINTS, FOR A NET SCORE OF ";S(P1)
   : PRINT
   : PRINT
0460 FOR I=1TO P
   : PRINT N$(I);TAB(30);S(I)
   : NEXT I
   : PRINT
   : PRINT
   : %ROLL DICE FOR NEXT PLAYER
0470 SELECT PRINT 005(64)
   : P1=P1+1
   : IF P1<=PTHEN 480
   : IF S9>0THEN 730
   : P1=1
0480 INIT(20)W$(),D$(),A$
   : FOR I=1TO 8
   : W(I)=5
   : NEXT I
0490 PRINT "  PRESS EXECUTE TO ROLL DICE FOR ";N$(P1)
0500 KEYIN K$,510,500
   : I=RND(1)
   : GOTO 500
0510 IF K$<>HEX(0D)THEN 500
   : PRINT HEX(03);N$(P1);
   : IF I(P1)>0THEN 520
   : PRINT "'S TURN";
   : GOTO 530
0520 PRINT "'S VULNERABLE";
0530 PRINT "    WITH";S(P1);" POINTS."
   : I=0
0540 GOSUB 380
   : PRINT N$;TAB(32);
   : GOSUB 380
   : PRINT N$
   : GOSUB 380
   : PRINT N$;TAB(32);
   : GOSUB 380
   : PRINT N$
0550 FOR I=1TO 10
   : STR(A$,2*I,1),D$(I)=STR(A$(I),1+6*RND(1))
   : NEXT I
0560 SELECT PRINT 005(64)
   : PRINT STR(Z0$,1,X8-1);
   : PRINT    " 3    4    5      6      7        8        9          10"
   : IF X6=0THEN 580
   : PRINT " 60  120  200    300    500      750      1000       1500"
0570 FOR I=1TO 4
   : PRINT " 10   20   50    100    150      250       500       1500"
   : NEXT I
   : PRINT "   300  500   800   1200    1850";HEX(0C)
0580 IF I(P1)=0THEN 590
   : PRINT STR(Z0$,1,X8-1);
   : FOR I=1TO 6
   : PRINT "     "
   : NEXT I
   : PRINT "       ";
   : FOR I=11TO 13
   : STR(A$,2*I,1),D$(I)=STR(A$(I),1+6*RND(1))
   : NEXT I
0590 IF X9=0THEN 600
   : PRINT STR(Z0$,1,X9);
   : ON 1+6*RND(1)GOSUB 610,630,650,670,690,710
0600 SELECT PRINT 405(64)
   : A=180.02
   : GOTO 70
   : %DISPLAY DICE (PATTERN)
0610 PRINT TAB(11);D$(1);TAB(19);D$(2);TAB(31);D$(3);TAB(50);D$(4);TAB(60);D$(
     5)
   : PRINT TAB(3);D$(6);TAB(42);D$(7);TAB(58);D$(8)
   : PRINT TAB(25);D$(9);TAB(34);D$(10)
   : IF I(P1)<2E3THEN 60
0620 PRINT TAB(27);D$(11);TAB(32);D$(12);TAB(55);D$(13);
   : GOTO 60
0630 PRINT TAB(20);D$(1);TAB(28);D$(2);TAB(41);D$(3);TAB(61);D$(4)
   : PRINT TAB(12);D$(5);TAB(25);D$(6);TAB(34);D$(7);TAB(47);D$(8)
   : PRINT TAB(6);D$(9);TAB(27);D$(10)
   : IF I(P1)<2E3THEN 60
0640 PRINT TAB(37);D$(11);TAB(44);D$(12);TAB(57);D$(13);
   : GOTO 60
0650 PRINT TAB(14);D$(1);TAB(26);D$(2);TAB(41);D$(3)
   : PRINT TAB(9);D$(4);TAB(17);D$(5);TAB(29);D$(6);TAB(42);D$(7)
   : PRINT TAB(22);D$(8);TAB(45);D$(9);TAB(60);D$(10)
   : IF I(P1)<2E3THEN 60
0660 PRINT TAB(14);D$(11);TAB(24);D$(12);TAB(59);D$(13);
   : GOTO 60
0670 PRINT D$(1);TAB(11);D$(2);TAB(59);D$(3)
   : PRINT TAB(4);D$(4);TAB(18);D$(5);TAB(35);D$(6)
   : PRINT TAB(3);D$(7);TAB(39);D$(8);TAB(51);D$(9);TAB(61);D$(10)
   : IF I(P1)<2E3THEN 60
0680 PRINT TAB(17);D$(11);TAB(21);D$(12);TAB(55);D$(13);
   : GOTO 60
0690 PRINT TAB(27);D$(1);TAB(38);D$(2);TAB(50);D$(3);TAB(55);D$(4)
   : PRINT TAB(41);D$(5);TAB(56);D$(6)
   : PRINT TAB(35);D$(7);TAB(49);D$(8);TAB(54);D$(9);TAB(62);D$(10)
   : IF I(P1)<2E3THEN 60
0700 PRINT TAB(46);D$(11);TAB(53);D$(12);TAB(59);D$(13);
   : GOTO 60
0710 PRINT TAB(9);D$(1);TAB(18);D$(2);TAB(27);D$(3);TAB(36);D$(4)
   : PRINT TAB(12);D$(5);TAB(24);D$(6);TAB(36);D$(7);TAB(48);D$(8)
   : PRINT TAB(20);D$(9);TAB(40);D$(10)
   : IF I(P1)<2E3THEN 60
0720 PRINT TAB(21);D$(11);TAB(42);D$(12);TAB(62);D$(13);
   : GOTO 60
0730 STOP " COMPARE FINAL SCORES TO DETERMINE WINNER"
0740 REM % DIFFERENT SCREEN VERSIONS
0750 DEFFN'0
   : X0=1
   : X1=2
   : X3=4
   : X4=6
   : X6=0
   : X8=11
   : RETURN
0760 DEFFN'1
   : X0=1
   : X1=2
   : X3=4
   : X4=6
   : X6=1
   : X8=11
   : RETURN
0770 DEFFN'2
   : X0=1
   : X1=2
   : X3=4
   : X4=6
   : X6=1
   : X8=9
   : RETURN
0780 SELECT P,PRINT 005(64),LIST 005(64),CO 005(64),CI 001,INPUT 001
   : PRINT HEX(030A0A);" FOR INSTRUCTIONS, TYPE 'Y' INSTEAD OF # OF PLAYERS"
   : PRINT
   : IF A0(5)>0 THEN 850
   : %COMMON SETUP
0790 B(1)=1
   : FOR I=2 TO 8
   : B(I)=B(I-1)+I+2
   : NEXT I
0800 A$(1)="INPUTF"
   : A$(2)="EEEAAA"
   : A$(3)="BRITHK"
   : A$(4)="EZQXJV"
   : A$(5)="FUSHIR"
   : A$(6)="TORLND"
   : A$(7)="AAAEEE"
   : A$(8)="MOCOWP"
   : A$(9)="GRUSIM"
0810 A$(10)="LOWBOY"
   : A$(11)="JCDMGK"
   : A$(12)="WVSYSQ"
   : A$(13)="BPFNHL"
0820 INIT(0A)Z0$
   : INIT(20)Z2$
   : INIT(08)Z8$
   : INIT(09)Z9$
   : STR(Z9$,1,1)=HEX(00)
   : STR(Z0$,1,1)=HEX(01)
   : STR(Z2$,64)="\A0"
0830 FOR J=1TO 8
   : A(1,J)=0
   : READ A(2,J)
   : READ A(6,J)
   : FOR I=3TO 6
   : A(I,J)=A(I-1,J)+A(6,J)
   : NEXT I
   : NEXT J
0840 FOR I=1TO 5
   : READ A0(I)
   : NEXT I
   : %NON-COMMON SETUP
0850 X0=1
   : X1=2
   : X3=4
   : X4=6
   : X6=0
   : X8=11
0860 W$="2"
   : INPUT "NUMBER OF PLAYERS (1 TO 5)",W$
   : IF W$="Y"THEN 880
   : IF NUM(W$)<LEN(W$)THEN 860
   : CONVERT W$TO P
   : P=INT(P)
   : IF P>5THEN 860
   : IF P<1THEN 860
   : INIT(20)N$()
0870 FOR I=1TO P
   : S(I),I(I)=0
   : N$(I)="PLAYER"
   : CONVERT ITO STR(N$(I),8),(#)
   : PRINT "NAME OF PLAYER ";I;
   : INPUT N$(I)
   : NEXT I
   : P1=0
   : PRINT HEX(03)
   : GOTO 470
0880 R=R+1
   : IF R=1THEN 900
   : IF R>5THEN 890
   : PRINT HEX(03);"    BUT YOU ALREADY SAW THEM !!!!"
   : PRINT
   : PRINT "  HOWEVER, SINCE YOU INSIST, HERE THEY ARE AGAIN"
   : FOR I=1TO 300
   : NEXT I
   : GOTO 900
0890 PRINT HEX(03);"  ALRIGHT ALREADY,  YOU'VE ALREADY SEEN THE RULES";R;"TIME
     S."
   : PRINT "     ENOUGH IS ENOUGH,   GOODBYE"
0900 PRINT HEX(03);"RULES FOR PLAYING PERQUACKEY:";
0910 PRINT "UP TO FIVE MAY PLAY. EACH TRIES TO SCORE 5000 POINTS BY FORMING WO
     RDS OF THREE OR MORE LETTERS FROM THE SETS OF TEN LETTERS THE 2200 DISPLA
     YS.";
0920 PRINT "THE LETTERS ARE 'ROLLED' BY PRESSING 'EXECUTE'."
   : PRINT "TEN LETTERS WILL BE DISPLAYED NEAR THE TOP OF THE  SCREEN.";
0930 PRINT "YOU HAVE THREE MINUTES TO BUILD AS MANY WORDS AS YOU CAN.";
0940 PRINT "HOWEVER, YOU MAY USE EACH LETTER ONLY ONCE (IF A LETTER IS      DU
     PLICATED, YOU MAY USE IT AS MANY TIMES AS IT APPEARS).";
0950 PRINT "YOU NEED FIVE EACH OF THREE, FOUR, FIVE, ETC. LETTER WORDS      (Y
     OU  NEED NOT FINISH ONE GROUP TO WORK ON ANOTHER).";
0960 PRINT "IF YOU ENTER MORE THAN FIVE WORDS OF A SIZE, ONLY THE LAST FIVE WI
     LL BE SHOWN.  AT ANY TIME SF KEY '4 WILL SCRAMBLE THE LETTERS";
0970 PRINT "FOR YOU, AND PRESSING SF KEY '5 WILL REGROUP THOSE LETTERS BACK TO
      THE BEGINNING.  PRESS SF '0 WHEN YOU DESPAIR OF FINDING MORE WORDS.";
0980 PRINT " PRESS 'EXECUTE' FOR MORE RULES.";
0990 I=RND(1)
   : KEYIN K$,1000,990
   : GOTO 990
1000 PRINT HEX(03);"HOWEVER, THE EXTRA WORDS ARE SAVED IN CASE ANY OF THE LAST
      FIVE ARE NOT VALID. YOU CAN USE A WORD ONLY ONCE AND CANNOT ADD 'S'  AT
     THE END TO MAKE IT ANOTHER WORD.";
1010 PRINT "UNTIL YOU GET A SCORE OF 2000, ONLY TEN LETTERS ARE SHOWN AND   YO
     U CAN BUILD WORDS OF THREE OR MORE LETTERS.";
1020 PRINT "AFTER YOU SCORE 2000, 13 LETTERS ARE SHOWN EACH TIME AND YOU    MU
     ST BUILD WORDS OF 4 OR MORE LETTERS. YOU MUST SCORE AT LEAST  500 POINTS
     EACH TURN SINCE YOU ARE NOW VULNERABLE.";
1030 PRINT "ONCE VULNERABLE, IF YOU FAIL TO SCORE 500 POINTS ON A TURN, YOU LO
     SE 500 POINTS ON THAT TURN. YOU REMAIN VULNERABLE HOWEVER,    EVEN IF YOU
     R SCORE DROPS BELOW 2000.";
1040 PRINT "PRESS 'EXECUTE' FOR ADDITIONAL RULES"
1050 I=RND(1)
   : KEYIN K$,1060,1050
   : GOTO 1050
1060 PRINT HEX(03);"THERE ARE BONUSES FOR COMPLETING FIVE VALID WORDS IN ADJAC
     ENT   COLUMNS. FOR EXAMPLE: FINISHING 3 & 4 LETTER-WORDS IS WORTH A   BON
     US OF 300 POINTS OVER THE USUAL SCORE.";
1070 DIM C$(5)
   :  C$(1)="ONE"
   : C$(2)="TWO"
   : C$(3)="THREE"
   : C$(4)="FOUR"
   : C$(5)="FIVE"
1080 PRINT "THERE ARE LARGER BONUSES FOR COMPLETING ADJACENT COLUMNS OF     LO
     NGER WORDS.";
1090 PRINT "ONLY WORDS FOUND IN A STANDARD DICTIONARY MAY BE USED - PROPER  NA
     MES, FORIEGN WORDS, ABBREVIATIONS AND WORDS ALWAYS CAPITALIZEDARE NOT ALL
     OWED.";
1100 PRINT "ADDING AN 'S' TO A WORD TO FORM ITS PLURAL IS NOT ALLOWED. ENTERWO
     RDS BY TYPING THEM ON THE KEYBOARD, REVIEWING ON THE SCREEN   AND PRESSIN
     G 'EXECUTE'.";
1110 PRINT " PRESS 'EXECUTE' FOR SCORING VALUES."
1120 KEYIN K$,1130,1110
   : GOTO 1120
1130 PRINT HEX(03);"SCORING (ALL SCORING IS DONE BY THE 2200)"
1140 PRINT "WORDS    3    4    5    6    7    8    9   10"
1150 FOR X=2TO 6
   : PRINTUSING 1210,C$(X-1),A(X,1),A(X,2),A(X,3),A(X,4),A(X,5),A(X,6),A(X,7),
     A(X,8)
   : NEXT X
1160 PRINT " BONUS    300  500  800  1200 1850"
1170 PRINT
   : PRINT "BONUS SCORING :"
1180 PRINT "  IF YOU COMPLETE FIVE EACH IN TWO ADJACENT COLUMNS, YOU ARE    GI
     VEN THE BONUS SCORE AS LISTED BETWEEN THE COLUMNS."
1190 PRINT
   : PRINT
1200 GOTO 860
1210 %#####  #### #### #### #### #### #### #### ####
1220 DATA 60,10,120,20,200,50,300,100,500,150,750,250,1000,500,1500,1500,300,5
     00,800,1200,1850