• 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.

Programmieraufgabe (3): Bao - Das Steinchenspiel

KaPiTN

♪♪♫ wild at heart ♪♫♫♪

Registriert
14 Juli 2013
Beiträge
29.138
  • Thread Starter Thread Starter
  • #61
So. Taktik war ja, die Kuhle zu nehmen, bei der man die meisten gegnerischen Steine für diese Rund gewinnt.
Bei gleichwertigen Kuhlen habe ich die mit der kleinsten ID genommen, wobei ich von unten rechts im Uhrzeigersinn rechne.

Was ich jetzt gemacht habe, ist dieses Prinzip für beide Spieler anzuwenden.

Das Ergebnis sieht bei mir so aus, daß Spieler A in der 10 Runde gewinnt, weil dann Spieler B keine Steine mehr in seiner Frontreihe hat. Der Spielverlauf sieht wie folgt aus
Runde: 1
Spieler A:
02;02;02;02;02;02;02;02
02;02;02;02;02;02;02;02
02;02;02;02;02;02;02;02
02;02;02;02;02;02;02;[02]

Spieler B:
02;02;02;02;02;02;[02];02
00;02;02;02;02;00;02;02
00;03;03;03;03;00;03;03
03;03;00;03;03;01;04;01


Runde: 2
Spieler A:
05;05;01;05;02;00;01;02
03;02;00;05;01;01;06;01
00;00;00;[03];00;00;03;00
03;03;00;03;03;01;04;01

Spieler B:
05;[05];01;05;02;00;01;02
03;02;00;05;01;01;00;01
01;00;00;00;01;01;00;01
04;04;01;04;04;02;05;02


Runde: 3
Spieler A:
06;01;02;06;03;01;00;03
04;00;01;06;00;02;01;00
01;00;00;00;00;01;00;00
04;04;01;[04];04;02;05;02

Spieler B:
06;01;02;[06];03;01;00;03
00;00;01;06;00;02;01;00
00;01;01;01;01;02;01;00
05;05;02;00;04;02;05;02


Runde: 4
Spieler A:
07;02;03;01;00;03;02;05
01;01;02;00;01;03;01;02
00;01;01;00;01;02;00;00
05;05;[02];00;04;02;05;02

Spieler B:
[07];02;03;01;00;03;02;05
00;01;02;00;01;00;01;02
00;03;03;00;03;01;01;01
01;07;01;01;00;03;06;03


Runde: 5
Spieler A:
01;04;05;00;02;05;00;01
01;02;01;02;03;00;03;04
00;03;00;00;03;00;01;01
01;07;01;01;00;03;[06];03

Spieler B:
01;[04];05;00;02;05;00;01
00;00;01;00;03;00;03;00
00;01;02;00;05;02;03;01
01;09;00;03;02;05;01;04


Runde: 6
Spieler A:
02;01;07;02;00;01;02;03
01;01;02;01;01;02;05;00
00;01;02;00;00;02;03;00
01;09;00;03;02;[05];01;04

Spieler B:
[02];01;07;02;00;01;02;03
01;00;02;01;01;02;05;00
01;00;03;01;01;02;03;00
00;10;01;04;03;00;01;04


Runde: 7
Spieler A:
01;03;01;03;01;02;03;04
00;01;03;02;02;00;06;01
00;00;03;01;01;00;03;00
00;[10];01;04;03;00;01;04

Spieler B:
01;03;01;03;01;02;[03];04
00;00;00;00;00;00;06;00
00;01;02;01;02;01;10;00
05;01;02;05;01;03;00;06


Runde: 8
Spieler A:
00;01;04;06;00;05;01;08
03;03;01;03;00;01;02;01
00;01;00;01;00;00;00;00
05;01;02;[05];01;03;00;06

Spieler B:
00;01;[04];06;00;05;01;08
03;00;01;03;00;01;02;01
01;00;01;02;01;01;01;00
06;02;03;00;01;03;00;06


