Autor Beitrag
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 02.05.11 22:31 
PARANUSS - PREISVERLEIHUNG 2011

Was für eine Paranuss-Verleihung dieses Jahr, kein Teilnehmer geht leer aus :D . Das dürfte dann auch erklären, warum wir nur eine Finalrunde brauchten :gruebel: ... deswegen rede ich auch nicht weiter um den heißen Brei, sondern präsentiere euch prompt die Platzierungen:

  1. user defined image ForceUser (zip, 19.04 KB) von user profile iconder organist

  2. user defined image OmaKI (zip, 18.41 KB) von user profile iconOliver Marx

  3. user defined image Tilsiter (zip, 15.59 KB) von user profile iconTilman


Alle drei erhalten wie versprochen...
je eine Eintrittskarte zu den Delphi-Tagen 2011 in Köln :party: !

Auf ihre Awards im Profil müssen sie sich noch bis zum Wochenende gedulden, also bitte nicht über die Jahreszahl in den obigen Grafiken wundern ;) . Dafür dürft ihr direkt die Final-Replays und die Implementierungen im Anhang begutachten :) .

Wir gratulieren den dreien und allen anderen Preisträgern und danken allen Mitspielern für den Einsatz! :party: :beer:

Viele Grüße und bis zum nächsten Mal,
Euer Eckenteam
Einloggen, um Attachments anzusehen!
_________________
>λ=


Zuletzt bearbeitet von Kha am So 08.05.11 13:46, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: Christian S., Hidden, Marc., Martok, Narses, Regan, Tilman
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Mo 02.05.11 22:43 
Glückwunsch euch beiden :) ich hab leider die Woche wieder den *popo* nicht hochgekriegt, mich nochmal hinzusetzen. Mein Bot ist daher recht schwach auf der Brust ^^ doch er schafft es, ein Valides Spiel zu spielen, und das hat anscheinend genügt :)

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
der organist
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Mo 02.05.11 22:54 
Vielen Dank, ich muss sagen, ich habe nicht damit gerechnet. An dieser Stelle danke ich auch nochmal Hidden: Lieber Daniel, ohne dich hätte ich niemals so schnell begriffen, wofür diese Units (zum Downloaden) da sind.

Dann gleich noch zwei Dinge dazu:
1. etwas Kritik: Ich glaube, es hätten mehr Menschen teilgenommen, wenn es etwas erklärt worden wäre, wie der Client funktioniert. Ob das im Sinn des Gewinnspiels ist, weiss ich nicht.

2. Ich habe ein Problem, meinen Gewinn einzulösen. Ich müsste mir zusätzlich ein Flugticket von Finnland hin und zurück buchen und dann wäre ich immer noch nicht sicher, ob meine Freundin in Finnland das sooo toll fände (Freund aufn Delphi-Tagen und lässt einen dafür allein zurück ;) ) Daher kann ich meinen Preis gleich weiter geben. Ich hoffe, das ist möglich...Falls ja, dann wird es auch nicht der Erstbeste sein, sondern jemand, der auch noch Schüler ist, sonst nicht hinfahren würde oder sonst etcppwasauchimmer...

Gruss, Lukas

An dieser Stelle noch ein Zitat, das wir an diesem Abend eindrucksvoll oberflächlich widerlegt haben:

"Man kann keinen Gewinn machen, ohne einem anderen Verlust zuzufügen." Publilius Syrus, Sententiae L6

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 02.05.11 23:02 
Hallo, Lukas!

Du kannst Deinen Gutscheincode für die Delphi-Tage natürlich weitergeben, wenn Du so kurze Strecken nicht in Kauf nehmen willst :D

Was die Kritik angeht, so machen wir uns natürlich schon Gedanken, warum nicht mehr Leute abgegeben haben. Da sind uns entsprechende Hinweise natürlich willkommen. :)

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
der organist
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Mo 02.05.11 23:06 
Ihr hattet ja auch schon angekündigt, dass ihr so etwas wiederholen wollte (wenn nicht ihr, dann hat es sich wer gewünscht...). Daran hätte ich sicher Spass und vielleicht machen dann mehr mit.. (Hoffnung stirbt immer zuletzt)

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mo 02.05.11 23:26 
Moin,

