Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   SudokuHelper - Beispiel für ein uncoupled design via Interfaces (https://www.delphipraxis.net/209360-sudokuhelper-beispiel-fuer-ein-uncoupled-design-via-interfaces.html)

peterbelow 26. Nov 2021 11:30

SudokuHelper - Beispiel für ein uncoupled design via Interfaces
 
SudokuHelper ist eine Anwendung die als elektronisches Sudoku Grid dient. Sie unterstützt 9x9, 12x12 und 16x16 Sudokus, sowohl in der klassischen und der Gosu Variante, wo man Zellen markieren kann, die nur gerade Werte enthalten sollen. Die Anwendung erzeugt weder Sudokus noch enthält sie einen Solver für sie; es ist nur eine komfortablere Methode zum Lösen von Sudokus aus einem Magazin oder anderen externen Quellen, statt Stift und Radierer.

Die vorhandenen Funktionen sind:
  • Ungültige Zellen werden in Rot markiert.
  • In leeren Zellen können Kandidaten für den Wert hinzugefügt und entfernt werden. Den Wert einer Zelle zu setzen entfernt automatisch alle dann nicht mehr möglichen Kandidaten.
  • Alle Aktionen können rückgängig gemacht werden, der undo stack ist nur durch den verfügbaren Speicherplatz limitiert.
  • Marken für die momentane Stackbelegung können gesetzt werden und man kann später den Stack in diesen Zustand zurückversetzen.
  • Der komplette Zustand des Sudokus kann in einer Datei gespeichert werden, inklusive des undo stacks. Aus dieser Datei kann das Sudoku später wieder geladen werden.

Das Projekt findet sich auf Github: https://github.com/PeterBelow/SudokuHelper

Der KOde ist meiner Meinung nach ein gutes Beispiel für die rigorose Trennung von UI und "buisness" Kode durch die Verwendung von Interfaces, in einer Art MVC Design. It is free (public domain) without restrictions.

TurboMagic 27. Nov 2021 10:56

AW: SudokuHelper - Beispiel für ein uncoupled design via Interfaces
 
Danke für's Teilen dieses Projektes!
Dein Satz "...and a bit bored" bringt mich so auf Ideen... ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz