Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Administrator
Das Champion-Prinzip bestraft früh eingereichte KIs, denn diese müssen nach einem Sieg mehr Spiele ungeschlagen überstehen als die spät eingereichten KIs, um bis zum Ende Champion zu bleiben.
In dem Fall wird's tatsächlich stark von der Reihenfolge der Einsendungen abhängig, aber ich glaube nicht, dass der Fall tatsächlich auftreten wird, und wenn doch ist halt ein wenig Glück notwendigBeim Champion-Prinzip gehst du weiterhin davon aus, dass mathematisch gesprochen eine Ordnung auf den KIs existiert. Das ist aber definitiv nicht so. Es kann durchaus sein, dass A gegen B gewinnt und B gegen C, aber A trotzdem gegen C verliert.
Darin sehe ich auch eine potenzielle Gefahr beim Optimieren der eigenen KI. Man sollte eine neue Variante am besten gegen alle vorherigen Varianten antreten lassen, nicht nur gegen die letzte, die man als die bisher beste betrachtet. Sonst wäre es theoretisch möglich, dass man sich insgesamt verschlechtert.
Dafür bleibt die Früheingesandte bei Unentschieden Champion. Und es kann jeder selbst entscheiden, wann er einsendet.
Administrator
Ich werde sowas auf jeden Fall benutzen. Ansonsten werde ich Code generieren, der in etwa die gleiche Funktion erfuellt. Code sind Daten - Daten sind Code. Das ganze hat nur ehh keinen Sinn, weil eine schnelle KI sowieso nicht belohnt wird. Daher faende ich es auch bloed, wenn ich nur 1 KI einreichen darf, da ich evtl. auch mal noch einen Ansatz einreichen moechte, der ganz simpel CPU Zeit verbrennt.Eine Frage habe ich noch. Statische Variablen sind ja verboten, aber wie sieht's mit statischen Konstanten aus? Ich würde gerne ein paar Sachen vorberechnen, die sich prima in ein statisches konstantes Array packen ließen. Die Alternative wäre halt, eine Instanzvariable zu benutzen und die im Konstruktor zu füllen.
Administrator
Heute ist mir das alles nicht mehr die Zeit Wert um Penise zu vergleichen.
Community-Fossil
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.
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.
Werbeanzeige