'===========================================================================
' Subject: THE LAST WORD                      Date: Year of 1993 (00:00:00)
'  Author: The ABC Programmer                 Code: QB, QBasic             
'  Origin: LAST,WORD,VGA                    Packet: GAMES.ABC
'===========================================================================
'=====================================================================
'  THE LAST WORD Programmed by William Yu (1993)
'  Like the TV Game show (if you have seen it)
'  Undocumented.  Requires VGA to play.  Can be converted.
'
'  This is a TWO part snippet.  One is the actual game (LASTWORD.BAS)
'                               The other is the data  (LASTWORD.DAT)
'=====================================================================

'------------8<----[ Begin LASTWORD.DAT ]---->8------------
62
PATIENT
SURGERY
BLOOD
RHYME
CHILDREN
BOOKS
HARDWARE
COMPUTER
SOFTWARE
SCOTTIES
TISSUE
KLEENEX
BASEBALL
TENNIS
SOCCER
POPSICLE
SUMMER
FREEZIES
HELLO
BONJOUR
ALLO
LASTWORD
PUZZLE
SOLVE
APPLE
MACINTOSH
ATARI
SUNNY
BRIGHT
LIGHT
FLAME
BURN
CANDLE
TROMBONE
TRUMPHET
TUBA
SERENE
PEACEFUL
NATURE
SUPERMAN
SPIDERMAN
BATMAN
MODEM
ALCOHOL
DRUGS
SUBJECT
PROFESSOR
UNIVERSITY
GAMES
GRAPHICS
SOUND
JELLY
BAKED
GROUND
AFRICA
EUROPE
ASIA
TELEVISION
MOTION
FILM
DISABLED
WHEELCHAIR
CRUTCHES
LASER
COMPACT
ROUND
HARD
HOLLOW
BARK
FOREST
JUNGLE
DESERT
HAPPY
ANGRY
DEPRESSED
CARTOON
COMIC
ACTION
HAVOC
DEVASTATION
RUIN
HYDROGEN
OXYGEN
CLEAR
GREEN
WHITE
YELLOW
DARK
MOON
SLEEP
STOP
SLOW
GO
HARD
FLOPPY
FORMAT
MANITOBA
ONTARIO
QUEBEC
POPULATION
METROPOLIS
BUILDINGS
EARTHQUAKE
DISNEYLAND
POPULAR
HURRICANE
BEACH
SOUTHERN
CHEVROLET
PLYMOUTH
CHRYSLER
CARROT
CELERY
BROCCOLI
BANANA
LEMON
PINEAPPLE
SHRIMP
FISH
LOBSTER
HAMBURGER
FRIES
MCDONALDS
COKE
PEPSI
CRUSH
AMAZON
NILE
MISSISSIPPI
PLATYPUS
DUCK
OSTRICH
REGISTERS
TRADEMARK
COPYRIGHT
PEPPERS
GARLIC
ONIONS
BLACKJACK
POKER
BRIDGE
SATURN
JUPITER
PLUTO
EDMONTON
VANCOUVER
REGINA
FICTION
FANTASY
PHONEY
NORTH
SOUTH
WEST
CHRISTMAS
EASTER
HALLOWEEN
SHARP
BLUNT
STEEL
EXECUTIVE
PARLIAMENT
CABINET
MATHEMATICS
ENGLISH
SCIENCE
SQUARE
TETRAGON
RECTANGLE
ELEPHANT
ZEBRA
GIRAFFE
FRIDAY
SATURDAY
SUNDAY
PYRAMIDS
SPHINX
EGYPTIAN
HAWAII
JAMAICA
TAHITI
PICTIONARY
MONOPOLY
SCRABBLE
ALLIGATOR
TURTLE
SNAKE
'------------8<----[ End LASTWORD.DAT ]---->8------------



'------------8<----[ Begin LASTWORD.BAS ]---->8------------

DECLARE SUB ARCADE ()
CALL ARCADE

SUB ARCADE
DIM GIRL(1800), GUY(1800)
DIM CAT1$(100), CAT2$(100), CAT3$(100)
CLS
SCREEN 13
U = 12
LINE (50, 10)-(200, 60), 78, B
LINE (100, 10)-(100, 60), 78
LINE (150, 10)-(150, 60), 78
LINE (110, 15)-(110, 55), U
LINE (140, 15)-(140, 55), U
LINE (140, 35)-(110, 35), U
LINE (50, 70)-(250, 120), 78, B
LINE (100, 70)-(100, 120), 78
LINE (150, 70)-(150, 120), 78
LINE (200, 70)-(200, 120), 78
CIRCLE (175, 85), 20, U, , , 11 / 24
LINE (195, 75)-(189, 95), 0, BF
LINE (195, 82)-(183, 95), 0, BF
CIRCLE (175, 103), 20, U, , , 11 / 24
LINE (151, 95)-(165, 110), 0, BF
PSET (166, 95), 0: PSET (167, 95), 0
LINE (50, 130)-(250, 180), 78, B
LINE (100, 130)-(100, 180), 78
LINE (150, 130)-(150, 180), 78
LINE (200, 130)-(200, 180), 78
LINE (55, 135)-(65, 175), 12
LINE (95, 135)-(85, 175), 12
LINE (85, 175)-(75, 160), 12
LINE (65, 175)-(75, 160), 12
GOSUB ST
Q = 12
LINE (60, 15)-(90, 15), Q
LINE (75, 15)-(75, 55), Q
GOSUB ST
LINE (160, 15)-(160, 55), Q
LINE (160, 15)-(190, 15), Q
LINE (160, 55)-(190, 55), Q
LINE (160, 35)-(175, 35), Q
GOSUB ST
LINE (60, 75)-(60, 115), Q
LINE (60, 115)-(90, 115), Q
GOSUB ST
LINE (125, 75)-(110, 115), Q
LINE (125, 75)-(140, 115), Q
LINE (118, 95)-(132, 95), Q
GOSUB ST
LINE (210, 75)-(240, 75), Q
LINE (225, 75)-(225, 115), Q
GOSUB ST
CIRCLE (125, 155), 19, Q, , , 1
GOSUB ST
CIRCLE (172, 145), 21, Q, , , 11 / 22
LINE (151, 135)-(160, 167), 0, BF
LINE (160, 135)-(160, 175), Q
LINE (174, 157)-(192, 175), Q
GOSUB ST
CIRCLE (222, 155), 20, Q, , , 1
LINE (201, 135)-(212, 175), 0, BF
LINE (212, 173)-(212, 138), Q
GOSUB ST
WHILE INKEY$ = "": WEND
GOTO LWS

ST:
Seconds! = .08
Time = TIMER
XDELAY = Time + Seconds!
WHILE NOT (TIMER > XDELAY)
WEND
RETURN

LWS:
CLS
LOCATE 2, 3: COLOR 12: PRINT "T H E"
LOCATE 4, 3: PRINT "L A S T"
LOCATE 6, 3: PRINT "W O R D"
LINE (11, 4)-(60, 51), 78, B
LINE (11, 18)-(75, 51), 78, B
LINE (11, 35)-(75, 35), 78
LINE (27, 4)-(27, 51), 78
LINE (43, 4)-(43, 51), 78
CIRCLE (40, 80), 16, 14: PAINT (40, 80), 14
CIRCLE (40, 80), 10, 66, , , 1: PAINT (40, 80), 66
PSET (35, 77), 0: PSET (45, 77), 0
PSET (40, 81), 0
CIRCLE (40, 110), 20, 12, , , 1: PAINT (40, 110), 12
LINE (10, 105)-(70, 160), 78, BF
CIRCLE (45, 104), 5, 0, , 11 / 10
CIRCLE (40, 85), 4, 0, 3.1
LINE (33, 100)-(30, 104), 0
LINE (25, 123)-(55, 138), 15, B
PAINT (40, 127), 0, 15
CIRCLE (280, 80), 13, 66: PAINT (280, 80), 66
CIRCLE (275, 77), 4, 0: PAINT (275, 77), 15, 0
CIRCLE (285, 77), 4, 0: PAINT (285, 77), 15, 0
PSET (275, 77), 0: PSET (285, 77), 0
PSET (280, 77), 0
LINE (270, 77)-(264, 73), 0: LINE (290, 76)-(296, 74), 0
PSET (280, 82), 0: CIRCLE (280, 85), 4, 0, 3.1
CIRCLE (280, 112), 20, 7, , , 1: PAINT (280, 112), 7
LINE (310, 105)-(250, 160), 78, BF
CIRCLE (263, 102), 6, 66, , , 11 / 30: PAINT (263, 102), 66
CIRCLE (297, 102), 6, 66, , , 11 / 30: PAINT (297, 102), 66
LINE (295, 123)-(265, 138), 15, B
PAINT (280, 125), 0, 15
GET (7, 65)-(74, 165), GIRL
GET (313, 67)-(246, 165), GUY
LOCATE 3, 15: COLOR 15: PRINT "A  T.V.  GAME  SHOW"
LOCATE 5, 13: PRINT "PROGRAMMED BY WILLIAM YU"
LOCATE 11, 16: COLOR 12: PRINT "START GAME"
LOCATE 13, 16: COLOR 14: PRINT "INSTRUCTIONS"
LOCATE 15, 16: PRINT "QUIT GAME"
LINE (114, 77)-(223, 89), 10, B
M = 1
LWSEL:
V$ = INKEY$
  IF V$ = CHR$(0) + "P" THEN M = M + 1: GOSUB LWMDOWN
  IF V$ = CHR$(0) + "H" THEN M = M - 1: GOSUB LWMDOWN
  IF V$ = CHR$(13) THEN GOTO LWMSEL
  IF V$ = CHR$(27) THEN GOTO LWEND
