• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Mühle Spiel inklusive KI

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #41
@KaPiTN: Ich muss zugeben, dass ich das Paper von dem Gasser nur in sofern verstehe, dass er in einem Programm alle möglichen Spiele erspielen lassen hat und zuvor unlogische bzw. unmögliche Spielverläufe und Spielstellungen entfernt hat.

Die Stategien die in der PDF beschrieben sind, sind zwar hilfreich um eine SEHR starke KI zu schreiben, doch durch viele Sonderfälle wird das Analysieren der Stellung dadurch auch deutlich aufwändiger.
Ich werde mir zwei oder drei verschiedene Varianten meiner KI entwerfen. Eine dumme ála Zufallsprinzip und eine mit den zuvor genannten Priorisierungen. Das ist aufwändig genug.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Zufallsprinzip taugt absolut nichts, das habe ich auch schon durch. Jedenfalls fordert einen das nicht. ;)

Bzw. das wende ich derzeit an, die KI ist das Kernstück was mir sorgen bereitet, auf der einen Seite soll sie nicht "nur schlau" agieren damit der Spieler Chancen hat, auf der anderen Seite soll sie nicht zu dumm sein, damit das Spiel nicht langweilig wird.

Habe für mich überlegt das ich Schwierigkeitsstufen einbaue, damit die KI verschiedene Wege gehen kann. Das bin ich aber am testen. Zumindest die Grundidee.

Ich meine, ein nur perfekter Gegenspiele lässt einem selbst auch keine Variationen, das muss man ein wenig Timen, zumindest bei Beginn des Spiels in der Setzphase, die ja auch sehr entscheident ist.

Aber ich hab das auch noch nicht durchdacht, das Grundspiel war jetzt trotz einiger "Fragen" am UI und die Grundlogik schnell programmiert, aber die KI kostet mich nerven ;)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #43
@theSplit: Also das Grundspiel hatte ich ja bereits sehr früh fertig. Seit dem habe ich mich aber erst heute noch einmal ca. eine Stunde rangesetzt. Jetzt habe ich eine "dumme" KI - diese sucht einfach nur einen möglichen, zufälligen Zug und übergibt ihn als Eingabe an das Hauptprogramm.
Ich befürchte, dass ich bis zum Einreichtermin nicht mehr genügend Zeit habe eine KI zu programmieren, die einigen Regeln folgt, um wenigstens einen schlechten Mühle-Spieler darzustellen.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Also ich wollte es so machen, das ich nach einem Bewertungssystem mit Punkten gehe. Ich habs zum Teil auch schon umgesetzt, zumindest in der Setzphase, aber das ist doch etwas komplizierter als angedacht.

Ich glaube die Grundidee den Feldzustand zu bewerten ist aber nicht verkehrt.

Mal mein Gedanke wie ich es umsetzen wollen würde:
- eine gegnerische Belegung in einer, möglichen, eigenen Mühlereihe zieht Punkte ab
- eigene Feldbelegungen ziehen Punkte hinzu

Knotenpunkte könnte höher bewerten, nicht zwingend aber, um Variation im Spiel zu erlauben nicht zwingend immer als bester Zug.
Nach dieser generellen Einschätzung hat man ungefähr die Idee wo und wie Mühlen gebildet werden könnten bzw. kann man gewisse Feldreihen/Felder priorisieren.

Was dann hin zu kommt und da bin ich mir nicht sicher wie man es am besten macht, die möglichen Felder nochmals separat zu bewerten, also Basispunkte + Punkte für die Position die die umliegenden Felder mit in eine Wertung mit einbeziehen.

Klingt nur sau kompliziert :p

Das umfasst aber nur die Setzphase, wie auch das eigene Bilden von Mühlen, andere Gesichtspunkte die Jester angesprochen hat werden so nicht behandelt. Aber man könnte dies mit einer "gefahren Liste" wahlweise mit einschließen lassen, basierend auf Faktoren wie eigenen Steinen auf dem Brett oder ob es eine Zwickmühle gibt, bzw. wenn man es ganz ausgeklügelt machen will, ob der Spieler etwas vorbereitet - letzteres empfinde ich aber für eine "normale" KI nicht grundlegend und ist irgendwo schon ein sehr fortgeschrittenes Feature wenn man etwas brauchbares auf die Beine gestellt hat.

Für mich ist und bleibt das vernetzen der Informationen ein Problem, habe das was ich gestern ausgearbeitet habe schon wieder verworfen.