Eigentlich von jedem, den ich mal dazu angeschrieben habe, habe ich das hier gehört.
Alle bis auf endlich viele haben geschrieben:

Ich habe leider viel zu wenig Zeit :-(


Daraus schließen wir: Vielleicht hilft es, noch mehr vorzuimplementieren, auch wenn das schon dieses Mal fast alles war. Vielleicht noch einen Thread vorschreiben, der die Berechnung dann ausführen kann. :gruebel:
Dann, ja, irgendwann dann nehmen sich vielleicht das eigentliche(algorithmische) Problem ein paar mehr vor.

Ich glaube aber ehrlichgesagt nicht, dass die sich den Quelltext überhaupt einmal länger angesehen haben: Schöner ging es kaum, und das war vielleicht kaum einem klar: GUI und Serverkommunikation waren komplett fertig. Man brauchte nur 1-2 Änderungen in den drei Source-Units zu machen und konnte eine Klasse von TUIClient ableiten, der bereits alle Methoden zur Verfügung stellte. Dann nur noch überschreiben, in zwei Edits 'Von' und 'Nach' eintragen und am Ende ein Button1.Click;. :mrgreen:

Mein Eigener Ansatz sah natürlich so aus: Wir überlegen uns Algorithmen, legen haufenhaft Datentypen an und implementieren Strukturarrays und inverese Strukturarrays, um möglichst komprimierte Zugerzeugung möglich zu machen.
Danach stellen wir fest, dass wir uns total verzettelt haben und löschen in Nacht und Nebel inverse Arrays, etc, wieder heraus, um das ganze debugbar zu bekommen :?

(Obwohl ich alles schön im GUI ausgeben lassen habe, war es mies zu debuggen)

lg (:

Edit: Anhang wieder gelöscht, ich arbeite noch ein wenig dran und fände es irritierend wenn jetzt viele mit meinem Nick auf dem Server sein würden :P

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)


Zuletzt bearbeitet von Hidden am Mo 02.05.11 23:44, insgesamt 2-mal bearbeitet
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 02.05.11 23:38 
user profile iconder organist hat folgendes geschrieben Zum zitierten Posting springen:
Dann gleich noch zwei Dinge dazu:
1. etwas Kritik: Ich glaube, es hätten mehr Menschen teilgenommen, wenn es etwas erklärt worden wäre, wie der Client funktioniert. Ob das im Sinn des Gewinnspiels ist, weiss ich nicht.
Ach, dabei hab ich mir doch so viel Mühe mit den Kommentaren gegeben...
Im Serverprotokoll wäre auch noch mal viiieeel Text gewesen. Nur dass da wohl keiner gesucht hat... :(

Und dann hätte es ja auch noch die Möglichkeit gegeben, in der dazugehörigen Sparte ganz laut "Hääää!?" zu rufen :D

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Daraus schließen wir: Vielleicht hilft es, noch mehr vorzuimplementieren, auch wenn das schon dieses Mal fast alles war. Vielleicht noch einen Thread vorschreiben, der die Berechnung ausführt.. :gruebel:
Ja, das mit den Threads hatten wir uns erst hinterher überlegt. Da wars für die Clients schon etwas eng. Jedenfalls in Delphi, .NET ha/ätte da nicht so Probleme.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
trm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 491
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: Mo 02.05.11 23:53 
Für mich war es schlicht und einfach zu schwer und ich hatte keine Lust, mir das schöne Wetter mit solchen Aufgaben vermiesen zu lassen, sondern habe einen 40m langen zaun restauriert, 2 neue Türen gebaut, 1/2 Carport gebaut (kein fertiges aus dem Baumarkt, sondern aus ungehobelten Balken und Latten (Sparren)).

Gruß an alle :)

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)
Thom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 70
Erhaltene Danke: 5


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 03.05.11 00:12 
Erst einmal herzlichen Glückwunsch an die drei Gewinner - ähm... Teilnehmer!