GOTO LWSEL

LWMDOWN:
LINE (114, 77)-(223, 89), 0, B: LOCATE 11, 16: COLOR 14: PRINT "START GAME"
LINE (114, 93)-(223, 105), 0, B: LOCATE 13, 16: PRINT "INSTRUCTIONS"
LINE (114, 109)-(223, 121), 0, B: LOCATE 15, 16: PRINT "QUIT GAME"
COLOR 12
IF M = 0 THEN M = 3
IF M = 4 THEN M = 1
IF M = 1 THEN LINE (114, 77)-(223, 89), 10, B: LOCATE 11, 16: PRINT "START GAME"
IF M = 2 THEN LINE (114, 93)-(223, 105), 10, B: LOCATE 13, 16: PRINT "INSTRUCTIONS"
IF M = 3 THEN LINE (114, 109)-(223, 121), 10, B: LOCATE 15, 16: PRINT "QUIT GAME"
RETURN

LWMSEL:
IF M = 1 THEN GOTO LWSTART
IF M = 2 THEN GOTO INSTRUC
IF M = 3 THEN GOTO LWEND

INSTRUC:
CLS
LOCATE 2, 3: COLOR 12: PRINT "T H E"
LOCATE 4, 3: PRINT "L A S T"
LOCATE 6, 3: PRINT "W O R D"
LINE (11, 4)-(60, 51), 78, B
LINE (11, 18)-(75, 51), 78, B
LINE (11, 35)-(75, 35), 78
LINE (27, 4)-(27, 51), 78
LINE (43, 4)-(43, 51), 78
LINE (317, 5)-(90, 160), 10, B
LINE (312, 10)-(95, 155), 10, B
PAINT (315, 7), 12, 10
LINE (150, 25)-(250, 25), 12
LOCATE 3, 20: COLOR 11: PRINT "INSTRUCTIONS"

LOCATE 6, 14: COLOR 15: PRINT "THIS GAME IS NO FUN IF"
LOCATE 8, 14: PRINT "ONE PLAYER IS PLAYING"
LOCATE 10, 14: PRINT "BY HIM/HERSELF."
LOCATE 12, 14: PRINT "THIS GAME IS MEANT TO"
LOCATE 14, 14: PRINT "BE PLAYED BY TWO OR"
LOCATE 16, 14: PRINT "MORE PLAYER'S."
LOCATE 19, 14: COLOR 78: PRINT "PRESS ANY KEY TO CONTINUE"
WHILE INKEY$ = "": WEND
LINE (100, 35)-(300, 130), 0, BF
LOCATE 6, 14: COLOR 15: PRINT "THIS GAME IS VERY EASY"
LOCATE 8, 14: PRINT "TO PLAY. THERE WILL BE"
LOCATE 10, 14: PRINT "THREE WORDS THAT YOU"
LOCATE 12, 14: PRINT "HAVE TO GUESS."
LOCATE 14, 14: PRINT "THE GAME STARTS OFF"
LOCATE 16, 14: PRINT "BY GIVING YOU A LETTER"
WHILE INKEY$ = "": WEND
LINE (100, 35)-(300, 130), 0, BF
LOCATE 6, 14: PRINT "IN EACH WORD."
LOCATE 8, 14: PRINT "YOU CAN CHOOSE TO TAKE"
LOCATE 10, 14: PRINT "ANOTHER LETTER, OR TRY"
LOCATE 12, 14: PRINT "YOUR LUCK AT GUESSING"
LOCATE 14, 14: PRINT "THE WORD."
LOCATE 16, 14: PRINT "THE ONE WHO GUESSES"
WHILE INKEY$ = "": WEND
LINE (100, 35)-(300, 130), 0, BF
LOCATE 6, 14: PRINT "THE LAST WORD WINS !"
LOCATE 8, 14: PRINT "REMEMBER THAT THE WORDS"
LOCATE 10, 14: PRINT "ARE BASED ON A PARTICULAR"
LOCATE 12, 14: PRINT "THEME OR SUBJECT."
WHILE INKEY$ = "": WEND
LOCATE 19, 14: COLOR 78: PRINT "                         "
LINE (100, 35)-(305, 130), 0, BF
LOCATE 10, 16: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " START GAME"
LOCATE 12, 18: COLOR 15: PRINT "QUIT GAME"
H = 1
INSEL:
V$ = INKEY$
  IF V$ = CHR$(0) + "P" THEN H = H + 1: GOSUB INSELDOWN
  IF V$ = CHR$(0) + "H" THEN H = H - 1: GOSUB INSELDOWN
  IF V$ = CHR$(13) THEN GOTO INSELENTER