Meiner Meinung nach aber kann man alles bis auf die Zwickmühle behindern/verhindern auch zufallsbasiert erstellen lassen, damit die Züge nicht nach einem fixen Schema ablaufen. Das mache ich zum Beispiel bei dem ersten Spielstein der vom Computer auf das Spielfeld platziert wird, um zu verhindern das immer die gleiche "Start"kombination oder eine fixe Reaktion auf den Spieler getätigt wird.

*Nachtrag:

Also das mit dem Gewichten funktioniert eigentlich schon ganz gut, nur hab ich aktuell das bereits genannte Problem, irgendwie zwischen "intelligentem" Setzen und dem Bilden einer eigenen Mühle, und nicht nur den Gegenspieler zu blockieren, zu trennen.

Ich versuche da etwas Zufall einfließen zu lassen, so das die Chance eine Mühle direkt zu blockieren nicht immer genutzt wird, das bringt auch etwas Abwechslung in die Phase des Spiels.

Das Material von Muehlespieler kann man verwenden, aber ich finde das zu Gewinnoptimiert und gerade die Setzphase entscheidet zum Großteil ob man nicht nur droht, sondern auch Verteidigt. Ein Doppelangriff wie geschildert ist somit nicht immer die erste Wahl. Aber es ist leider auch etwas sehr vorhersehbar, wie die Züge gemacht werden, wenn man nicht noch ein wenig Zufall einfließen lässt, da die Knoten ein gewisses "Grundgewicht"/Priorität haben und an zweiter Stelle natürlich versucht wird auf den Spieler zu reagieren - was auch andere Probleme verursacht.

Habe mir überlegt, ich werde, vermutlich, da ich keine Zeit habe alles in der Zeit fertigzustellen, den Code nach dem Abgabetermin zu veröffentlich.
Sollte ich wieder erwartend doch noch fertig werden und es tatsächlich einsenden, wird der Termin nur verzögert, da ich bisher nicht gelesen habe das der Quellcode nicht veröffentlich werden darf (in den Teilnahmebedinungen).
 
Zuletzt bearbeitet:

MingsPing

NGBler

Registriert
15 Juli 2013
Beiträge
347
So, nach 10-tägiger Coding-Abwesenheit hab ich heute das 2-Spieler-Spiel fertig programmiert.
Jetzt kommt das Herzstück, die KI. Da werde ich mich etwas schwer tun, da ich wenig Erfahrung mit KI-Programmierung habe.
Muss mich erstmal einlesen, welche Strategie, welcher Algorithmus sinnvoll ist.

Nur noch 10 Tage!
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Mal reingehört, wie sieht es aus bei euch, seid ihr noch dabei?
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #47
Ich habe nun meine Dumme KI-Version eingereicht. Im Code ist entsprechend vorbereitet, dass die Version noch erweitert werden kann, aber die Zeit lässt es gerade nicht zu, da noch eine KI mit einer gewissen Strategie agieren zu lassen.
 

MingsPing

NGBler

Registriert
15 Juli 2013
Beiträge
347
Geht mir leider genau so.
Hab bis jetzt nur eine Zufalls-KI. Ich versuche, ob ich es zumindest noch schaffe, eine zu basteln, die erkennt, dass der Gegner oder sie selbst eine Mühle bauen kann und dementsprechend handelt... .
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #49
Ich denke, wenn ich heute wieder eine Nachtschicht einlege, werde ich ebenfalls noch eine ganz einfache "Intelligente" KI bauen, die einfach die Zufallszüge erst macht, wenn sie ein paar andere Züge überprüft hat...
Das sollte in etwas über einer halben Stunde getan sein - das kann vielleicht direkt vorm Schlafen gehen noch klappen. Aber sonst habe ich bis Mittwoch keine Zeit mehr.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Schön das ihr noch dabei seid. :T

Bin gerade meinen Code durchgegangen und hab fleißig kommentiert... und noch etwas an der KI gefeilt - im Setzen ist sie jetzt gar nicht soooo schlecht, aber auch nicht perfekt.
Tue mir da auch verdammt schwer mit, aber ich glaube meine Idee ist auch nicht 100% ganz DIE richtige, zumindest muß man das in mehrere Aspekte unterteilen, glaube ich.
Also mal das man selbst Priorisiert Mühlen zu bauen, Fallen zu stellen, den Gegner zu behindern und was es noch für kleine "Unterszenarien" dabei gibt.

Ich werde aber definitiv abgeben - wenn man sich schon einmal die Arbeit macht!
Vielleicht bekomme man noch gutes Feedback, keine Ahnung wie das da läuft, aber ganz umsonst soll die Zeit auch nicht gewesen sein. ;)

