| 
| Autor | Beitrag |  
| Kha 
          Beiträge: 3803
 Erhaltene Danke: 176
 
 Arch Linux
 Python, C, C++ (vim)
 
 | 
Verfasst: Mo 02.05.11 21:31 
 
PARANUSS - PREISVERLEIHUNG 2011
Was für eine Paranuss-Verleihung dieses Jahr, kein Teilnehmer geht leer aus    . Das dürfte dann auch erklären, warum wir nur eine Finalrunde brauchten    ... deswegen rede ich auch nicht weiter um den heißen Brei, sondern präsentiere euch prompt die Platzierungen:
  ForceUser (zip, 19.04 KB) von  der organist 
 
 OmaKI (zip, 18.41 KB) von  Oliver Marx 
 
 Tilsiter (zip, 15.59 KB) von  Tilman
 Alle drei erhalten wie versprochen...
je eine Eintrittskarte zu den Delphi-Tagen 2011 in Köln  !
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!      Viele Grüße und bis zum nächsten Mal,
E uer E ckenteam 
Einloggen, um Attachments anzusehen!
 
_________________ >λ=
 
 Zuletzt bearbeitet von Kha am So 08.05.11 12:46, insgesamt 1-mal bearbeitet
 Für diesen Beitrag haben gedankt: Christian S., Hidden, Marc., Martok, Narses, Regan, Tilman
 |  |  |  
| Tilman 
          Beiträge: 1405
 Erhaltene Danke: 51
 
 Win 7, Android
 Turbo Delphi, Eclipse
 
 | 
Verfasst: Mo 02.05.11 21: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 
          Beiträge: 467
 Erhaltene Danke: 17
 
 WIN 7
 NQC, Basic, Delphi 2010
 
 | 
Verfasst: Mo 02.05.11 21: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. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Mo 02.05.11 22: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    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 
          Beiträge: 467
 Erhaltene Danke: 17
 
 WIN 7
 NQC, Basic, Delphi 2010
 
 | 
Verfasst: Mo 02.05.11 22: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 
          Beiträge: 2242
 Erhaltene Danke: 55
 
 Win10
 VS Code, Delphi 2010 Prof.
 
 | 
Verfasst: Mo 02.05.11 22: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.    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; .    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  _________________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 22:44, insgesamt 2-mal bearbeitet
 |  |  |  
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Mo 02.05.11 22:38 
 
	  |  der organist hat folgendes geschrieben  : |  	  | 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    	  |  Hidden hat folgendes geschrieben  : |  	  | 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..  | 
 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 
          Beiträge: 491
 Erhaltene Danke: 19
 
 Windows 7x64
 Delphi 7
 
 | 
Verfasst: Mo 02.05.11 22: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 
          Beiträge: 70
 Erhaltene Danke: 5
 
 
 Delphi 10 Seattle Prof.
 
 | 
Verfasst: Mo 02.05.11 23: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...     Da sind ja teilweise absolut sinnfreie Spielzüge dabei!   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. 
          Beiträge: 1876
 Erhaltene Danke: 129
 
 Win 8.1, Xubuntu 15.10
 
 
 | 
Verfasst: Di 03.05.11 11:58 
 
Herzlichen Glückwunsch an die drei Teilnehmer!    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.    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.      Beste Grüße Für diesen Beitrag haben gedankt: der organist
 |  |  |  
| Regan 
          Beiträge: 2157
 Erhaltene Danke: 72
 
 
 Java (Eclipse), Python (Sublimetext 3)
 
 | 
Verfasst: Di 03.05.11 14:26 
 
Herzlichen Glückwunsch die drei Gewinner. Eine Frage hätte ich noch:
 	  |  Kha hat folgendes geschrieben  : |  	  |  | 
 Warum sind die Grafiken auf 2009 ausgestellt? |  |  |  
| zuma 
          Beiträge: 660
 Erhaltene Danke: 21
 
 Win XP, Win7, Win 8
 D7 Enterprise, Delphi XE, Interbase (5 - XE)
 
 | 
Verfasst: Di 03.05.11 14:31 
 
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
 Warum sich Sorgen ums Leben machen? Keiner überlebts!
 |  |  |  
| Regan 
          Beiträge: 2157
 Erhaltene Danke: 72
 
 
 Java (Eclipse), Python (Sublimetext 3)
 
 | 
Verfasst: Di 03.05.11 14:43 
 
Ach mist    . Ich habe extra alle Antworten zweimal durchgelesen und den ersten Post vollkommen übersehen    . |  |  |  
| Horst_H 
          Beiträge: 1654
 Erhaltene Danke: 244
 
 WIN10,PuppyLinux
 FreePascal,Lazarus
 
 | 
Verfasst: Di 03.05.11 14: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 
          Beiträge: 2242
 Erhaltene Danke: 55
 
 Win10
 VS Code, Delphi 2010 Prof.
 
 | 
Verfasst: Di 03.05.11 15:14 
 
Moin,
 Mein AlphaBeta ist noch nicht ganz fertig, ich lade ihn später hoch     Martok s AlphaBeta hat alle eingesandten Bots geschlagen    Besonders(!) bei diesem Spiel sind übrigens Hashtabellen wichtig, weil die Redundanz einfach gigantisch ist: Jeder Einzelzug mit gleichem Zielfeld führt zur selben Stellung.    Die Interpretation des Kopierens bei selbem Zielfeld als unterschiedlichen Zug ist schon etwas unhandlich für eine Tiefensuche    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 
          Beiträge: 1654
 Erhaltene Danke: 244
 
 WIN10,PuppyLinux
 FreePascal,Lazarus
 
 | 
Verfasst: Di 03.05.11 16: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 
          Beiträge: 2242
 Erhaltene Danke: 55
 
 Win10
 VS Code, Delphi 2010 Prof.
 
 | 
Verfasst: Di 03.05.11 16:53 
 
	  |  Horst_H hat folgendes geschrieben  : |  	  | 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.)
 		                       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;  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    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 20:23, insgesamt 1-mal bearbeitet
 |  |  |  
| Flamefire 
          Beiträge: 1207
 Erhaltene Danke: 31
 
 Win 10
 Delphi 2009 Pro, C++ (Visual Studio)
 
 | 
Verfasst: Di 03.05.11 20: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 
          Beiträge: 8721
 Erhaltene Danke: 191
 
 Win95, Win98SE, Win2K, WinXP
 D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
 
 | 
Verfasst: Fr 06.05.11 22:26 
 
_________________ 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.
 |  |  |  |