GOTO INSEL

INSELDOWN:
COLOR 15
LOCATE 10, 16: PRINT "  START GAME"
LOCATE 12, 16: PRINT "  QUIT GAME"
IF H = 0 THEN H = 2
IF H = 3 THEN H = 1
IF H = 1 THEN LOCATE 10, 16: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " START GAME"
IF H = 2 THEN LOCATE 12, 16: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " QUIT GAME"
RETURN

INSELENTER:
IF H = 1 THEN GOTO LWSTART
IF H = 2 THEN GOTO LWEND

LWSTART:
CLS
PUT (250, 3), GIRL, PSET
PUT (250, 100), GUY, PSET
LOCATE 2, 3: COLOR 12: PRINT "T H E"
LOCATE 4, 3: PRINT "L A S T"
LOCATE 6, 3: PRINT "W O R D"
LINE (11, 4)-(60, 51), 78, B
LINE (11, 18)-(75, 51), 78, B
LINE (11, 35)-(75, 35), 78
LINE (27, 4)-(27, 51), 78
LINE (43, 4)-(43, 51), 78
LOCATE 7, 27: PRINT "NAME:"
LINE (260, 141)-(307, 153), 0, BF
LINE (260, 141)-(307, 153), 15, B
LINE (260, 45)-(306, 57), 0, BF
LINE (260, 45)-(306, 57), 15, B
LOCATE 10, 2: COLOR 14: PRINT "PLAYER ONE: -----"
LOCATE 10, 14: COLOR 10: LINE INPUT ""; P1NAME$
IF P1NAME$ = "" THEN P1NAME$ = "JANET"
LOCATE 7, 34: COLOR 15: PRINT LEFT$(P1NAME$, 5)
LOCATE 7, 27: PRINT "     "
LOCATE 19, 27: COLOR 12: PRINT "NAME:"
LOCATE 12, 2: COLOR 14: PRINT "PLAYER TWO: -----"
LOCATE 12, 14: COLOR 10: LINE INPUT ""; P2NAME$
IF P2NAME$ = "" THEN P2NAME$ = "SHANE"
LOCATE 19, 34: COLOR 15: PRINT LEFT$(P2NAME$, 5)
LOCATE 19, 27: PRINT "     "
GET (252, 3)-(314, 99), GIRL
GET (253, 101)-(314, 194), GUY

OPEN "LASTWORD.DAT" FOR INPUT AS #1
INPUT #1, NUM
X = 0: I = 1
DO
  LINE INPUT #1, CAT1$(I)
  LINE INPUT #1, CAT2$(I)
  LINE INPUT #1, CAT3$(I)
  X = X + 1: I = I + 1
LOOP UNTIL X = NUM
CLOSE #1
Seconds = .5
GOSUB ST

PLAYLW:
CLS
RANDOMIZE TIMER
I = INT(RND * NUM) + 1
LOCATE 2, 3: COLOR 12: PRINT "T H E"
LOCATE 4, 3: PRINT "L A S T"
LOCATE 6, 3: PRINT "W O R D"
LINE (11, 4)-(60, 51), 78, B
LINE (11, 18)-(75, 51), 78, B
LINE (11, 35)-(75, 35), 78
LINE (27, 4)-(27, 51), 78
LINE (43, 4)-(43, 51), 78
PUT (252, 98), GIRL, PSET
SQ1 = 0
SQ2 = 0
SQ3 = 0

