Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CLASS zgs_fi201711_scrabblecalc DEFINITION
- PUBLIC
- FINAL
- CREATE PUBLIC .
- PUBLIC SECTION.
- METHODS setlanguage
- IMPORTING
- !im_language TYPE string .
- METHODS calculate
- IMPORTING
- !im_word TYPE string
- RETURNING
- VALUE(rv_score) TYPE i .
- PROTECTED SECTION.
- PRIVATE SECTION.
- DATA wa_lettervalues TYPE zgs_11_letter_de .
- DATA language TYPE string .
- METHODS lettervalue
- IMPORTING
- !im_letter TYPE c
- RETURNING
- VALUE(rv_score) TYPE i .
- ENDCLASS.
- CLASS ZGS_FI201711_SCRABBLECALC IMPLEMENTATION.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZGS_FI201711_SCRABBLECALC->CALCULATE
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IM_WORD TYPE STRING
- * | [<-()] RV_SCORE TYPE I
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD calculate.
- DATA: index TYPE i,
- length TYPE i,
- char TYPE c.
- length = strlen( im_word ).
- rv_score = 0.
- WHILE index < length.
- char = im_word+index(1). "no idea what's happening here, but char iterates through the letters of im_word
- rv_score = rv_score + lettervalue( im_letter = char ).
- ADD 1 TO index.
- ENDWHILE.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Private Method ZGS_FI201711_SCRABBLECALC->LETTERVALUE
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IM_LETTER TYPE C
- * | [<-()] RV_SCORE TYPE I
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD lettervalue.
- DATA: letter TYPE c,
- tablename TYPE string.
- letter = im_letter.
- TRANSLATE letter TO UPPER CASE.
- tablename = 'zgs_11_letter_' && language.
- SELECT *
- FROM (tablename) AS l
- WHERE l~letter = @letter
- INTO CORRESPONDING FIELDS of @wa_lettervalues.
- ENDSELECT.
- rv_score = wa_lettervalues-value.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZGS_FI201711_SCRABBLECALC->SETLANGUAGE
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IM_LANGUAGE TYPE STRING
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD setlanguage.
- IF ( im_language = 'en' OR im_language = 'de' ).
- language = im_language.
- ELSE.
- WRITE `Language ` && im_language && ' is not supported. Defaulting to en.'.
- language = 'en'.
- ENDIF.
- ENDMETHOD.
- ENDCLASS.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement