Hallo alle zusammen
Ich bin gerade dabei ein Memoy zu programmieren, bin noch kein Profi, allerdings auch kein völliger Anfänger mehr (bisher 3,5 Jahre Delphi in der Schule gehabt).
Es läuft soweit auch ganz gut, allerdings gibt es einige Kleinigkeiten die optimiert werden könnten, bei denen ich allerdings Hilfe benötige.
(Und bevor jetzt Sachen kommen wie "Suchfunktion bitte nächstes mal nutzen, Thema gabs schon 237892378x mal" etc etc... - Ich hab schon etwas rumgeguckt, halt nur nicht Antworten auf die Probleme gefunden die ich brauche.)
Mein Programm funktioniert im Großen und Ganzen so:
Es wird eine bestimmte Anzahl von Karten festgelegt.
Nun werden eine bestimmte Anzahl von Images erstellt, diesen werden Werte zugewiesen wie Parent, Height, Width, Name, Top, Left usw...
Nachdem auch jedes Image ein Bild hat, werden erneut Images erstellt und darüber gelegt (die Rückseiten).
Dann werden alle Karten durchgemischt (Top und Left verändern sich).
Klickt man ein Bild an, verschwindet die Rückseite (hide) und man sieht das eigentliche Bild. Ein zweites Bild kann angeklickt werden. Stimmt die ID (gespeichert in der Hint Eigenschaft des Images) überein, bleiben beide Karten offen und man erhält einen Punkt. Wenn nicht, werden beide wieder zugedeckt.
1. Problem:
Ich habe insgesamt ~132 Bilder. Es wird ausgelost welches geladen wird, der Pfad wird erneut ausgelost nachdem das jeweilige Bild zweimal benutzt wurde. In einem Array of boolean wird dieses Bild nun als false gesetzt damit es nicht erneut ausgelost werden kann.
Ich habe das bisher so gelöst, dass die Bilder die Namen "1" - "132" haben, was natürlich irgendwie gemogelt ist... Wie kann ich unabhängig vom Namen den Bildpfad auslosen? Ich habe da keinen Ansatz gefunden wie ich das machen könnte...
2. Problem:
Bisher werden die Bilder noch sehr dicht nebeneinander gelegt, es klappt aber einfach nicht dass ein Rand dazwischen kommt...
3. Problem:
Erstelle ich öfter ein Memory, gebe auf, erstelle ein neues usw. ... kommt irgendwann eine Zugriffsverletzung. Das dies an den Images liegen wird ist mir klar, aber wie kann ich das unterbinden? Bevor man ein neues Memory erstellen kann, werden zuerst alle Images gelöscht... Wo liegt der Fehler?
Und allgemein ist mein Programm sehr langsam/'laggy'. Gibt es da noch Optimierungsvorschläge? Ich denke meine Algorithmen mit den ganzen Schleifen sind zu umfangreich geworden...
Und ja, ich weiß dass mein 2-Spieler Modus sowie einige weiter 'addons' noch nicht funktionieren...
Mit freundlichen Grüßen!