A = LEN(CAT1$(I))
X = 0
Y = 19: Z = 82
DO
LINE (Y, Z)-(Y + 15, Z + 17), 78, B
Y = Y + 16
X = X + 1
SQ1 = SQ1 + 1
LOOP UNTIL X = A

A = LEN(CAT2$(I))
X = 0
Y = 19: Z = 106
DO
LINE (Y, Z)-(Y + 15, Z + 17), 78, B
Y = Y + 16
X = X + 1
SQ2 = SQ2 + 1
LOOP UNTIL X = A

A = LEN(CAT3$(I))
X = 0
Y = 19: Z = 130
DO
LINE (Y, Z)-(Y + 15, Z + 17), 78, B
Y = Y + 16
X = X + 1
SQ3 = SQ3 + 1
LOOP UNTIL X = A

CIRCLE (10, 77), 7, 7, 1.3, 3
CIRCLE (11, 77), 3, 7, 1.3, 3
CIRCLE (10, 157), 7, 7, 3, 5
CIRCLE (11, 157), 3, 7, 3, 5
CIRCLE (207, 77), 7, 7, .1, 1.9
CIRCLE (206, 77), 3, 7, .1, 2.5
CIRCLE (207, 157), 7, 7, 4.4, .1
CIRCLE (206, 157), 3, 7, 4.3, .1
LINE (3, 76)-(3, 156), 7
LINE (8, 76)-(8, 156), 7
LINE (12, 75)-(207, 75), 7
LINE (12, 71)-(207, 71), 7
LINE (12, 159)-(205, 159), 7
LINE (12, 163)-(205, 163), 7
LINE (209, 157)-(209, 76), 7
LINE (214, 157)-(214, 76), 7
PAINT (12, 72), 29, 7
CIRCLE (11, 77), 3, 78, 1.3, 3
CIRCLE (11, 157), 3, 78, 3, 5
CIRCLE (206, 77), 3, 78, .1, 2.5
CIRCLE (206, 157), 3, 78, 4.3, .1
LINE (12, 159)-(205, 159), 78
LINE (8, 76)-(8, 156), 78
LINE (209, 157)-(209, 76), 78
LINE (12, 75)-(207, 75), 78
PAINT (80, 80), 8, 78
CIRCLE (11, 77), 3, 7, 1.3, 3
CIRCLE (11, 157), 3, 7, 3, 5
CIRCLE (206, 77), 3, 7, .1, 2.5
CIRCLE (206, 157), 3, 7, 4.3, .1
LINE (12, 159)-(205, 159), 7
LINE (8, 76)-(8, 156), 7
LINE (209, 157)-(209, 76), 7
LINE (12, 75)-(207, 75), 7
LINE (8, 71)-(35, 65), 7
LINE (210, 71)-(228, 65), 7
LINE (215, 76)-(234, 69), 7
LINE (228, 65)-(35, 65), 7
CIRCLE (230, 69), 4, 7, .1, 1.9
LINE (213, 161)-(230, 152), 29
LINE (215, 159)-(234, 150), 7
LINE (210, 163)-(233, 151), 7
LINE (234, 150)-(234, 69), 7
PAINT (210, 66), 30, 7
PAINT (225, 67), 29, 7
PAINT (230, 140), 25, 7
COLOR 15
Y = 19: Z = 82
RANDOMIZE TIMER
S1 = INT(RND * SQ1) + 1
S2 = INT(RND * SQ2) + 1
S3 = INT(RND * SQ3) + 1
FOR S = 1 TO SQ1
  IF S1 = S THEN X = S * 16
NEXT S
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
LOCATE 12, S1 + S1 + 2: PRINT MID$(CAT1$(I), S1, 1)

Seconds = .1
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B

Y = 19: Z = 106
FOR S = 1 TO SQ2
  IF S2 = S THEN X = S * 16
NEXT S
LOCATE 15, S2 + S2 + 2: PRINT MID$(CAT2$(I), S2, 1)
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B

Y = 19: Z = 130
FOR S = 1 TO SQ3
  IF S3 = S THEN X = S * 16
NEXT S
LOCATE 18, S3 + S3 + 2: PRINT MID$(CAT3$(I), S3, 1)
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B


P = 1: PP1 = 0: PP2 = 0: TW = 0: MW = 0: BW = 0

STARTGAME:
LOCATE 2, 13: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " TAKE A LETTER"
LOCATE 4, 15: COLOR 15: PRINT "GUESS WORD"
IF P = 1 THEN LOCATE 6, 15: PRINT "PASS TO "; LEFT$(P2NAME$, 5)
IF P = 2 THEN LOCATE 6, 15: PRINT "PASS TO "; LEFT$(P1NAME$, 5)
H = 1
PLAYERSEL:
V$ = INKEY$
  IF V$ = CHR$(0) + "P" THEN H = H + 1: GOSUB GDOWN
  IF V$ = CHR$(0) + "H" THEN H = H - 1: GOSUB GDOWN
  IF V$ = CHR$(13) THEN GOTO PLAYSEL
  IF V$ = CHR$(27) THEN GOTO LWEND
GOTO PLAYERSEL

GDOWN:
LOCATE 2, 13: COLOR 15: PRINT "  TAKE A LETTER"
LOCATE 4, 13: PRINT "  GUESS WORD"
IF P = 1 THEN LOCATE 6, 13: PRINT "  PASS TO "; LEFT$(P2NAME$, 5)
IF P = 2 THEN LOCATE 6, 13: PRINT "  PASS TO "; LEFT$(P1NAME$, 5)
IF H = 0 THEN H = 3
IF H = 4 THEN H = 1
IF H = 1 THEN LOCATE 2, 13: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " TAKE A LETTER"
IF H = 2 THEN LOCATE 4, 13: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " GUESS WORD"
IF H = 3 AND P = 1 THEN LOCATE 6, 13: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " PASS TO "; LEFT$(P2NAME$, 5)
IF H = 3 AND P = 2 THEN LOCATE 6, 13: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " PASS TO "; LEFT$(P1NAME$, 5)
RETURN

PLAYSEL:
IF H = 1 THEN GOSUB PICKWORD
IF H = 2 THEN GOTO GUESSWORD
IF H = 3 AND P = 1 THEN GOTO PLAYER2
IF H = 3 AND P = 2 THEN GOTO PLAYER1

END

PICKWORD:
LOCATE 23, 4: COLOR 10: PRINT "PRESS ANY KEY TO STOP"
DO
Y = 19: Z = 82
RANDOMIZE TIMER
S1 = INT(RND * SQ1) + 1
S2 = INT(RND * SQ2) + 1
S3 = INT(RND * SQ3) + 1
FOR S = 1 TO SQ1
  IF S1 = S THEN X = S * 16
NEXT S
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
V$ = INKEY$
IF V$ <> "" THEN GOTO LETTER
Seconds = .1
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B

Y = 19: Z = 106
FOR S = 1 TO SQ2
  IF S2 = S THEN X = S * 16
NEXT S

LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
V$ = INKEY$
IF V$ <> "" THEN GOTO LETTER
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B

Y = 19: Z = 130
FOR S = 1 TO SQ3
  IF S3 = S THEN X = S * 16
NEXT S

LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
V$ = INKEY$
IF V$ <> "" THEN GOTO LETTER
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B

LOOP
RETURN

LETTER:
COLOR 15
IF Z = 82 THEN LOCATE 12, S1 + S1 + 2: PRINT MID$(CAT1$(I), S1, 1)
IF Z = 106 THEN LOCATE 15, S2 + S2 + 2: PRINT MID$(CAT2$(I), S2, 1)
IF Z = 130 THEN LOCATE 18, S3 + S3 + 2: PRINT MID$(CAT3$(I), S3, 1)
LOCATE 23, 4: PRINT SPACE$(24)

GUESSORPASS:
LOCATE 2, 13: PRINT "               "
LOCATE 4, 13: PRINT "              "
LOCATE 6, 13: PRINT "                "
LOCATE 3, 13: COLOR 10: PRINT CHR$(16); " "; : COLOR 12: PRINT "GUESS WORD"
IF P = 1 THEN LOCATE 5, 15: COLOR 15: PRINT "PASS TO "; LEFT$(P2NAME$, 5)
IF P = 2 THEN LOCATE 5, 15: COLOR 15: PRINT "PASS TO "; LEFT$(P1NAME$, 5)
H = 1
GOP:
V$ = INKEY$
  IF V$ = CHR$(0) + "P" THEN H = H + 1: GOSUB GOPDOWN
  IF V$ = CHR$(0) + "H" THEN H = H - 1: GOSUB GOPDOWN
  IF V$ = CHR$(13) THEN GOTO GOPENTER
  IF V$ = CHR$(27) THEN GOTO LWEND
