Du bist nicht angemeldet.

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

srcx

Frischling

  • Private Nachricht senden

41

17.08.2008, 18:00

Nach dem Motto: "Bei einem Unentschieden zählt die Kürze des Codes".
Oder so in der Art ;)

PS: Dieser Contest hat mich zur Anmeldung verleitet, vorher habe ich immer nur gelesen ;)

David Scherfgen

Administrator

  • »David Scherfgen« ist der Autor dieses Themas

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

42

17.08.2008, 18:30

So, es gibt nochmal ein Update.
Die Simulation wird jetzt immer nur so weit gerechnet, bis der Ball wieder gegen eine Wand fliegt oder zu einer Torlinie kommt. Diese Probleme sollten damit hoffentlich gelöst sein.
Positiver Seiteneffekt: der Code ist wesentlich lesbarer geworden.

@S.Seegel:
Ich muss dir ein wenig widersprechen.
Ab dem Zeitpunkt, wo der Ball schnell genug ist, dass man ihn nicht mehr von jeder Position rechtzeitig aus halten kann, ist Taktik gefragt.
Kann man vorausahnen, wo der Ball hingeht? Dazu ist es nötig, die Bewegung des Gegners vorauszusagen. Und schafft man es, den Ball so treffen, dass er für den Gegner unhaltbar wird?
Ganz so einfach ist es also gar nicht.

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

43

17.08.2008, 19:02

@David
ich würde S.Seegel zustimmen, denn wenn man zu dem Zeitpunkt, wo der Gegner schießt, in der Mitte steht, kann man den Ball immer erreichen, egal wo und wie schnell der Gegner schießt und wie schnell der Ball ist.
Ich würde das Problem so lösen, dass die Geschwindigkeit des Balls bei jedem Punkt zurückgesetzt wird und der Ball mit jedem Schlag schneller wird. So wird garantiert, dass man den Ball beim Aufschlag erreichen kann (sonst wärs reiner Zufall, ob man gleich beim Anfang einen Punkt abgibt) und dass jemand den Ball irgendwann nicht mehr erreichen kann (der, der zu kurz vorausrechnet).
Außerdem müssten die, die schon angefangen haben, mit dieser Änderung ganz gut zurechtkommen können...

Ciao

EDIT: OK, du hast es ja schon genauso eingebaut. Ich sollte in den Code gucken, bevor ich poste...

EDIT2:
Wen das Flackern des Bildschirms beim Start der Anwendung nervt kann die Anweisung ::wnd = wnd; bei WM_CREATE in der Win32 Datei einfügen.

Ciao
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)

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

44

17.08.2008, 19:15

Wieso wirkt sich jetzt die Schlägergeschwindigkeit nicht mehr auf den Ball aus? Damit ist ja Anschneiden etc. vollkommen witzlos?!? Eine KI, die den Ball nur hält, werden wohl die meisten bereits haben.
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

David Scherfgen

Administrator

  • »David Scherfgen« ist der Autor dieses Themas

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

45

17.08.2008, 19:24

Autsch, dummer Fehler.
Der Code war bei der Umstrukturierung mit den variablen Zeitschritten abhanden gekommen.
Sorry, wird sofort korrigiert! :oops:
Hoffentlich habe ich durch die vielen Änderungen nicht zu viele Leute vertrieben.

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

46

17.08.2008, 20:47

Zitat von »"Daid_Scherfgen"«

Hoffentlich habe ich durch die vielen Änderungen nicht zu viele Leute vertrieben.


quatsch, sicher nicht

mittlerweile ist auch meine KI recht angriffslustig macht euch auf was gefasst :p nur das timing stimmt oftmals noch nicht, sodass ich noch recht viele tore kassiere.

47

17.08.2008, 22:11

Ich weiss grad net mit welcher Version, aber so sieht grad mein Punktestand aus: Referenz 18:100 Ich (11951). Leider hat meine KI ab und an Aussetzer, ich arbeite dran :-). Ich danke fuer die Kommentare im Code. Und irgendwie wirkt die neue Version schneller, leider ruckelt sie bei mir manchmal etwas.

48

17.08.2008, 23:28

Zitat von »"TrommlBomml"«

Zitat von »"Daid_Scherfgen"«

Hoffentlich habe ich durch die vielen Änderungen nicht zu viele Leute vertrieben.


quatsch, sicher nicht

mittlerweile ist auch meine KI recht angriffslustig macht euch auf was gefasst :p nur das timing stimmt oftmals noch nicht, sodass ich noch recht viele tore kassiere.
Pff... recht angriffslustig? Raketenwenwerfer ist nix gegen meine KI ;) maximales Driftmoment und perfektes Timing :D Macht euch auf was gefasst :)

@knivil
Das hatte ich auch in den alten Versionen. In der neuesten ist allerdings die Kollisionsabfrage mit dem Paddle und der Wand verbessert worden und nun funktionierts, bei mir zumindes, einwandfrei... Bis auf die Tatsache, dass das Spiel nach ca. 2000 - 4000 Frames abstürzt, wenn ich meine KI gegen sich selbst spielen lasse^^

49

18.08.2008, 10:21

Nach 4000 Frames, hmm, muss wohl an deiner KI liegen :-). Vielleicht langweilt sie sich zu tode. Mittlerweile spielt meine auch perfekt gegen die Referenz, ist aber nicht mehr so aggressiv. Gegen sich selbst: Dunkles Selbst 100:99 Ich (453839). Wobei mein Dunkles Selbst auf der linken Seite immer gewinnt. Ab etwa 2000 Frames wirds lustig, man sieht den Ball nur noch an der oberen bzw. unteren Kante auftauchen. Dann kommen die Ungenauigkeiten von float ins Spiel und das Endergebnis ist rein zufaellig. Ich werde mal ne HumanKI bauen, wenn ich wieder zu Hause bin, damit man auch gegen seine KI spielen kann.

50

18.08.2008, 11:49

Zitat von »"knivil"«

Nach 4000 Frames, hmm, muss wohl an deiner KI liegen :-). Vielleicht langweilt sie sich zu tode. Mittlerweile spielt meine auch perfekt gegen die Referenz, ist aber nicht mehr so aggressiv. Gegen sich selbst: Dunkles Selbst 100:99 Ich (453839). Wobei mein Dunkles Selbst auf der linken Seite immer gewinnt. Ab etwa 2000 Frames wirds lustig, man sieht den Ball nur noch an der oberen bzw. unteren Kante auftauchen. Dann kommen die Ungenauigkeiten von float ins Spiel und das Endergebnis ist rein zufaellig. Ich werde mal ne HumanKI bauen, wenn ich wieder zu Hause bin, damit man auch gegen seine KI spielen kann.
Immerhin hat es bei dir ne Regelmäßigkeit. Meine KI (Problem ist gefunden und behoben) hat gegen sich selbst bisher so gespielt:
89:100
100:88
100:81
100:62
94:100
Insgesamt gewinnt links allerdings öfter :)

Werbeanzeige