Wenn ich mir die drei Spiele anschaue, ärgere ich mich im Nachhinein, daß ich mein Programm nicht abgeschickt habe. Denn DAS hätte meine KI auch hinbekommen... :P
Da sind ja teilweise absolut sinnfreie Spielzüge dabei! :shock:

P.S.:
  • OmaKI läßt sich nicht comilieren, da hier offensichtlich eine ältere Indy-Version benutzt wurde (EIdNotConnected gibt's nicht mehr oder steht in einer anderen Unit).
  • Tilsiter muß erst Unicode-tauglich gemacht werden.

Ich werde die Sachen morgen mal Delphi XE - fähig machen.
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Di 03.05.11 12:58 
Herzlichen Glückwunsch an die drei Teilnehmer! :zustimm:

Ich hätte wirklich sehr gerne teilgenommen, wäre da nicht die "böse" Uni, die mir die Zeit raubte, um mich intensiv mit dem Thema zu beschäftigen - Bachelor sei Dank. :lol:
Einige scheinen aber etwas programmiert zu haben, haben es dann aber doch nicht abgeschickt. Da fragt man sich, weshalb? :)
Anderen erschien die Aufgabe wohl zu komplex. Informationen und Anleitungen zur KI-Programmierung gibt es sicher, wie Sand am Meer. Vielleicht wäre trotzdem zur Motivation eine offizelle (grobe) Einführung hier im Forum gar nicht verkehrt gewesen. :les: :lupe:

Beste Grüße

Für diesen Beitrag haben gedankt: der organist
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Di 03.05.11 15:26 
Herzlichen Glückwunsch die drei Gewinner. Eine Frage hätte ich noch:

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user defined image

Warum sind die Grafiken auf 2009 ausgestellt?
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Di 03.05.11 15:31 
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user defined image

Warum sind die Grafiken auf 2009 ausgestellt?


Lesen ist gut, GENAU lesen ist besser ;)

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
PARANUSS - PREISVERLEIHUNG 2011
Auf ihre Awards im Profil müssen sie sich noch bis zum Wochenende gedulden, also bitte nicht über die Jahreszahl in den obigen Grafiken wundern ;) .

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Di 03.05.11 15:43 
Ach mist :autsch: . Ich habe extra alle Antworten zweimal durchgelesen und den ersten Post vollkommen übersehen :mrgreen: .
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Di 03.05.11 15:58 
Hallo,

das sind ja absolut erstaunliche Lösungen ;-)
Ich dachte, es kommt etwas alá AlphaBeta-Suche
www.delphi-forum.de/...;highlight=strategie mit Speicherung der Zugfolgen/Stellungen und deren Bewertung, damit man diese nur einmal rechnen muss.
Da wollte jaenicke wohl einem nur Angst machen ;-)

Gruß Horst
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Di 03.05.11 16:14 
Moin,

Mein AlphaBeta ist noch nicht ganz fertig, ich lade ihn später hoch :)
user profile iconMartoks AlphaBeta hat alle eingesandten Bots geschlagen :zwinker:

Besonders(!) bei diesem Spiel sind übrigens Hashtabellen wichtig, weil die Redundanz einfach gigantisch ist: Jeder Einzelzug mit gleichem Zielfeld führt zur selben Stellung. :shock:

Die Interpretation des Kopierens bei selbem Zielfeld als unterschiedlichen Zug ist schon etwas unhandlich für eine Tiefensuche :lol:

lg,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Di 03.05.11 17:19 
Hallo,

Zitat:
Jeder Einzelzug mit gleichem Zielfeld führt zur selben Stellung.

Diese habe ich von vornherein nicht in der Zugliste aufgenommen.
Zu Beginn der Zuglistenerstellung der Einzelzügen bekommt eine boolsche 9x9 Matrix den Wert für "nicht belegt", diese wird dann mit den möglichen Zügen aktualisiert.

