Lerne und übe ABAP. In der ABAP-Übung „High Scores“ geht es darum, eine Highscore-Liste in der Programmiersprache ABAP zu verwalten. Es gibt 40 geniale ABAP Übungen auf exercism. Du kannst diese Übung entweder in Deinem SAP-System ausprobieren oder Dich kostenlos auf der Plattform anmelden und die Übung absolvieren. Du kannst Dir sogar Lösungen von anderen Nutzen ansehen und dadurch Deine Lösung vergleichen.
Aufgabenstellung
Verwalte die Highscore-Liste eines Spielers.
Deine Aufgabe ist es, eine Highscore-Komponente des klassischen Frogger-Spiels zu erstellen, eines der meistverkauften und süchtig machenden Spiele aller Zeiten und ein Klassiker der Arcade-Ära. Deine Aufgabe ist es, Methoden zu schreiben, die den höchsten Punktestand aus der Liste, den zuletzt hinzugefügten Punktestand und die drei höchsten Punktestände zurückgeben.
Beispiel Programmierung
CLASS zcl_high_scores DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. TYPES integertab TYPE STANDARD TABLE OF i WITH EMPTY KEY. METHODS constructor IMPORTING scores TYPE integertab. METHODS list_scores RETURNING VALUE(result) TYPE integertab. METHODS latest RETURNING VALUE(result) TYPE i. METHODS personalbest RETURNING VALUE(result) TYPE i. METHODS personaltopthree RETURNING VALUE(result) TYPE integertab. PROTECTED SECTION. PRIVATE SECTION. DATA scores_list TYPE integertab. ENDCLASS. CLASS zcl_high_scores IMPLEMENTATION. METHOD constructor. scores_list = scores. ENDMETHOD. METHOD list_scores. result = scores_list. ENDMETHOD. METHOD latest. result = scores_list[ lines( scores_list ) ]. ENDMETHOD. METHOD personalbest. LOOP AT scores_list ASSIGNING FIELD-SYMBOL(<fs_score>). IF <fs_score> GT result. result = <fs_score>. ENDIF. ENDLOOP. ENDMETHOD. METHOD personaltopthree. DATA(lt_scores) = scores_list. SORT lt_scores BY table_line DESCENDING. LOOP AT lt_scores ASSIGNING FIELD-SYMBOL(<fs_score>). IF sy-tabix > 3. EXIT. ENDIF. APPEND <fs_score> TO result. ENDLOOP. ENDMETHOD. ENDCLASS.
Erklärung
Dies ist eine ABAP-Klasse namens „zcl_high_scores“, die eine Highscore-Liste verwaltet. Die Klasse ist öffentlich und kann nicht von anderen Klassen vererbt werden (FINAL).
Die Klasse enthält einen Konstruktor, der bei der Instanziierung der Klasse aufgerufen wird und als Eingabe eine Tabelle mit Punktzahlen benötigt. Darüber hinaus gibt es vier Methoden, die jeweils ein Ergebnis liefern:
- „list_scores“: gibt die komplette Liste der Scores zurück.
- „latest“: gibt die letzte Bewertung zurück.
- „personalbest“: liefert den besten persönlichen Score.
- „personaltopthree“: liefert die drei besten persönlichen Scores.
Im privaten Abschnitt wird eine interne Tabelle mit dem Namen „scores_list“ definiert, die die Scores enthält. In der Implementierung der Klasse werden die Methoden implementiert und die Daten in „scores_list“ verarbeitet.
Über den Autor
Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.
ERP UP unterstützen
Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.