Du bist nicht angemeldet.

Werbeanzeige

TGGC

1x Rätselkönig

Beiträge: 1 657

Beruf: Software Entwickler

  • Private Nachricht senden

61

19.02.2015, 16:16

Du hast da glaube ich noch einen Bug in deinem Framework. Eine KI kann in einem ganz bestimmten Schritt der Simulation den Ball fruehestens erreichen und zwar indem man return K_Right | K_Jump macht, bis sich der Ball das erste Mal bewegt. Wenn beide KIs das machen (wer will dem Gegner schon den ersten Schlag ueberlassen?) dann kann der Ball von niemandem geschlagen werden und es kommt zum Unentschieden. Fuer den Fall sollte ein Tiebreaker her.

David Scherfgen

Administrator

Beiträge: 9 718

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

62

19.02.2015, 16:36

Ich schlage vor, dass dann einfach ein zweiter Ball ins Spiel kommt.

Helmut

5x Contest-Sieger

  • »Helmut« ist der Autor dieses Themas

Beiträge: 691

Wohnort: Bielefeld

  • Private Nachricht senden

63

19.02.2015, 16:40

So ein Tiebreaker dürfte ziemlich schwierig werden, wenn man das Spiel symmetrisch und deterministisch halten will. Aber ich denke nicht, dass das ein Problem ist. Einigermaßen gute KIs werden, wenn nur ein Ball auf dem Feld ist, niemals einen Punkt verlieren. Und sobald ein Ball hinzukommt, gibt es das Problem nicht mehr.
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

Helmut

5x Contest-Sieger

  • »Helmut« ist der Autor dieses Themas

Beiträge: 691

Wohnort: Bielefeld

  • Private Nachricht senden

64

19.02.2015, 16:43

Gut, so kann man sich irren. :) Das mit dem zweiten Ball ist keine schlechte Idee. Ich bau das mal ein.
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

TGGC

1x Rätselkönig

Beiträge: 1 657

Beruf: Software Entwickler

  • Private Nachricht senden

65

19.02.2015, 17:02

Ein zweiter Ball ist doch ein Tiebreaker, der das Spiel asymmetrisch macht. Anderer moeglicher Vorschlag: wenn beide Spieler im Frame n den Ball beruehren, dann hat bei geradem n Spieler A, sonst Spieler B Vor.rang.

@David:
Deine Nachricht enthält folgende zensierte oder falsch geschriebene Wörter: vor.rang? Duden

David Scherfgen

Administrator

Beiträge: 9 718

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

66

19.02.2015, 17:14

Sorry, diese Regel sollte etwas anderes blockieren, war wohl zu allgemein.

Helmut

5x Contest-Sieger

  • »Helmut« ist der Autor dieses Themas

Beiträge: 691

Wohnort: Bielefeld

  • Private Nachricht senden

67

19.02.2015, 17:48

Okay, wenn man den Anfang von der ResetGame Methode in BlobbyVolleyKICode.h folgendermaßen ändert sollte das das Problem lösen:

C-/C++-Quelltext

1
2
3
4
5
void GameState::ResetGame()
{
    ResettingGame = 0;
    NextRoundTimer = Round == 1 ? RoundTime : 0;
    DrawTimer = Round == 1 ? 0 : DrawTime;

Ich habe das Framework auch aktualisiert, aber diese Zeilen zu übernehmen sollte reichen.
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

LetsGo

Alter Hase

Beiträge: 1 434

Beruf: Software Engineer

  • Private Nachricht senden

68

19.02.2015, 18:55

Das Problem ist mir auch schon aufgefallen.
Der Fix hilft bei mir nicht.

BTW: Ich brauch mal ne Gegner KI zum testen, ich hab wirklich nen sehr billigen Ansatz gewählt xD

Zitat von »Chad Fowlder«

Leider hat die Software-Branche viele flache Spezialisten hervorgebracht, die die Bezeichnung Spezialist nur als Entschuldigung dafür verwenden, nur eine Sache zu kennen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »LetsGo« (19.02.2015, 19:05)


KeksX

Community-Fossil

  • Private Nachricht senden

69

19.02.2015, 19:33

Ich glaube da wirst du nicht der einzige sein! Das ist doch auch der Reiz an der ersten Runde :)
WIP Website: kevinheese.de

70

19.02.2015, 19:47

Ich bin mal sehr gespannt auf das Ende der ersten Runde.
Hast du mal überlegt den Code auf github zu stellen, so würde man mehr Überblick über die ganzen Änderungen bekommen ohne immer das Forum durchzulesen.

Vielen Dank für deine Mühe mit dem Contest

Werbeanzeige

Ähnliche Themen