2000 REM  ...... THIS IS FILE "HANG6.BAS"
2010
2020 !------------------------------------!
2030 !  IMPROVED HANGMAN GAME (05/27/81)  !
2040 !------------------------------------!
2050 ! COPYRIGHT JAN 1983, BOB FOWLER
2090
2400 REM ...... FILLERS & BUFFERS
2410   MAP1 W$     ,S,50
2420   MAP1 STAR$  ,S,50,"**********************************************"
2430   MAP1 HYPHEN$,S,50,"----------------------------------------------"
2440   MAP1 SP$    ,S,50,SPACE(50)
2450   MAP1 BS$    ,S,50
2460   BS$=""  :  FOR I=1 TO 50  :  BS$=BS$+CHR(8)  :  NEXT I
2490
2500 REM ...... DISPLAYS AND LISTS
2510   MAP1 ALPHABET$, S,26,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
2520   MAP1 WRONG$    ,S,26
2530   MAP1 FREQUENCY$,S,26,"ETAISONHRDLUCMFWYPGVBKJQXZ"
2540   MAP1 CHOSEN$   ,S,26
2550   MAP1 THEWORD$  ,S,50
2560   MAP1 DWORD$    ,S,50
2570   MAP1 SCORE(10) ,F,6
2580   MTEAMS=4
2590
2600 REM ...... MAPS FOR WORD STORAGE
2620   NFW=25
2630   MAP1 WDATA(25)
2640     MAP2 WREC  ,B,2
2650     MAP2 FWORD$,S,50
2660     MAP2 WRECO ,B,2
2670     MAP2 ORDER ,B,1
2680   MAP1 RAN'WORD$,S,16
2685   RECSIZ=16
2690
2800 REM ...... (RANDOM) WORD FILE PARAMETER RECORD MAPS
2820   MAP1 RECORD'ZERO
2830     MAP2 URECS,B,2
2840     MAP2 TBLOX,B,2
2850     MAP2 BPREC,B,2
2860     MAP2 INDEX,B,2
2890
2900 REM ...... INITIALIZE VARIABLES
2920   FOR I=1 TO TEAMS : SCORE(I)=0 : NEXT I
2940   GAME=0
2950   RANDOMIZE
2970
2980
2990
3000 REM ...... INTRODUCTIONS
3020   PRINT TAB(-1,0);
3030   PRINT "WELCOME TO HANGMAN --- VERSION 6"
3040   PRINT
3045 TEAMS:
3050   PRINT "PLEASE ENTER NUMBER OF PLAYERS : 1"; CHR(8);
3060   TEAMS=1
3070   INPUT "" TEAMS
3076   IF(TEAMS<1 OR TEAMS<>INT(TEAMS)) THEN ? "ERROR---BAD ENTRY" : GO TO TEAMS
3080   IF(TEAMS > MTEAMS) THEN ? "ERROR--- >"; MTEAMS; "TEAMS" : GO TO TEAMS
3090
3200 REM ...... LOOK UP "WORDS.DAT"
3220   LOOKUP "WORDS.DAT", THERE
3230   IF(THERE < 0) THEN GO TO RANDOM'FILE
3240   IF(THERE > 0) THEN GO TO SEQUENTIAL'FILE
3250   PRINT "ERROR---WORD FILE ('WORDS.DAT') NOT FOUND"
3260   GO TO END
3270
3280
3290
3500 RANDOM'FILE:
3520   OPEN #1, "WORDS.DAT", RANDOM, RECSIZ, RECNUM
3530   RECNUM=0
3540   READ #1, RECORD'ZERO
3550   CLOSE #1
3560   IF(BPREC <> RECSIZ) THEN ? "ERROR---BAD RECORD SIZE" : GO TO END
3570   NWORD=URECS-1
3575   IF(URECS=1) THEN ? "ERROR---WORD FILE EMPTY" : GO TO END
3580   NFW=1
3590
3600 RANDOM'PICK:
3620   OPEN #1, "WORDS.DAT", RANDOM, RECSIZ, RECNUM
3630   RECNUM=INT( RND(1)*(URECS-1.00001)+1 )
3640   READ #1, RAN'WORD$
3645   FWORD$(1)=RAN'WORD$
3650   CLOSE #1
3660   NW=0
3670   GO TO TITLE
3970
3980
3990
4000 SEQUENTIAL'FILE:
4050   NWORD=0
4060   OPEN #1, "WORDS.DAT", INPUT
4070   PRINT TAB(-1,7); "PLEASE WAIT WHILE I READ MY DICTIONARY ....    0";
4090
4100 WORD'SCAN:
4120   INPUT #1, W$
4130   IF(EOF(1)=1) THEN CLOSE #1 : GO TO SEQUENTIAL'PICK
4135   IF(NWORD/10=INT(NWORD/10)) THEN PRINT BS$[1,4]; NWORD USING "####";
4140   NWORD=NWORD+1
4150   GO TO WORD'SCAN
419