Ich dachte, es wäre wichtig, wenn bei eigenem Zug Feld A zuerst und im folgendem eigenem Zug Feld B belegt wird und dies nun in umgekehreter Reihenfolge passiert, ohne dass der zwischenzeitliche Zug des Gegeners etwas an der Stellung/Anzahl der eigenen Steine ändert, dann wäre B->A schon in der Untersuchung zu A->B schon komplett enthalten. Entsprechend C>A>B in A->B->C ....
Wie wird der Hashwert bestimmt?


Gruß Horst
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Di 03.05.11 17:53 
user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Wie wird der Hashwert bestimmt?
Wer meine ersten Versuche zu einer Schach-KI verfolgt hat, der kennt schon diese Links:
www.bauer-schweitzer...x/index_minimax.html
www.scleinzell.schac...siswissen/hash.shtml

Grundsätzlich besteht der Stellungsbaum solcher Spiele aus zwei Aktionen: Einen Stein zu platzieren oder einen wegzunehmen. (Das Platzieren beinhaltet dabei noch kein Konvertieren.)

ausblenden Zug A -> B in diesem speziellen Spiel:
1:
2:
3:
4:
5:
6:
Platziere(B);
if Doppelzug(A,B) then Entferne(A);
for U in Grenzsteine(B) do begin
  if Farbe(U) <> Farbe(B) then
    U := B;  //Konvertieren
end;


Für unseren Hash seien nun zu jedem Feld des Spielbretts zwei Zufallszahlen gegeben, eine pro Spieler, darunter keine Kollisionen. Der Startstellung wird auch eine Zufallszahl zugeordnet.
Wenn wir jetzt in Platziere und in Entferne jeweils den aktuellen Stellungshash mit der Zufallszahl[Feld, Steinfarbe] verknüpfen, erhalten wir für verschiedene Stellungen wahrscheinlich verschiedene Hashs.

Wenn die Verknüpfung kommutativ ist(z.B. '+', '*', ..) und selbstinvers, so hat die selbe Stellung hier unabhängig von der Zugreihenfolge den selben Hash. Wir nehmen xor, der Wertebereich ist auf zufälligem Input gleichverteilt und es ist leicht zu berechnen.

Wenn es jetzt noch vorkommen kann, dass ein anderer Spieler am Zug ist aber die Stellung auf dem Brett die selbe, dann nehmen wir eine Weitere Zufallszahl dazu die wir nach jedem Wechsel des Zugrechts mit dem vorigen Hash verknüpfen.
Achtung hier: Wenn der Gegner wie bei diesem Spiel aussetzen muss, wechselt das Zugrecht entsprechend nicht.

Beim Schach muss zusätzlich noch der Figurentyp mit eingehasht werden, sonst würde z.B. das Verwandeln eines Bauern in eine Dame den Hash nicht ändern :rofl:

lg,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)


Zuletzt bearbeitet von Hidden am Mi 04.05.11 21:23, insgesamt 1-mal bearbeitet
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Di 03.05.11 21:39 
Ich fand es auch sehr komplex für mal zwischendurch.
Hatte auch nicht mitbekommen, dass es die Zeitverlängerung nun wirklich gab. Wo stand das?
Dann hätte ich meine doch sehr effektive AlphaBeta-Suche dann zumindest in dieser Fassung noch Abgabetauglich gemacht.
Im Anhang mal mein Programm, mit dem ich die KI entwickelt habe und die KI selbst. Ist nur nicht an die Gewinnspielsoftware angebunden. Auch sind ein paar Einstellungen noch vom Testen und es gibt 2 KI-Dateien. Eine davon war mein Versuch vor die andre nach der Optimierung. Sieht man aber schon ;)

Hashtabellen habe ich übrigens nicht verwendet. Hätte man aber recht einfach noch machen können. Hab 6 Cardinals zum Speichern der Positionen genommen.
Einloggen, um Attachments anzusehen!

Für diesen Beitrag haben gedankt: Hidden, Horst_H
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 06.05.11 23:26 
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Ach mist :autsch: . Ich habe extra [...] den ersten Post vollkommen übersehen :mrgreen: .


Genau so schaut's aus :mrgreen:

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.