Chessball

Schick! Was mich am meisten irritiert ist, dass das Brett auf dem Kopf steht, normalerweise stehen die eigenen Steine auf der eigenen Seite.
Das lange denken der ai ist in der Tat … noch etwas hinderlich. Aber da bist du ja dran.

Wie hast du die Schachfiguren gezeichnet? Stammen die aus einer freien Quelle? Oder irgendwie selbst gemacht?

*** Edit ***

Wenn man während die AI denkt, auf Menü klickt, kommt man nicht zum Spiel zurück.

Echt witzig! :smiley:

Und sehr viel schneller als die KI bin ich auch nicht :wink:

Einen kleinen Bug habe ich noch gefunden: Der gegnerische Torwart kam raus, ich habe ihn bedroht und weil er nicht weggegangen ist im nächsten Schritt geschlagen → Tor. Das sollte ja wohl eher nicht passieren.

Challenge accepted :slight_smile: Wenn ich mal etwas Zeit finde versuche ich mich daran!
Es wäre auch spannend, wenn man KI’s gegeneinander antreten lassen könnte.

Vielen Dank fürs Testen und euer Feedback.
Es ist eine neue Version online und in der sind:
1.) das Tutorial wurde neu gemacht
2.) Jetzt könnt ihr eine KI schreiben und laden.
3.) Aus diesem Grund habe ich eine derzeit absolut hässliche Website gebastelt, aber die enthält alles was man braucht um eine KI zu entwickeln.
4.) die Bauern abgeschwächt. Sie können Sie noch so bewegen wie davor, aber nicht mehr so schlagen. Jetzt können sie nur noch diagonal schlagen, wie im richtigen Schach. Dadurch sind sie nicht mehr ganz so stark. Ich denke mal eine richtige Idee. Was sagt ihr?

Als nächstes plane ich jetzt:
1.) Demo Modus
2.) bessere KI
3.) ein Puzzlemodus, wo es verschiedene Startaufstellungen gibt und man ein Tor innerhalb eines oder von zwei Zügen erzielen muss. So lernt man auch gut, welche Züge sinnvoll sind
4.) Android Version draus basteln. Sollte ganz schnell gehen, da ich fast nur noch Bilder nutze

[QUOTE=Crian]Schick! Was mich am meisten irritiert ist, dass das Brett auf dem Kopf steht, normalerweise stehen die eigenen Steine auf der eigenen Seite.
Das lange denken der ai ist in der Tat … noch etwas hinderlich. Aber da bist du ja dran.[/QUOTE]

Korrekt, aber noch dauert es leider zu lange. Aber bin dran.

Stammen aus einer freien Quelle

Das Zwischenmenu gehe ich in der nächsten Version an.

[QUOTE=eitelkalk;129774]…
Einen kleinen Bug habe ich noch gefunden: Der gegnerische Torwart kam raus, ich habe ihn bedroht und weil er nicht weggegangen ist im nächsten Schritt geschlagen → Tor. Das sollte ja wohl eher nicht passieren.[/QUOTE]

Dieser Bug wurde gefixt. =) Danke!

[QUOTE=iFelixxxx;129778]Challenge accepted :slight_smile: Wenn ich mal etwas Zeit finde versuche ich mich daran!
Es wäre auch spannend, wenn man KI’s gegeneinander antreten lassen könnte.[/QUOTE]

Würde mich echt freuen, wenn du Zeit dafür findest. Wie geschrieben auf der Website findest du eine Beschreibung zur Einrichtung und alles was ich selber nutze, um eine zu schreiben. Wenn du fragen hast, aber immer gerne her damit. Und wenn du eine KI hast, auch immer gerne her damit. =)

Eine neue Version ist online.

Was ist neu?

  • Demomodus

Wenn man 5 Sekunden im Hauptmenu wartet, startet ein altes Spiel. So kann man gut lernen wie sich andere anstellen.
Wenn man selber ein Spiel fertig stellt (also eine Partei hat 3 Punkte), dann lädt er es auch hoch. So kommen mi tder Zeit viele spannende Matches hoffentlich online zustande.

