Du bist nicht angemeldet.

Werbeanzeige

DeKugelschieber

Community-Fossil

Beiträge: 2 629

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

81

20.02.2015, 10:49

So langsam fange ich an zu verstehen warum sich so viele über Bambi aufregen.
MfG Marvin

KeksX

Community-Fossil

  • Private Nachricht senden

82

20.02.2015, 11:09

*Zieht den Reißverschluss wieder zu* Hosen jetzt also anlassen, oder wie? Na gut...

@Bambi:
Ich finds ziemlich spannend, ehrlich gesagt, und es ist ein spielender Einstieg in die Entwicklung von KIs. Zumindest für mich! Nach der ersten Runde werde ich definitiv schlauer sein. :)

Außerdem ist competition immer lustig, man darf es halt nur nicht zu ernst nehmen. Wieso machst du nicht einfach mit?
WIP Website: kevinheese.de

Helmut

5x Contest-Sieger

  • »Helmut« ist der Autor dieses Themas

Beiträge: 691

Wohnort: Bielefeld

  • Private Nachricht senden

83

20.02.2015, 12:47

Also na gut, dann lassen wir halt jeden gegen jeden spielen :) Sagen wir 2 Punkte für Sieg und einen Punkt für jeden bei Unentschieden. So bleibt die Summe der Punkte pro Spiel gleich. Oder gibt's jemanden, der doch das Championverfahren will?

@TGGC
Ja, du kannst gerne mehrere Einsendungen machen.

David, ich klau mir dann deine HTMLgenerierfunktion für die Tabellenherstellung aus früheren Contests, wenn du nichts dagegen hast? Ich hab zwar schon einiges geklaut, aber nicht so ein großes Stück Code :)

Zur Sache mit den statischen Variablen: Ja, natürlich darf man konstante statische Member anlegen. Daran hatte ich nicht gedacht. Die Regel sollte nur sicherstellen, dass man eine KI gegen sich selbst spielen lassen kann.

Hier noch eine Frage zum Speicherverbrauch aus zfx.info:

Zitat von »"Alexander Kornrumpf"«

Wie wirst du prüfen ob nur 100MB allokiert wurden?

Ich breche die Frage auf ein paar cases runter:

1) Meine Klasse macht nichts anderes als einmal bei Konstruktion [cn]malloc(1024*1024*100)[/cn]. OK?
2) Meine Klasse macht nichts anderes als einmal bei Konstruktion [cn]void* p = malloc(1024*1024*100)[/cn]. OK?
3) Falls 2 nicht ok ist, wie steht es mit [cn]void* p = malloc(1024*1024*100-sizeof(p))[/cn]?
4) Falls 1-3 nicht ok ist, wie steht es mit dem C++ äquivalent? Was ist überhaupt das C++ Äquivalent? [cn]new char[1024*1024*100][/cn]?
5) Was ist mit [cn]const char* = "gibberish, continues for 1024*1024*100 characters. If you like make that -1 to accout for terminal 0 ..."[/cn]?
6) Falls 5 ok, was ist mit [cn]const char* = "gibberish for more than 100 MB"[/cn]?
7) Falls 5 oder 6 nicht ok, was ist mit einer (generierten) Funktion der folgenden Art

[cn]char fake_const_array(size_t index)
{
switch (index)
{
case 0: return 'g';
case 1: return 'i';
case 2: return 'b';
case 3: return 'b';
//usw.
}
}[/cn]


Ich denke man kann erkennen, was ich damit abklopfen will.

Also erstens denke ich nicht, dass überhaupt eine KI so speicherhungrig sein wird, zweitens werde ich im Zweifel die KI natürlich nicht disqualifizieren, wenn sie ein MB zu viel allokiert. Wenn jemand eine KI schreibt, die tatsächlich ans Limit kommt, kann er mir die auch gerne zuschicken und vor Ende der Runde fragen, ob sie ok ist, aber wie gesagt denke ich nicht, dass es dazu überhaupt kommt.
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

84

20.02.2015, 12:49

Ich muss David da Recht geben. Wenn man weiß wer der Champion ist kann man seine KI ja spezialisieren.
Oft muss man nur einen Parameter anpassen und gewinnt dadurch, verliert dafür halt gegen andere. Das wäre dann schon unfair.

Ansonsten, wenn ich meine KI gegen sich selbst antreten lasse hab ich schon noch den Bug, außerdem bleibt der Ball auch manchmal in der Mitte liegen(was wiederum nicht so dramatisch ist).
Wenn man an der Framerate rumschraubt, stimmen die Zeiten nicht bzw. selbst wenn man nichts ändert sind die Sekunden keine Sekunden. Ist aber alles halb so wild, wollte es nur mal erwähnt haben.