Runde: 9
Spieler A:
01;01;00;07;01;06;00;09
04;01;00;04;01;00;03;00
01;00;00;02;01;00;01;00
06;[02];03;00;01;03;00;06

Spieler B:
01;01;00;[07];01;06;00;09
00;00;00;04;00;00;00;00
00;01;00;05;01;00;02;03
09;02;01;02;01;05;02;01


Runde: 10
Spieler A:
01;01;00;00;02;07;01;10
00;00;00;04;00;01;01;01
00;01;00;05;01;00;02;03
09;02;01;02;01;[05];02;01


ENDE:
01;01;00;00;02;07;01;10
00;00;00;00;00;00;00;00
03;01;02;01;00;03;00;04
00;09;02;05;03;06;03;00

Als nächstes plane ich für Spieler B nicht alleine den Zug mit dem höchsten Ertrag zu nehmen, sondern es sollten auch möglich wenige Steine nach dem Zug der Frontreihe liegen.
Mal schauen, ob das die Chancen erhöht. Vielleicht kann man durch unterschiedliche Gewichtung der 2 Kriterien eine Unterscheidung zwischen defensiv und offensiv machen?
Ich lasse mich überraschen.

Das Ergebnis poste ich dann zeitnah
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@Kapitn:

Ich bin jetzt nicht wirklich schlauer was du vorhast, auch wenn ich glaube zu verstehen was du jetzt gemacht hast - aber mir erschließt sich der Sinn dahinter noch nicht so ganz ;)
Ich dachte du überprüfst und verifizierst die Funktionalität der Algorithmen hier ;)

Aber schön dass es hier weitergeht :T
 

MingsPing

NGBler

Registriert
15 Juli 2013
Beiträge
347
Sinn dahinter?
Er hat seinen Algorithmus gegen sich selbst antreten lassen und herausgefunden, dass der, der anfängt, gewinnt.

Jetzt möchte er seine KI verbessern, indem er einen Parameter ("möglichst wenige Steine in Frontreihe") einführt.

Ergibt für mich alles einen Sinn :-)

Wenn ich nochmal Lust und Zeit finde, mache ich das erste mit meinem Algo ebenfalls und gebe Bescheid, ob bei mir der erste Spieler auch nach Runde 10 gewinnt! (sollte ja nicht allzu aufwändig sein)
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@MingsPing:

So weit bin ich gar nicht mehr in dem Thema drin... aber ließe sich ändern ;) - Ich hätte aber gedacht dass man anfängt, das auszuwerten, was an Code da ist bzw. die Ergebnisse zu prüfen... ob jemand nochmal ran muß oder ob die Berechnung/das Endergebnis fehlerfrei ist. :)

Bzw. nen Auswertungstool oder ähnlichem für die Ausgaben der Programme :)
 
Zuletzt bearbeitet:

KaPiTN

♪♪♫ wild at heart ♪♫♫♪

Registriert
14 Juli 2013
Beiträge
29.138
  • Thread Starter Thread Starter
  • #65
Ich hätte aber gedacht dass man anfängt, das auszuwerten, was an Code da ist bzw. die Ergebnisse zu prüfen... ob jemand nochmal ran muß oder ob die Berechnung/das Endergebnis fehlerfrei ist. :)

Wieso anfangen? Am 19.4 habe ich das Ergebnis zum Vergleichen gepostet. #19
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Also ich komme da auf ganz andere Ergebnisse als Kapitn/du hier :)

Zu welchem Resultat kommst du, wenn der erste Zug bei * anfängt?
Bzw. verstehe ich auch nicht, welches Feld das bei dir ist, allein durch das Ergebnis ist mir das unklar.

[src=text]2;2;2;2;2;2;2;2
2;2;2;2;0;2;2;2
----------------
2;2;2;2;0*;3;3;3
2;2;2;2;2;2;2;3[/src]

= Ende Zug 1

Und das bekomme ich raus:
[src=text]FINAL PLAYBOARD:
2;2;2;2;2;2;2;2
0;0;2;2;0;2;0;2
----------------
0;1;4;4;2;5;1;4
4;1;4;0;1;4;4;1[/src]
 
