AGB  ·  Datenschutz  ·  Impressum  







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

Dynamische Bäume???

Ein Thema von Erring-Light · begonnen am 7. Mär 2004 · letzter Beitrag vom 8. Mär 2004
Antwort Antwort
Seite 1 von 2  1 2      
Erring-Light

Registriert seit: 7. Mär 2004
4 Beiträge
 
#1

Dynamische Bäume???

  Alt 7. Mär 2004, 13:12
Hey@all!

Ich bin gerade daran mit einem Freund ein Spiel zu proggen (Reversi/Othello).

Für die KI hab ich eine Wertetabelle für die einzelnen Felder (8x8) angelegt. Die KI soll jetzt die nächsten 2-5 (je nach Aufwand und Schwierigkeitsgerad) Züge vorraus berechnen. Alle notwendigen Dtaen werden in einem Datentyp Spielstand gespeichert.

Mein Problem ist jetzt:
Nach jedem Zug kann ein Spieler unterschiedlich viele neue Züge machen...wie kann ich das in einem Baum berücksichtigen? In einem Binärbaum gibt es ja immer nur einen Verweis nach rechts und einen nach links...wie siehts jetzt aber mit einer dynamischen Anzahl aus die je nach Ebene variiert...wie kann ich z.B. ein Funktion AddVerweis realisieren die immer wenn ich noch einen zusätzlichen Verweis brauche diesen auch einfügt.

Oder fällt jemdand eine bessere Lösung ein wie ich die Vorrausberechnungen speichern und auswerten könnte?

Wer noch mehr Informationen braucht => einfach Fragen.

Schon mal vielen Dank fürs lesen!
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#2

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 10:44
das ist gar nicht so einfach zu beantworten ohne zu wissen, wie du überhaupt vorgehst!

Wieviele Züge sind ungefähr im Schnitt möglich? Wenn nicht beantwortbar wieviele Züge sind maximal möglich? In Folge der Beantwortung: Willst du wirklich den kompletten Baum vorher aufbauen, bevor du ihn durchsuchst (Speicher!)? Bedenke wenn pro Zug angenommen 10 Züge möglich sind und du willst in die Tiefe 5 gehen, würde das bei zwei Spielern bedeuten, dass du gerade mal 2,5 Züge beider Spieler in voraus berechnest! und selbst das kostet dich 10*10*10*10*10=100.000 Verzweigungen !!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 12:00
Hallo,
Du kannst einen Baum mit TList-Nachfahren aufbauen.
So mach ich es immer. Jeder Konten ist dann ein TList-Nachfahre.
Dann kann jeder Konten mehrere Unterknoten haben.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#4

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 12:02
erm Jens, hast du meinen Beitrag gelesen?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 12:04
Zitat von Minz:
erm Jens, hast du meinen Beitrag gelesen?
Nein
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#6

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 12:05
Dann wäre dir aber klar geworden, weshalb ein solcher Lösungsweg unbrauchbar ist!
  Mit Zitat antworten Zitat
Skiron

Registriert seit: 14. Dez 2003
153 Beiträge
 
#7

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 13:20
wenne dynamische bäume willst, brauchste nur die Items einer TreeView Nehmen
Mann zu Frau:
Zieh dich aus, wir müssen reden!
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#8

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 13:21
s.o.
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 13:30
Warum wollt Ihr Komponenten dafür benutzen???
Ich würde einfach mit Zeigern arbeiten und daraus den Baum aufbauen...

Im übrigen hat Minz natürlich recht, dass dein Backtracking-Verfahren ziemlich Speicherintensiv
ist!
Ohne Bewertung der Spielzüge kommt man da nicht weit!
Thomas
  Mit Zitat antworten Zitat
Erring-Light

Registriert seit: 7. Mär 2004
4 Beiträge
 
#10

Re: Dynamische Bäume???

  Alt 8. Mär 2004, 15:21
Schomma danke für die Antworten!

Ich kann leider kein Max für die MoeglichenZuege angeben...weil ich es selbst nicht kenne, das ist ja mein Problem.

Bei dem Spiel Reversi passiert am Anfang kaum was. Um so mehr Steine gesetzt werden (32 je Spieler) um so mehr möglichkieten hat man neue Steine zu setzten...das geht dann so bis ins letzte Drittel...da sind nicht mehr so viele freie Felder, dementsprechend auch nicht mehr so viele Möglichkeiten zu setzten.

Die Berwertung der einzelnen Züge erfolgt dann per Wertetabelle. Um den Speicher/Baum zu reduzieren hab ich auch schon verschiedene Methoden gefunden (alpha-beta-prunning...etc), also daran solls nich liegen...und selbst wenn...das Proggy soll erst ma laufen, da is der Speicher egal *hehe*

Mein Hauptproblem war einfach nur wie ich den Baum realisieren kann. Mit Zeigern wär ja das naheliegenste, aber dafür muss man sich ja noch einen extra Typ definieren => da lieght das Problem. Bei einem Binärbaum is klar das jeder Knoten nur 2 Nachfolger hat, also kann man das ja so direkt im Typ definieren...was wäre aber wenn der Binärbaum kein Binärbaum is und auch ma 3 oder mehr Nachfolger hat?
Gibt es ne z.B. ne Möglichkeit die Funktion AddNachfolger (Beispiel) zu schreiben, die den Zeigertyp so ändert das ich für den jeweiligen Knoten die exakte Anzahl an Nachfolgeknoten habe...
=>
Rechter Nachfolger
/
Knoten ...
\ /
Linker Nachfolger- ...
\
...

Hoffe jetzt ist alles ein bisschen klarer geworden...evt ist mein Thematitel nicht so passend.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:49 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