Nächste Schritte:

  • Android-Version
  • Puzzle-Mode
  • bessere, schnellere KI

Hä, das mit der AI-API sehe ich ja jetzt erst. Das wäre ja ggf. wirklich mal spannend :smiley: (Wenn ich vieeel mehr Zeit hätte … ). Allgemein finde ich bei solchen „kleinen“ Spielen irgendwelche Solver oder AIs ja meistens interessanter, als das Spiel selbst :smiley: Vielleicht mmal schauen, ob man da schnell was hinkriegen kann…

Sehe ich auch so! (der c’t Asteroids-Wettbewerb war lustig; Sudoku ist nur dazu da, um einen Solver zu schreiben; … :wink: )
Allein mir fehlt die Zeit :frowning:

Sehr spannend.

Eine kleine Anregung, du verwendest turn = 0 als Zeichen, dass weiß am Zug ist und turn = 1 als Zeichen, dass schwarz am Zug ist.
Das könnte man irgendwie hübscher machen.

[ul]
[li] Verwendung eines boolean whiteMove
[/li][li] Verwendung von zwei static final int WHITE und BLACK
[/li][li] Verwendung eines Enums AtMove mit den Werten WHITE und BLACK.
[/li][/ul]

Letztere Option finde ich imho am schönsten. Es ist einfach schade, wenn man immer kurz nachdenken muss, wofür die 0 oder 1 steht. Dazu muss man im Prinzip abfangen, dass jemand 2, -1 oder 42 übergibt.

Was ist mit der Option, das Spielbrett zu drehen, ist da etwas angedacht? Irgendwie steht es für mich auf dem Kopf.

Das Drehen des Spielfeldes kriegen wir natürlich hin.

Die Anmerkung mit der turn Variable ist komplett richtig. Refactor ich gleich mal. Überlege darauf vielleicht doch deine erste Variante zu nehmen mit der boolean Variablen, weil es für die Alpha Beta Suche für mich einfacher wäre. Aber ich schau mal =)

Habe jetzt erst einmal eine Android version gebastelt. Funktioniert schon echt gut. Wenn es jemand testen möchte, auf der Website ist der Download der apk, aber dadurch dass die KI noch so lange benötigt, habe ich mich entschieden es noch nicht in den playstore hochzuladen, deshalb nur eine apk zum Downloaden.

Jetzt voller Fokus auf die KI erst einmal. Sie muss besser und vor allem wesentlich schneller werden

Klar, ich bin gespannt, was du fabrizieren wirst. Das klingt alles schon sehr gut.