GOTO GOP

GOPDOWN:
COLOR 15
LOCATE 3, 13: PRINT "  GUESS WORD"
IF P = 1 THEN LOCATE 5, 13: PRINT "  PASS TO "; LEFT$(P2NAME$, 5)
IF P = 2 THEN LOCATE 5, 13: PRINT "  PASS TO "; LEFT$(P1NAME$, 5)
IF H = 3 THEN H = 1
IF H = 0 THEN H = 2
IF H = 1 THEN LOCATE 3, 13: COLOR 10: PRINT CHR$(16); " "; : COLOR 12: PRINT "GUESS WORD"
IF H = 2 AND P = 1 THEN LOCATE 5, 13: COLOR 10: PRINT CHR$(16); " "; : COLOR 12: PRINT "PASS TO "; LEFT$(P2NAME$, 5)
IF H = 2 AND P = 2 THEN LOCATE 5, 13: COLOR 10: PRINT CHR$(16); " "; : COLOR 12: PRINT "PASS TO "; LEFT$(P1NAME$, 5)
RETURN

GOPENTER:
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B
IF H = 1 THEN GOTO GUESSWORD
IF H = 2 AND P = 1 THEN GOTO PLAYER2
IF H = 2 AND P = 2 THEN GOTO PLAYER1

GUESSWORD:
FOR X = 2 TO 6
  LOCATE X, 13: PRINT SPACE$(25)
NEXT X
LOCATE 2, 13: COLOR 10: PRINT CHR$(16); " "; : COLOR 12: PRINT "TOP WORD"
LOCATE 4, 15: COLOR 15: PRINT "MIDDLE WORD"
LOCATE 6, 15: PRINT "BOTTOM WORD"
H = 1
GW:
V$ = INKEY$
  IF V$ = CHR$(0) + "P" THEN H = H + 1: GOSUB GWDOWN
  IF V$ = CHR$(0) + "H" THEN H = H - 1: GOSUB GWDOWN
  IF V$ = CHR$(27) AND P = 1 THEN GOTO PLAYER2
  IF V$ = CHR$(27) AND P = 2 THEN GOTO PLAYER1
  IF V$ = CHR$(13) THEN GOTO THEWORD
GOTO GW

GWDOWN:
COLOR 15
LOCATE 2, 13: PRINT "  TOP WORD"
LOCATE 4, 13: PRINT "  MIDDLE WORD"
LOCATE 6, 13: PRINT "  BOTTOM WORD"
IF H = 4 THEN H = 1
IF H = 0 THEN H = 3
IF H = 1 THEN LOCATE 2, 13: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " TOP WORD"
IF H = 2 THEN LOCATE 4, 13: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " MIDDLE WORD"
IF H = 3 THEN LOCATE 6, 13: COLOR 10: PRINT CHR$(16); : COLOR 12: PRINT " BOTTOM WORD"
RETURN

THEWORD:
FOR X = 2 TO 6
  LOCATE X, 13: PRINT SPACE$(25)
NEXT X
IF H = 1 AND TW = 1 THEN GOTO GUESSWORD
IF H = 2 AND MW = 1 THEN GOTO GUESSWORD
IF H = 3 AND BW = 1 THEN GOTO GUESSWORD

