While trying to solve the Scrabble Scores exercise on Exercism, I read in
the GnuCOBOL FAQ about CLASS in SPECIAL-NAMES. Is this an okay use
thereof?
-Bruce
IDENTIFICATION DIVISION.
PROGRAM-ID. SCRABBLE-SCORE.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
CLASS ONES IS 'A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T'.
CLASS TWOS IS 'D', 'G'.
CLASS THREES IS 'B', 'C', 'M', 'P'.
CLASS FOURS IS 'F', 'H', 'V', 'W', 'Y'.
CLASS FIVES IS 'K'.
CLASS EIGHTS IS 'J','X'.
CLASS TENS IS 'Q','Z'.
DATA DIVISION.
WORKING-STORAGE SECTION.
*Inputs
01 WS-WORD PIC X(60).
01 WS-WORD-ARRAY REDEFINES WS-WORD.
03 WS-CHAR PIC X OCCURS 60 TIMES INDEXED BY CHAR-INDEX.
*Outputs
01 WS-RESULT PIC 99.
PROCEDURE DIVISION.
SCRABBLE-SCORE.
INITIALIZE WS-RESULT.
MOVE FUNCTION UPPER-CASE (WS-WORD) TO WS-WORD.
SET CHAR-INDEX TO 1.
PERFORM LENGTH OF WS-WORD TIMES
IF WS-CHAR(CHAR-INDEX) EQUAL SPACE
EXIT PERFORM
END-IF
EVALUATE WS-CHAR(CHAR-INDEX)
WHEN IS ONES
ADD 1 TO WS-RESULT
WHEN IS TWOS
ADD 2 TO WS-RESULT
WHEN IS THREES
ADD 3 TO WS-RESULT
WHEN IS FOURS
ADD 4 TO WS-RESULT
WHEN IS FIVES
ADD 5 TO WS-RESULT
WHEN IS EIGHTS
ADD 8 TO WS-RESULT
WHEN IS TENS
ADD 10 TO WS-RESULT
END-EVALUATE
SET CHAR-INDEX UP BY 1
END-PERFORM
WHEN OTHER ??
You could probably put the test for SPACE in there, something which
would remove any chance of a test on WS-CHAR (61).
On Mon, 13 Jan 2025 10:29:21 +0100, R Daneel Olivaw wrote:
WHEN OTHER ??
You could probably put the test for SPACE in there, something which
would remove any chance of a test on WS-CHAR (61).
Yes, good advice. Thank you.
Bruce M. Axtens wrote:
On Mon, 13 Jan 2025 10:29:21 +0100, R Daneel Olivaw wrote:
WHEN OTHER ??
You could probably put the test for SPACE in there, something which
would remove any chance of a test on WS-CHAR (61).
Yes, good advice. Thank you.
Just paranoia, 60 letters for one word is ridiculous, but I have no idea >where the data comes from.
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 1,015 |
Nodes: | 10 (0 / 10) |
Uptime: | 56:01:30 |
Calls: | 13,252 |
Calls today: | 1 |
Files: | 186,574 |
D/L today: |
3,191 files (768M bytes) |
Messages: | 3,335,094 |