@Bambi
Es gibt immer welche, die zeigen wollen, dass Sie die Cracks sind, aber das ist immer noch besser als alles schlecht zu reden, ohne überhaupt mitgemacht zu haben.
Kann doch dir egal sein, ob jemand seine komplette Freizeit dafür aufopfert.

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« (20.02.2015, 12:54)


Helmut

5x Contest-Sieger

  • »Helmut« ist der Autor dieses Themas

Beiträge: 691

Wohnort: Bielefeld

  • Private Nachricht senden

85

20.02.2015, 13:25

Ansonsten, wenn ich meine KI gegen sich selbst antreten lasse hab ich schon noch den Bug, außerdem bleibt der Ball auch manchmal in der Mitte liegen(was wiederum nicht so dramatisch ist).
Wenn man an der Framerate rumschraubt, stimmen die Zeiten nicht bzw. selbst wenn man nichts ändert sind die Sekunden keine Sekunden. Ist aber alles halb so wild, wollte es nur mal erwähnt haben.

Kannst du mal genauer beschreiben, was du da als Bug ansiehst? Du hast mir ja auch schon deinen Code geschickt, aber ich seh's einfach nicht.

Zum Ball in der Mitte: Also es ist so, wenn 1 Ball zwei Objekte gleichzeitig trifft, obs nun 2 Spieler und 1 Ball oder 3 Bälle sind, dann funktioniert die Kollisionserkennung nicht. Dann fliegen die Objekte einfach durcheinander hindurch. Der Grund dafür ist einfach, dass es verhältnismäßig aufwändig ist den Fall zu berücksichtigen, er aber so selten auftritt. Für die KI Entwicklung spielt er auch keine Rolle. Nur wenn man ne KI gegen sich selbst spielen lässt imponiert das halt visuell. Den Bug zu fixen würde da aber auch nichts am Spielgeschehen ändern.

Und ja, Spielsekunden sind nicht echte Sekunden, selbst wenn die KIs schnell genug sind. Ich hatte gehofft, dass das nicht auffällt. :) Der Grund ist einfach, dass ich WM_TIMER zur Synchronisation benutze und die Genauigkeit einfach nicht genug ist. Das ist mir kurz vor Beginn aufgefallen, ich hatte dann aber keine Lust mehr alles umzuschmeißen. Zumal es nicht wirklich relevant ist und in StarcraftII beispielsweise laufen Spielsekunden auch nicht in echten Sekunden :)
(Die Zeitmessung der KI ist davon nicht betroffen, nur die Visualisierung unter Windows ist davon betroffen)
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

86

20.02.2015, 14:25

"Zum Ball in der Mitte: Also es ist so, wenn 1 Ball zwei Objekte gleichzeitig trifft, obs nun 2 Spieler und 1 Ball oder 3 Bälle sind, dann funktioniert die Kollisionserkennung nicht. "
Ich denke darauf lässt es sich zurückführen. Aber ich denke nicht, dass das wirklich relevant ist, wird vermutlich nicht passieren, wenn unterschiedliche KIs gegeneinander spielen.

Mir ist das nur aufgefallen, weil ich das ganze beschleunigen wollte und mal auf 200FPS gestellt habe. Das Spiel ist schneller gelaufen, aber die Timer stimmen nicht mehr.

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.

TGGC

1x Rätselkönig

Beiträge: 1 657

Beruf: Software Entwickler

  • Private Nachricht senden

87

20.02.2015, 14:34

Ich denke darauf lässt es sich zurückführen. Aber ich denke nicht, dass das wirklich relevant ist, wird vermutlich nicht passieren, wenn unterschiedliche KIs gegeneinander spielen.
Ich denke schon, dass dies sehr schnell passieren kann. Naemlich genau dann, wenn beiden KIs versuchen schnellstmoeglich den ersten Ball zu schlagen, das ist jetzt kein so ungewoehnlicher Ansatz.

LetsGo

Alter Hase

Beiträge: 1 434

Beruf: Software Engineer

  • Private Nachricht senden

88

20.02.2015, 14:37

Stimmt auch wieder, war nämlich auch mein Gedanke. Naja es wird sich schon ne Lösung finden.

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.

David Scherfgen

Administrator

Beiträge: 9 718

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

89

20.02.2015, 14:39

Aber dann geht's doch automatisch nach 5 Sekunden in die nächste Runde mit 2 Bällen.
Und dann ist es ja kein Problem mehr.
Oder verpasse ich da was?

TGGC

1x Rätselkönig

Beiträge: 1 657

Beruf: Software Entwickler

  • Private Nachricht senden

90

20.02.2015, 15:21

Wenn das jetzt schon so eingebaut wurde, hab mir das noch nicht wieder angeschaut.

Werbeanzeige

Ähnliche Themen