Eine objektorientierte Implementierung von Conway's Game of Life in ABAP mit interaktiver ALV-Anzeige.
Dieses Projekt implementiert Conway's Game of Life, einen zellulären Automaten, der von John Horton Conway entwickelt wurde. Die Implementierung nutzt moderne ABAP-Konzepte und bietet eine visuelle Darstellung über ALV (ABAP List Viewer).
Das Spielfeld besteht aus einem Grid von Zellen, die entweder lebendig oder tot sein können:
- Unterbevölkerung: Eine lebende Zelle mit weniger als 2 lebenden Nachbarn stirbt
- Überleben: Eine lebende Zelle mit 2-3 lebenden Nachbarn überlebt
- Überbevölkerung: Eine lebende Zelle mit mehr als 3 lebenden Nachbarn stirbt
- Reproduktion: Eine tote Zelle mit genau 3 lebenden Nachbarn wird lebendig
- 🎯 Objektorientierte ABAP-Implementierung
- 🖥️ Interaktive ALV-Anzeige
- ⚙️ Konfigurierbare Grid-Größe (Zeilen und Spalten)
- 🔄 Automatische Generationswechsel
- ✅ Unit Tests für Core-Logik
- 🔍 ABAPLint-konform
src/
├── zcl_gol_controller.* # Hauptsteuerung des Spiels
├── zcl_gol_grid.* # Grid-Verwaltung und Logik
├── zcl_gol_cell.* # Einzelne Zell-Implementierung
├── zcl_gol_alv.* # ALV-Darstellung
├── zgol_runner.prog.abap # Executable Report
├── zif_gol_constants.* # Interface für Konstanten
└── zif_gol_types.* # Interface für Typdefinitionen
- SAP System mit ABAP 7.40 oder höher
- Berechtigungen zum Erstellen von ABAP-Objekten
-
Klonen des Repositories
git clone https://github.com/miggi92/abap-gol.git
-
Import in SAP System
- Nutze abapGit oder manuelle Imports
- Stelle sicher, dass alle Objekte im Package angelegt werden
-
Aktivierung
- Aktiviere alle ABAP-Objekte im System
- Führe den Report
ZGOL_RUNNERaus - Gib die gewünschten Parameter ein:
P_COLS: Anzahl der Spalten (Standard: 30)P_ROWS: Anzahl der Zeilen (Standard: 15)
- Klicke auf "Ausführen" (F8)
- Die ALV-Ansicht zeigt das aktuelle Grid
- Klicke auf "Nächste Generation", um die Simulation fortzusetzen
- Beobachte, wie sich die Zellen nach den Game of Life Regeln entwickeln
# Abhängigkeiten installieren
pnpm install
# ABAPLint prüfen
pnpm run abaplint
# Unit Tests ausführen (Transpiler)
pnpm run testDie ABAPLint-Statistiken können unter abaplint.app/stats/miggi92/abap-gol eingesehen werden.
Das Projekt enthält Unit Tests für die Kern-Logik:
- Tests für
zcl_gol_controller - Tests für
zcl_gol_grid
Tests können über den Transpiler oder direkt im SAP System ausgeführt werden.
Beiträge sind willkommen! Bitte beachte:
- Fork das Projekt
- Erstelle einen Feature-Branch (
git checkout -b feature/AmazingFeature) - Committe deine Änderungen (
git commit -m 'Add some AmazingFeature') - Pushe zum Branch (
git push origin feature/AmazingFeature) - Öffne einen Pull Request
Weitere Details findest du in CONTRIBUTING.md.
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Details siehe LICENSE.md.
Projekt Link: https://github.com/miggi92/abap-gol
⭐ Wenn dir dieses Projekt gefällt, gib ihm einen Stern!