' J.BAS -- This is the starting module.  It coordinates the initialization
' and playing a game
' $INCLUDE: 'J.INC'

DECLARE SUB PlayAGame ()
DECLARE SUB MakeGuesses ()
DECLARE FUNCTION AnotherGame ()

' ***************************
' *** Program Starts Here ***
' ***************************

COLOR Normal, Background, Background
CLS
InitWordList
InitBoxes
MainMenu
COLOR Dark, 0
CLS
END

FUNCTION AnotherGame
	DIM MyBox AS BoxType
	COLOR Normal, Background, Background
	CLS
	CALL BoxCoords(AnotherGameBox, MyBox)
	NormalBox (AnotherGameBox)
	LOCATE MyBox.TopRow + 1, MyBox.LftCol + 2, 1
	PRINT "Do you want to play another game? ";
	AnotherGame = (YesNo$ = "Y")
END FUNCTION

SUB MakeGuesses
	DO
		Word$ = GuessAWord$
		IF LEN(Word$) = 5 THEN
			AddGuess (Word$)
			IF Word$ = SecretWord$ THEN
				HighlightBox (MessageBox)
				HighlightBox (ScoreBox)
				ShowMessage ("You guessed the word!")
				Pause
				EXIT SUB
			END IF
		END IF
	LOOP WHILE LEN(Word$) = 5 AND GuessCount < 20
	HighlightBox (MessageBox)
	ShowMessage ("Sorry you didn't guess " + SecretWord$)
	Pause
END SUB

SUB Pause
	WHILE INKEY$ <> "": WEND
	WHILE INKEY$ = "": WEND
END SUB

SUB PlayAGame
	DO
		COLOR Normal, Background, Background
		CLS
		InitScore
		InitGuessList
		InitGuess
		InitKnownList
		InitPossList
		InitUsedList
		InitNotes
		InitMessage
		PickAWord
		MakeGuesses
	LOOP WHILE AnotherGame = TRUE
	SaveWordList
END SUB

FUNCTION YesNo$
	DO
		Char$ = UCASE$(INPUT$(1))
	LOOP UNTIL INSTR("YN", Char$)
	YesNo$ = Char$
END FUNCTION

