AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi n-Dame: Darstellung schlägt fehl
Thema durchsuchen
Ansicht
Themen-Optionen

n-Dame: Darstellung schlägt fehl

Ein Thema von muetzentraeger · begonnen am 17. Jan 2006 · letzter Beitrag vom 17. Jan 2006
Antwort Antwort
Benutzerbild von muetzentraeger
muetzentraeger

Registriert seit: 30. Jun 2005
18 Beiträge
 
#1

n-Dame: Darstellung schlägt fehl

  Alt 17. Jan 2006, 09:41
Hallo zusammen .
Auch wenn ich einige Startschwierigkeiten hatte (die dank eurer tatkräftigen Unterstützung behoben wurden), hab ich es jetzt schon fast geschafft mein n-Dame-Problem zu lösen. Das Problem ist, dass er bei der Visualisierung der Damen auf dem "Schachbrett" einen Fehler ausgibt, und zwar bei allen Versuchen nach der 16. Lösung. Ich habe schon alle mir bekannten Hilfestellungen von Delphi ausgenutzt (Ich habe das Programm im Einzelschrittmodus durchlaufen lassen. Es hat 2 Stunden gedauert, aber geholfen hat es auch nichts, weil die Variablen gerade dort nicht verfügbar waren ) nur komm ich lieder nicht weiter. Ich hab mein Programm angehängt. Er wäre sehr nett wenn sich dasjemand mal ansieht, und mir einen Tip geben kann wie ich es besser lösen könnte, oder vielleicht sogar mein Programm zum Laufen bringen kann.
Danke schon einmal im Voraus für die Hilfe.
Angehängte Dateien
Dateityp: rar n-dame_368.rar (10,6 KB, 13x aufgerufen)
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: n-Dame: Darstellung schlägt fehl

  Alt 17. Jan 2006, 09:51
Ich versteh zwar nicht was dein Programm da genau macht. Aber ist ja auch egal.
Jedefalls hilft es wirstschaften, wenn man den beanspruchten Speicher auch wieder freigibt. Ich hab das an 2 Stellen getan .. und siehe da: Der Fehler ist weg.
Delphi-Quellcode:
PROCEDURE Damen_visualisieren (spalte,zeile:integer);
  var damebild:TBitmap;
      begin
      damebild:=TBitmap.Create;
      damebild.LoadFromFile('dame.bmp');
      DrawGrid1.Canvas.Draw(((spalte*30)+spalte)-31,((zeile*30)+zeile)-31,damebild);
      damebild.Free; //Hier ...
      end;

  PROCEDURE Damen_loeschen (spalte,zeile:integer);
  var damebild:TBitmap;
      begin
      damebild:=TBitmap.Create;
      damebild.LoadFromFile('leer.bmp');
      DrawGrid1.Canvas.Draw(((spalte*30)+spalte)-31,((zeile*30)+zeile)-31,damebild);
      damebild.Free; // ... und hier
      end;
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: n-Dame: Darstellung schlägt fehl

  Alt 17. Jan 2006, 10:06
.... und das dann noch in Try-Finally Blöcke kapseln und Du hast ein wirklich robustes Programm.
Delphi-Quellcode:
PROCEDURE Damen_visualisieren (spalte,zeile:integer);
var
  damebild:TBitmap;

begin
  damebild:=TBitmap.Create;
  Try // ***********
    damebild.LoadFromFile('dame.bmp');
    DrawGrid1.Canvas.Draw(((spalte*30)+spalte)-31,((zeile*30)+zeile)-31,damebild);
  Finally // ******
    damebild.Free; //Hier ...
  end; //*********
end;

PROCEDURE Damen_loeschen (spalte,zeile:integer);
var
  damebild:TBitmap;

begin
  damebild:=TBitmap.Create;
  Try // *******************
    damebild.LoadFromFile('leer.bmp');
    DrawGrid1.Canvas.Draw(((spalte*30)+spalte)-31,((zeile*30)+zeile)-31,damebild);
  Finally //****************
    damebild.Free; // ... und hier
  end; //******************
end;
Dann wird der Speicher auch dann freigegeben, wemm beim 'LoadFromFile' oder dem anschließenden Draw etwas schief geht.
Weiterhin könnte man einfach zwei Bitmaps global deklarieren (oder in der Form) und die beiden Bilder einmalig beim Programmstart laden. Dann erübrigt sich das Ganze sowieso.

Ach ja: Im FormDestroy die beiden Bitmaps wieder freigeben.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von muetzentraeger
muetzentraeger

Registriert seit: 30. Jun 2005
18 Beiträge
 
#4

Re: n-Dame: Darstellung schlägt fehl

  Alt 17. Jan 2006, 13:15
Und wieder einmal ein großes Dankeschön. Es geht wunderbar.
Thomas
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#5

Re: n-Dame: Darstellung schlägt fehl

  Alt 17. Jan 2006, 19:21
Dein Problem ist zwar inzwischen behoben - aber da ich mir die Mühe schon gemacht habe, ist hier meine Version zur Lösung des 8-Damen-Problems.
Zur Info : Es gibt im Prnzip 12 Lösungen, die durch Spiegeln/Drehen in insgesamt 96 Lösungen umgewandelt werden können. Von diesen 96 sind 4 identisch, so daß sich 92 (von der Notation her) verschiedene Lösungen ergeben.

Klicke auf den Button 'Nur Liste'.
Wenn Du Die Stellungen auf dem 'Brett' sehen willst, klicke aud den entsprechenden Eintrag in der Listbox.

Gruß, Klaus
Angehängte Dateien
Dateityp: zip 8damen_103.zip (261,8 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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