Zuletzt bearbeitet:

KaPiTN

♪♪♫ wild at heart ♪♫♫♪

Registriert
14 Juli 2013
Beiträge
29.138
  • Thread Starter Thread Starter
  • #67
Ich verstehe nicht, was Du meinst.
Was ist das für eine Ausgangslage und wie willst Du mit einer Kuhle ohne Steine anfangen?

Die Ergebnisse von #19 sollten richtig sein, weil ich die 16 Möglichkeiten händisch nachgestellt habe, wenn ich mich recht erinnere. So wie ich das verstanden habe, hat CroneKorkN die gleichen Ergebnisse.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@KaPiTN:

Der Stern zeigt wo der Zug anfangen hat, also 2 Steine vom Gegner entnommen, 2 eigene - also 4.
Dann 4 Positionen weitergewandert, wie es sein soll.

Das wäre der erste (nicht komplett beendete) Zug bei mir - also kein vollständiger, nur ein Teil. Der Zug des Spielers ginge ja dann weiter. Mit 3 Steinen im/aus dem eigenen Feld usw...

Und das zweite "final playboard" ist die Ausgangslage mit diesem Anfang (bei mir) ;)
 
Zuletzt bearbeitet:

KaPiTN

♪♪♫ wild at heart ♪♫♫♪

Registriert
14 Juli 2013
Beiträge
29.138
  • Thread Starter Thread Starter
  • #69
Wenn der Zug in der Frontreihe beginnt, wird kein Stein beim Gegner entnommen.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@KaPiTN:

Ahhh.... dann habe ich falsch programmiert. Ich bin davon ausgegangen das ich überall, in der oberen Reihe, meinen Zug anfangen und sofort Steine vom Gegner entnehmen kann...

Das nur Steine entnommen werden können, wenn man schon "im Zug" ist und nicht "am Anfang" war mir nicht klar. Oder ist das auch falsch? :unknown:

Auch wenn das meine Arbeit zu Nichte macht :p

PS: Habe mal auf Github eine neue Version hochgeladen, die diesen Fall berücksichtigt - war nicht sonderlich schwer ;)
 
Zuletzt bearbeitet:

KaPiTN

♪♪♫ wild at heart ♪♫♫♪

Registriert
14 Juli 2013
Beiträge
29.138
  • Thread Starter Thread Starter
  • #71
Wenn ich für den Gegenspieler nicht nur die Kuhle, wähle, wo die meisten gegnerischen Steine erbeutet werden, sondern noch die Bedingung hinzufüge, daß die Kuhle genommen werden soll, wo die wenigsten Steine in der Frontreihe verbleiben, dann findet er überhaupt keine passende Kuhle.
Das ist ist nicht verwunderlich. Es können nicht beide Bedingungen gleichzeitig erfüllt sein.

Also muß man erst eine Ergebnisgruppe bilden, mit möglichst hohen Steinegewinn und dann die Bedingung mit der Frontreihe auf diese Menge anwenden. Mit der Ergebnisgruppe könnte man etwas herumspielen, also nur das schlechteste Ergebnis rauslassen oder auch das 2-schlechteste usw.

Wenn der Gegenspieler alleine die Bedingung mit der Frontreihe beachtet, dann verliert er bereits in der dritten Runde.

Ich schließe nicht aus, daß keine der Möglichkeiten bei der Frontreihe Bedingung dem Spieler B zum Sieg verhilft.

Ich sehe aber ansonsten keine Ansätze für eine Gegenstrategie. Auf der anderen Seite könnten willkürliche Züge des Spielers B zu überraschenden Ergebnissen führen?

Da fällt mir gerade eine Abwehrstrategie ein:
Mann muß aus gut gefüllten Kuhlen der ersten Reihe, die möglichst weit links liegen, die Frontreihe auffüllen.

Also, liebe Teilnehmer und die, die es vielleicht noch werden wollen. Da scheint noch ein wenig Musik im Thema zu sein.
 
Oben