IF H = 1 THEN A = LEN(CAT1$(I)): LOCATE 3, 13: COLOR 11: PRINT "TOP WORD: "; : COLOR 14: PRINT STRING$(A, "-"): LOCATE 3, 23: COLOR 10: LINE INPUT ""; TW$
IF H = 2 THEN A = LEN(CAT2$(I)): LOCATE 3, 13: COLOR 11: PRINT "MIDDLE WORD: "; : COLOR 14: PRINT STRING$(A, "-"): LOCATE 3, 26: COLOR 10: LINE INPUT ""; MW$
IF H = 3 THEN A = LEN(CAT3$(I)): LOCATE 3, 13: COLOR 11: PRINT "BOTTOM WORD: "; : COLOR 14: PRINT STRING$(A, "-"): LOCATE 3, 26: COLOR 10: LINE INPUT ""; BW$
COLOR 15
IF UCASE$(TW$) = UCASE$(CAT1$(I)) AND P = 1 THEN PP1 = PP1 + 1: LOCATE 21, 35: PRINT PP1: TW = 1: GOTO REVEAL
IF UCASE$(MW$) = UCASE$(CAT2$(I)) AND P = 1 THEN LOCATE 21, 35: PP1 = PP1 + 1: PRINT PP1: MW = 1: GOTO REVEAL
IF UCASE$(BW$) = UCASE$(CAT3$(I)) AND P = 1 THEN LOCATE 21, 35: PP1 = PP1 + 1: PRINT PP1: BW = 1: GOTO REVEAL
IF UCASE$(TW$) = UCASE$(CAT1$(I)) AND P = 2 THEN LOCATE 21, 35: PP2 = PP2 + 1: PRINT PP2: TW = 1: GOTO REVEAL
IF UCASE$(MW$) = UCASE$(CAT2$(I)) AND P = 2 THEN LOCATE 21, 35: PP2 = PP2 + 1: PRINT PP2: MW = 1: GOTO REVEAL
IF UCASE$(BW$) = UCASE$(CAT3$(I)) AND P = 2 THEN LOCATE 21, 35: PP2 = PP2 + 1: PRINT PP2: BW = 1: GOTO REVEAL
LOCATE 23, 10: COLOR 10: PRINT "INCORRECT"
SOUND 90, 4: SOUND 0, 2: SOUND 67, 5
IF P = 1 THEN GOTO PLAYER2
IF P = 2 THEN GOTO PLAYER1

REVEAL:
TW$ = ""
MW$ = ""
BW$ = ""
IF H = 1 THEN
Y = 19: Z = 82
FOR S1 = 1 TO SQ1
  LOCATE 12, S1 + S1 + 2: PRINT MID$(CAT1$(I), S1, 1)
  X = S1 * 16
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
Seconds = .1
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B
NEXT S1
END IF

IF H = 2 THEN
Y = 19: Z = 106
  FOR S2 = 1 TO SQ2
  LOCATE 15, S2 + S2 + 2: PRINT MID$(CAT2$(I), S2, 1)
  X = S2 * 16
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
Seconds = .1
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B
NEXT S2
END IF

IF H = 3 THEN
Y = 19: Z = 130
FOR S3 = 1 TO SQ3
  LOCATE 18, S3 + S3 + 2: PRINT MID$(CAT3$(I), S3, 1)
  X = S3 * 16
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 14, B
Seconds = .1
GOSUB ST
LINE (Y + X - 16, Z)-(Y + X - 16 + 15, Z + 17), 78, B
NEXT S3
END IF
IF TW = 1 AND MW = 1 AND BW = 1 THEN GOTO FINISH
GOTO GUESSWORD

PLAYER1:
FOR X = 2 TO 6
  LOCATE X, 13: PRINT SPACE$(25)
NEXT X
LOCATE 23, 10: PRINT SPACE$(10)
P = 1
PUT (252, 98), GIRL, PSET
IF PP1 > 0 THEN LOCATE 21, 35: COLOR 15: PRINT PP1
GOTO STARTGAME

PLAYER2:
FOR X = 2 TO 6
  LOCATE X, 13: PRINT SPACE$(25)
NEXT X
LOCATE 23, 10: PRINT SPACE$(10)
P = 2
PUT (252, 100), GUY, PSET
IF PP2 > 0 THEN LOCATE 21, 35: COLOR 15: PRINT PP2
GOTO STARTGAME

FINISH:
FOR X = 2 TO 6
  LOCATE X, 13: PRINT SPACE$(25)
NEXT X
COLOR 12
IF P = 1 THEN LOCATE 4, 13: PRINT LEFT$(P1NAME$, 5); : COLOR 15: PRINT " Gets The LAST WORD": LOCATE 6, 15: COLOR 10: PRINT LEFT$(P1NAME$, 5); : COLOR 14: PRINT " WINS!!!"
IF P = 2 THEN LOCATE 4, 13: PRINT LEFT$(P2NAME$, 5); : COLOR 15: PRINT " Gets The LAST WORD": LOCATE 6, 15: COLOR 10: PRINT LEFT$(P2NAME$, 5); : COLOR 14: PRINT " WINS!!!"
LOCATE 23, 1: COLOR 10: PRINT "Play Again? [y/N]"; : A$ = INPUT$(1)
IF UCASE$(A$) = "Y" THEN GOTO PLAYLW
CLS
SLEEP 1

LWEND:
CLS
WIDTH 80, 25
SCREEN 0, 0, 0, 0

END SUB

'------------8<----[ End LASTWORD.BAS ]---->8------------
