AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi n-Dame: Grafische Darstsellung
Thema durchsuchen
Ansicht
Themen-Optionen

n-Dame: Grafische Darstsellung

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

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

n-Dame: Grafische Darstsellung

  Alt 7. Jan 2006, 17:48
Ich versuche ein Simulationsprogramm für das n-Dame-Problem zu schreiben (aus Einfachheitsgründen auf 8 Damen reduziert). Meine Ziel ist es die Schritte, die der Backtracking-Algorithmus nimmt für den Benutzer sichtbar zu machen. Ich benötige also ein Schachbrett mit 8x8 Feldern. In dieses Feld werden die Damen gesetzt. Beginnend mit der ersten Spalte. Die zweite (und auch die folgenden Damen) werden in die noch jeweils unbelegten Spalten gesetzt, und so lange nach unten gerückt, bis sie nicht mehr bedroht werden. Gibt es keine weitere Lösung wird vorhergehende Dame wieder um eine Zeile nach unten gesetzt. (um grob anzureißen um was es geht ) Der Quelltext steht und ist Funktionsfähig. Nun ist dir große Frage wie ich es visualisieren kann. Ich hab an ein DrawGrid gedacht, in das ich Bilder laden kann, habe selbst aber keine Ahnung wie ich es machen soll.

Hat jemand eine besssere Idee?
Oder kann mir jemand Helen das DrawGrid in die Tat umzusetzen?
Thomas
  Mit Zitat antworten Zitat
7. Jan 2006, 17:58
Dieses Thema wurde von "Matze" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Multimedia" verschoben.
In die Code-Library gehören nur fertige, funktionsfähige Codes, die man anderen Nutzern zum Nachschauen zur Verfügung stellt. Fragen sind hier fehl am Platz.
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#3

Re: n-Dame: Grafische Darstsellung

  Alt 7. Jan 2006, 20:50
Also mir ist jetzt natürlich nicht bewusst, wie du deine Daten speicherst.
Ich gehe einfach mal von einem 2D-Array of Boolean aus. Was es in Wirklichkeit ist, ist ja nicht weiter relevant; einfach entsprechend abändern.

Dann machst du das DrawGrid natürlich auf 8x8 Größe.

Nur mal der grobe Code (Befehle können variieren); Gerade kein Delphi da

Delphi-Quellcode:
var Brett:Array[0..7,0..7] of Boolean;
[...]
procedure TForm.DrawGridOnDrawCell(ACol, ARow:Integer);
begin
If Brett[Acol,Arow] then DrawGrid.Canvas.Irgendwas;
end;

// Bei Bildern laden noch das dazu:

var Dame:TBitmap;

procedure TForm.Create;
begin
Dame:=TBitmap.Create;
Dame.Picture.LoadFromFile('Pfad')
end;
ACol + ARow geben die aktuelle Spalte und Zeile an, die zZ gezeichnet wird.

Bei Irgendwas könntest du zum Beispiel mit DrawCircle einfach nen Kreis machen.
Alternativ ein Bild in ein TBitmap laden, dafür gibts dann auch einen Befehl zum reinkopieren. Müsste sich mit angucken der gebotenen Möglichkeiten schnell herausfinden lassen.
  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 06:45 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