Also, egal wie weit ihr noch kommt, gebt auf jeden Fall ab! :cool:
Es ist noch Zeit bis zum 31ten.

Und hinterher wenn der Spuk vorbei ist, können wir ja mal unseren Code aneinander prüfen - ob man das hier macht oder nicht, kann man ja dann noch entscheiden.
Wegen Privatsphäre und so ;)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #51
Vielleicht bekomme man noch gutes Feedback, keine Ahnung wie das da läuft, aber ganz umsonst soll die Zeit auch nicht gewesen sein. ;)
Als ich damals bei einer anderen Code-Competition was abgegeben habe, habe ich zumindest 5 Sätze als Feedback bekommen so ala:
Schön war, dass ... gut funktioniert. Zudem ist das ... dir besonders gelungen. Leider hat ... gefehlt, wodurch es angenehmer gewesen wäre ...
Also ein bisschen Feedback gibt es - allerdings nicht direkt zum Code (zumindest damals nicht)
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Definiere "netzwerkfähig"... soll das von vernetztem Denken kommen?

Meine nicht, die reagiert nur stupide auf die aktuelle Situation ohne sich nen "Plan" zurechtgelegt zu haben. :)
 

virtus

Gehasst

Registriert
24 Apr. 2015
Beiträge
1.689
Ort
AUF DEM MOND
Die Aussage war ungenau falsch.
Wenn sowieso jeder eine Mühle-KI schreibt, könnte man sie auch gegeneinander antreten lassen.

So ein Mühle-Server sollte sich recht schnell programmieren lassen.
Der Server muss ja lediglich prüfen, ob die gewünschten Züge valide sind und abwechselnd Züge der verbundenen Spieler (KIs) annehmen.

Wäre doch mal eine Idee.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@Roin
Eben abgegeben.... schauen wir mal was kommt! ;)

@virtus
Wäre eine nette Idee, ja. Aber das setzt voraus das genug Leute eine KI - Ready haben.
Und du mußt dann mindestens Javascript ausführen können und im Speicher den State halten... oder EXE Dateien aufrufen und geöffnet halten die wie ein Client auf die befehle des Servers warten... und auch dort den State von Aufruf zu Aufruf halten.

Wenn du das für umsetzbar hälst - mach ruhig mal :)
 

MingsPing

NGBler

Registriert
15 Juli 2013
Beiträge
347
So, auch noch abgegeben, Mann, die wollten ja einiges wissen von einem... hätte ich ne halbe Stunde später angefangen, hätte das nicht mehr zur Abgabe gereicht :-/
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Stimmt, hat mich auch etwas irritiert - aber hab die "Basics", um auf die % zu kommen, angefangen auszufüllen - hoffentlich werde ich deßhalb nicht für den Talentpool geblacklistet ;)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #58
Eben abgegeben.... schauen wir mal was kommt! ;)
Ich habe es leider nicht mehr geschafft meine KI zu verbessern - die haben jetzt nur die Zufalls-KI von mir. Jetzt ist es eh zu spät.

Und du mußt dann mindestens Javascript ausführen können und im Speicher den State halten... oder EXE Dateien aufrufen und geöffnet halten die wie ein Client auf die befehle des Servers warten... und auch dort den State von Aufruf zu Aufruf halten.
stimmt nicht unbedingt. Es würde reichen, wenn jedes KI-Programm die Züge aus einer Datei lesen und anschließend den berechneten Zug in diese Datei schreiben kann. Natürlich müsste man dann die Schreibweise der Züge der KIs untereinander abstimmen.
Dann könnte man die KIs auf dem Server laufen lassen, ein Spiel (also eine Datei) zuweisen und dann gucken die halt in einer Schleife immer in die Datei rein, ob die am Zug sind oder nicht und warten sonst einfach.

Sollte machbar sein - ich kann dafür meinen Code zur Verfügung stellen - würde auch gerne die Ergebnisse sehen, allerdings möchte ich dafür vorerst keine weitere Zeit einplanen.
 

virtus

Gehasst

Registriert
24 Apr. 2015
Beiträge
1.689
Ort
AUF DEM MOND
Wie viele KIs wurden denn bisher programmiert?

Textfiles zum Datenaustausch halte ich für ungeeignet.
Ich würde eine Socketverbindung vorschlagen. Websockets sollten in den aller meisten Programmiersprachen recht einfach zu verwenden sein.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Mit welcher Sprache willst du denn etwas umsetzen?
 
Oben