AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

8-Damen-Problem

Ein Thema von glkgereon · begonnen am 25. Jan 2005 · letzter Beitrag vom 28. Jan 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

8-Damen-Problem

  Alt 25. Jan 2005, 19:05
ich hab mich mal wieder dran gegeben und versuche es zu lösen...

wenn ich weiss welche dame als letztes dazugekommen ist, kann ich ja wesentlich schneller überprüfen ob eine stellung gültig ist.
ist dieser code korrekt? kann man ihn noch optimieren?

Delphi-Quellcode:
function TForm1.IsValid(Feld:TFeld; NewX, NewY: Byte):Boolean;
var i:Integer;
    Failed:Boolean;
begin
  for i:=1 to Newy-1 do Failed:=Failed or Feld[i,NewY];
  if not Failed then
    for i:=NewY+1 to 8 do Failed:=Failed or Feld[i,NewY];
  if not Failed then
    for i:=1 to NewX-1 do Failed:=Failed or Feld[NewX,i];
  if not Failed then
    for i:=NewX+1 to 8 do Failed:=Failed or Feld[NewX,i];
  if not Failed then
    for i:=NewX-1 downto 1 do
      if NewY-i>0 then Failed:=Failed or Feld[NewX-i,NewY-i];
  if not Failed then
    for i:=1 to 8-NewX do
      if NewY+i>0 then Failed:=Failed or Feld[NewX+i,NewY+i];
  Result:=Failed;
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: 8-Damen-Problem

  Alt 25. Jan 2005, 21:39
Was hat hierbei die Varaible/Array Feld zu erledigen? Prüft die, ob auf dem jeweiligen Feld schon eine Dame steht?

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: 8-Damen-Problem

  Alt 26. Jan 2005, 13:43
Delphi-Quellcode:
TFeld = array[1..8,1..8] of boolean;
//True = Dame
//False = Keine Dame
hoffe das hilft weiter
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: 8-Damen-Problem

  Alt 26. Jan 2005, 13:56
Naja, das hilft erstmal.

Mal eine ganz andere Idee: ich habe dieses Problem auch schon mal bearbeitet (allerdings in Real auf einem richtigen Schchbrett). Soweit ich mich erinnere, standen die Damen dort alle so, dass man von der einen Dame zurnächsten durch den Rösselsprung kam (der L-förmige zug, den sonst der Springer macht). Vielleicht hilft dir das ja weiter.

Und zur Code-Optimierung: man könnte alle for-Schleifen durch entsprechende while-Schleifen ersetzen und in die Durchlaufbedingung Failed mit einbeziehen. Dann würde die Schleife nicht noch mehrmals durchlaufen, wenn z.B. schon nach dem ersten Durchlauf klar ist, dass die eingegebene Position nicht die richtige ist. Dadurch hätte man zwar erstmal ein paar Zeilen mehr Code, da die Laufvariable i "manuell" hochgezählt werden muss, aber dafür müsste der Code dann auch schneller sein.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#5

Re: 8-Damen-Problem

  Alt 26. Jan 2005, 14:00
ja, ich "kann" schach spielen, und nein, das mit dem rösselsprung funzt so astrein nicht (man darf auf jeden fall nicht in der ecke anfangen...)

ich werd das nochmal alles durchgucken
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: 8-Damen-Problem

  Alt 27. Jan 2005, 14:43
Hab ich etwa behauptet, dass du nicht Schach spielen kannst? Kann mich nicht daran erinnern.
Das mit dem Rösselsprung sollte übrigens nur ein Denkanstoss sein. Inwiefern man das auf dem PC umsetzen kann (und ob es schneller ist als die bisherige Funktion), dass hab ich nicht gesagt.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: 8-Damen-Problem

  Alt 27. Jan 2005, 14:52
sollte kein angriff sein

ich wollte nur hierauf eine antwort geben
Zitat:
Soweit ich mich erinnere, standen die Damen dort alle so, dass man von der einen Dame zurnächsten durch den Rösselsprung kam (der L-förmige zug, den sonst der Springer macht).
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: 8-Damen-Problem

  Alt 27. Jan 2005, 15:03
Das sollte nicht heißen, dass du nicht Schach spielen kannst. Ich wollte nur sichergehen, dass ich auch richtig verstanden werde. Man weiß ja nicht, inwiefern sich der Gegenüber mit Schach auskennt. Also nichts für ungut.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: 8-Damen-Problem

  Alt 27. Jan 2005, 15:18
Hallo,
ich spiel kein Schach. Wieso 8 Damen, ich denke sind nur 2.



MfG
fR34k
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: 8-Damen-Problem

  Alt 27. Jan 2005, 15:22
@freak
Das Acht-Damen-Problem beschäftigt sich damit, wie man 8 Damen so auf einem leeren Schachbrett platzieren kann ,dass sie sich nicht gegenseitig schlagen können. Hat also mit dem eigentlichen Schachspiel wenig zu tun. (Bis auf die Damen natürlich )

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 13:18 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