[ot]
Ich hatte halt gedacht, man könnte den Enum etwas aufbohren:

    WHITE,
    BLACK;

    public boolean isWhite() {
        return this == WHITE;
    }

    public boolean isBlack() {
        return this == BLACK;
    }
}```

dann lassen sich im Code so hübsch lesbare Dinge schreiben wie ```if (atMove.isWhite()) { ... }``` und ```if (atMove.isBlack()) { ... }```

Das geht mit dem boolean natürlich auch, wobei die Verneinung bei Schwarz dann schon wieder ein wenig schwerer zu lesen ist. Wobei man vermutlich wohl eh ein if-else nutzen wird.

Aber beides ist `if (0 == turn) { ... }` vorzuziehen. *schmunzelt*
[/ot]

So eine neue Version ist online, sowohl Android als auch Desktop Version.

  • viele kleine Fehler wurden beseitigt, die gerade die Android Version ab und zu zum Absturz brachten (und es war nicht möglich den König im Tor zu schlagen :wink: das wurde auch verbessert)
  • die KI hat nun maximal 180 Sekunden Zeit für einen Zug, danach wird einfach der aktuell beste Zug genommen
  • KI ist nun „gesprächiger“, damit man weiß ob sie noch was macht oder nicht
  • theoretisch ist die KI etwas schneller und etwas treffsicherer :wink: ABER sie ist immer noch viel viel zu langsam =( =( =(
  • Nun übernimmt die KI ein Enum anstatt der turn Variable, die ein int war.

Klingt gut, nachher mal testen!

Habe das Spiel vorhin, während einer Hohlstunde in der Schule, mit einem Kumpel getestet. Er findet es sehr genial :wink: aber auch ziemlich kompliziert (habe oft schon nach wenigen Zügen eine kleine Lücke gefunden um ein Tor zu schießen) für Anfänger. Möglicherweise könnte man bei der Aufstellung die Dame noch um ein Feld verschieben, damit sie durch die Springer geschützt ist.

So kurz vor dem Abitur habe ich gerade kaum freie Zeit, werde mich aber wirklich so früh wie möglich daran versuchen, eine eigene KI zu schreiben.

Habe das Spiel auch mal in real ausprobiert. Macht echt Spaß, aber man lernt es echt zu schätzen, die Bereiche angezeigt zu bekommen, wohin man ziehen darf. =)

Ziel war es auch, dass die Runden schnell gehen und nicht wie ein klassisches Schachspiel sehr lange dauern können. Deshalb sind kurze Runden in meinen Augen ok =) Aber die Dame noch eins vor … ja kann man probieren, aber dann kann man den Ball bewegen ohne seine Dame zu bewegen am Anfang. Das muss ich mal austesten, ob dadurch nicht zu viele Vorteile für die weißen ergeben.

Wenn hier ein paar verschiedene KIs entstanden sind, kann man diese ja gegeneinander antreten lassen. Wenn man die nur lange genug spielen lässt, kann man bestimmt sehen, ob das Spiel einen Vorteil für den Startspieler bietet.

Ich habe mal die Website etwas verbessert.

Außerdem gibt es eine neue Version:

  • KI wieder gepimpt … also mehr oder weniger :wink:
  • Puzzlemodus eingebaut. Ziel dabei ist es jeweils innerhalb eines Zuges ein Tor zu erzielen. Soll dazu dienen, die Möglichkeiten besser im richtigen Spiel dann zu erkennen. Also eine Übung
  • Demomodus verbessert
  • Bugs entfernt

Ziele:

  • Android Version genauso pimpen
  • mehr und schwierigere Puzzlelevel
  • und dann geht es an die KI, that neverending story :smiley:

So eine neue Version ist online.

Das ist neu:

  • Die KI macht nun keine sinnlosen Züge mehr, außer sie hat keine andere Wahl :wink:
  • Die KI ist in vielen Fällen schneller. [unnötige Objekte entfernt, schnellere Torerkennung, bessere Heuristik]
  • viele Bugs entfernt. Bin immer wieder überrascht das in einem doch so realtiv kleinen Programm sich so viele Fehler anhäufen können.

Als nächstes:

  • Androidversion auf den gleichen Stand bringen und dann veröffentlichen
  • mehr und schwierigere Puzzlelevel

[ul]
[li]Mir fehlt immer noch die Option zum richtig herum Drehen des Brettes grinst[/li][li]Bei den Puzzeln wäre schön, irgendwo am Rand sehen zu können, welche Seite am Zug ist (vielleicht auch generell)? Edit: Vielleicht sollte der Schriftzug für Schwarz dann schwarz sein?[/li][li]Mir war bis eben nicht ganz klar, wie man zu ziehen hat. Auf deiner Seite steht “In your turn you can move one figure and pass/shoot the ball three times.” Das ist auch nicht verkehrt, aber vielleicht ist es eine Erwähnung wert, dass man nicht erst ziehen und dann schießen muss. Zumindest beim Puzzeln kann man das auch mischen.[/li][li]Mir war nicht klar, dass man auch auf das besetzte Feld im Tor schießen kann (das habe ich rausbekommen, weil ich das erste Puzzle ewig nicht lösen konnte… Ich dachte, wenn da der König drin steht, ist es besetzt.[/li][li] Bei Puzzle 8 verstehe ich nicht, warum Schwarz nicht auf das Schach reagieren muss.[/li][li] Ein Klick auf “random” lässt die Anwendung offenbar einfrieren.[/li][/ul]

Edit: Ach man sieht ja oben, wer am Zug ist… Ups.

Danke für das Testen. =)

[QUOTE=Crian][ul]
[li]Mir fehlt immer noch die Option zum richtig herum Drehen des Brettes grinst[/li][/ul][/QUOTE]
Stimmt da war ja was. =) Na mal schauen ob ich das noch hinbekomme =)

[QUOTE=Crian;131145][ul]
[li]Bei den Puzzeln wäre schön, irgendwo am Rand sehen zu können, welche Seite am Zug ist (vielleicht auch generell)? Edit: Vielleicht sollte der Schriftzug für Schwarz dann schwarz sein?[/li][/ul][/QUOTE]
Das mit dem schwarzen Schriftzug kann ich mal ausprobieren wie das aussieht.

[QUOTE=Crian;131145][ul]
[li]Mir war bis eben nicht ganz klar, wie man zu ziehen hat. Auf deiner Seite steht “In your turn you can move one figure and pass/shoot the ball three times.” Das ist auch nicht verkehrt, aber vielleicht ist es eine Erwähnung wert, dass man nicht erst ziehen und dann schießen muss. Zumindest beim Puzzeln kann man das auch mischen.[/li][/ul][/QUOTE]
Ok, war für mich selbstverständlich. Aber versuche ich mit zu erwähnen. Danke für den Tipp =)

[QUOTE=Crian;131145][ul]
[li]Mir war nicht klar, dass man auch auf das besetzte Feld im Tor schießen kann (das habe ich rausbekommen, weil ich das erste Puzzle ewig nicht lösen konnte… Ich dachte, wenn da der König drin steht, ist es besetzt.[/li][/ul][/QUOTE]
Wie meinst du das? Wenn ein Feld mit dem König besetzt ist, kann man nicht darauf schießen. Daneben kann man schießen aber nicht direkt auf das Feld wo der König steht. Ich habe es gerade noch einmal ausprobiert.

[QUOTE=Crian;131145][ul]
[li] Bei Puzzle 8 verstehe ich nicht, warum Schwarz nicht auf das Schach reagieren muss.[/li][/ul][/QUOTE]
Naja die Regeln sind minimal anders als beim reinen Schach. Da schwarz selber ein Tor schießen kann, ist es egal ob er auf das Schach reagiert oder nicht, weil danach wieder Anfang alles gestellt wird.

[QUOTE=Crian;131145][ul]
[li] Ein Klick auf “random” lässt die Anwendung offenbar einfrieren.[/li][/ul][/QUOTE]
Ne das sollte nicht passieren. Bei mir bzw bei allen sollte ein Zufallspuzzle kommen. Dazu nimmt er aus allen Demoleveln, die er hat, eins heraus und geht zu einer Stelle wo ein Tor gefallen ist und bereitet das Level dafür vor. Klappt bei mir auch gar wunderbar und friert nicht ein. Jetzt muss ich mal schauen ob es vielleicht daran liegt, dass du keine online gespeicherten Level heruntergeladen hast.

So neue Version ist online.

  • Der Fehler beim “Random”-Button wurde entfernt.
  • Außerdem sieht man nun einen schwarzen Schriftzug, wenn schwarz an der Reihe ist. Passt überraschenderweise sehr gut.
  • Es wurde eine easy KI eingefügt, die schon leicht zu besiegen ist, aber halt nicht so lange zum Nachdenken benötigt. Gerade in der Android-Version sehr brauchbar.
    Aus diesem Grund habe ich die Android Version nun offiziell im Playstore veröffentlicht. Irgendwann muss man einfach mal einen Punkt setzen und sagen, so fertig.

Die KI ist aber wie zu erwarten noch nicht fertig. Das wird wahrscheinlich mein never ending project. Habe aber schon viel daran gelernt und werde wahrscheinlich weiter gut daran lernen. =)