Programmierwettbewerb

Elfenlied

Mitglied
Hallo!

Wie der Titel vermuten lässt, steht ein Programmierwettbewerb an für ein Spiel namens "Stop´n´Drop".

Dabei muss man sich ein Feld voll Eis vorstellen, dass einbricht sobald man drüber geht (nach einiger Zeit) im Stil von Bomberman (items aufsammeln, Hindernisse, Gegner ausschalten etc.).

Folgende Bedingungen gelten:

* Die KI muss im Spieltyp TrainingGame insgesamt 200 Punkte sammeln.
* Für jeden Zeitschritt, den sie überlebt, erhält sie 1 Punkt.
* Wenn sie eine Gold-Münze einsammelt, erhält sie zusätzliche Punkte.
* Beim Einsammeln von bösen Minus-Münzen werden Punkte abgezogen.
* Exceptions ziehen ebenfalls Punkte ab.
* Java-Reflections sind nicht erlaubt ;-)

Meine Frage ist: Was sind Exceptions in dem zusammenhang? ich hab gelesen, dass das so ne Art Fehlersuchprogramm ist und sie notiert, ohne den Programmierfluss zu unterbrechen. Aber ich versteh nicht wie das mit dem Spiel zusammenhängt?????
Und was sind Java-Reflections???

Zudem würde ich gern von euch wissen, wie man an eine solche Sache herangeht. (Ich will auf keinen Fall, dass jetzt jemand ne KI hier reinschreibt!!! den Spaß will ich für mich haben.)

Ich habe mal gehört, dass man seiner KI das lernen beibringen kann. Wäre das hier sinnvoll?
Ich meine bei Spielen, wo man den schnellsten und besten Weg finden muss verstehe ich das ja, aber die Gegner in diesem Spiel oder auch Bomberman wenn man sich das vorstellt, reagieren ja unterschiedlich.. wie soll die KI dabei genau lernen?! sind meine Denkansätze falsch oder übersehe ich da was? Gebt mir bitte einen Schubs in die richtige Richtung :)
 

AmunRa

Gesperrter Benutzer
Was sind exception in diesem Zusammenhang:

Naja das ist recht einfach erklärt. wEnn du einen Fehler programmierst und daher eine Excpetion geworfen wird.
erkennt das das Programm und zieht dir dafür Punkte ab.
 
T

tröööt

Gast
gut ... man muss als anfänger nicht unbedingt wissen was "Reflections" sind und wofür man sowas nutzen kann ... das ist ein spezial-thema von java mit dem man viel kaputt machen kann ...

aber man sollte , wenn man schon vor hat an einem solchen "programmierwettbewerb" teilzunehmen , als anfänger doch schon wissen was exceptions sind ... und erlich : irgendwie passt die aufgabenstellung nicht ...

Exceptions sind eine besondere möglichkeit in java dem caller bestimmte fehler zu melden ... wobei es checked und unchecked exceptions gibt ...

wenn man sein programm richtig schreibt und auch an den entsprechenden stellen die nötigen prüfungen macht dann sollten diese fehler eigentlich nicht auftreten ... darum passt das irgendwie nicht in die aufgabenstellung ...

und was man bei nem bomberman-clone mit reflections soll ist mir auch rätzelhaft ...

scheint als das der aufgabensteller selbst noch n anfänger ist ... oder zumindest nicht viel von clean-code hält ...
 
G

Gast2

Gast
und was man bei nem bomberman-clone mit reflections soll ist mir auch rätzelhaft ...
Da fallen einem sicherlich nen paar schicke Sachen ein. Ein paat Power-Ups vor die Füße legen, Gegner verschwinden lassen, etc.

wenn man sein programm richtig schreibt und auch an den entsprechenden stellen die nötigen prüfungen macht dann sollten diese fehler eigentlich nicht auftreten ... darum passt das irgendwie nicht in die aufgabenstellung ...
Und wenn man eben sein Programm nicht richtig schreibt und NullPointerExceptions oder ArrayIndexOutOfBoundsExceptions produziert gibts eben Punktabzug. Find ich nachvollziehbar.
 
G

gst

Gast
Da fallen einem sicherlich nen paar schicke Sachen ein. Ein paat Power-Ups vor die Füße legen, Gegner verschwinden lassen, etc.
Das hat jetzt genau was mit Reflection zu tun?
Und wenn man eben sein Programm nicht richtig schreibt und NullPointerExceptions oder ArrayIndexOutOfBoundsExceptions produziert gibts eben Punktabzug. Find ich nachvollziehbar.
Bitte die Aufgabenstellung noch mal lesen. Es geht um den Abzug von Spielpunkten. Mit anderen Worten: Hier sollen wieder mal Exceptions zur Programmsteuerung missbraucht werden. Was sehr schlechter Stil ist.
 
G

Gast2

Gast
Per Reflection könnte man sich Zugriff auf Daten beschaffen, auf die man nicht unbedingt zugreifen sollte.

Es geht hier doch darum für einen Wettbewerb eine KI zu schreiben. Die KI wird bewertet, je nachdem wie gut sie sich verhält (Münzen einsammelt etc.). Hat man schlecht programmiert und schmeißt Exceptions gibts Minuspunkte in der Bewertung. Ich weiß jetzt nicht wo hier "Programmsteuerung" siehst.
 
T

tröööt

Gast
@gst : FULL ACK & QFT

@Eike
dann lies die aufgabenstellung bitte nochmal ...

für exceptions gibt es keine abzüge in der "code-bewertung" ... sondern abzüge von den "spiel-punkten" ... und das ist wie gst schon sagte exception-missbrauch ... worüber ich mich ja auch erst kürzlich sehr negativ ausgelassen habe ...


wobei ich deinen ansatz mit reflections schon verstehe ... man soll halt die KI nicht so schreiben das sie sich über reflections informationen vom spieler beschafft die ein normaler 2 menschlicher gegenspieler nicht bekommen könnte ... in so fern geh ich da dann doch mit ..
 
G

gst

Gast
Per Reflection könnte man sich Zugriff auf Daten beschaffen, auf die man nicht unbedingt zugreifen sollte.
Welchen Sinn sollte das haben? Wenn ich den kompletten Code selbst schreibe, dann mache ich meine Klassen und Objekte so, dass ich das was ich ändern muss auch ändern kann.
Es geht hier doch darum für einen Wettbewerb eine KI zu schreiben. Die KI wird bewertet, je nachdem wie gut sie sich verhält (Münzen einsammelt etc.). Hat man schlecht programmiert und schmeißt Exceptions gibts Minuspunkte in der Bewertung. Ich weiß jetzt nicht wo hier "Programmsteuerung" siehst.
Laut Aufgabenstellung werden die Punkte sicherlich vom Programm selbst gezählt. Der Code ist also am Ende übersät mit:
Java:
try {
    player.doSomething(...);
}
catch (Exception ex) {
    decreaseScore(1);
}
Das ist eindeutig eine Programmsteuerung, da hier Fehlerbehandlung und Programmlogik wild vermischt wird.
 
G

Gast2

Gast
gst hat gesagt.:
Wenn ich den kompletten Code selbst schreibe, [...]
Genau darum gehts ja. Man schreibt eben NICHT das komplette Spiel selbst, sondern nur die KI. Fummelt man da mit Reflections rum, könnte man "schummeln".

gst hat gesagt.:
Laut Aufgabenstellung werden die Punkte sicherlich vom Programm selbst gezählt.
Glaub ich eben nicht ;)
Aber naja, alles nur wilde Spekulationen.
 
T

tröööt

Gast
gut ... auch wenn man den clone nicht komplett selbst schreibt ... so hat man alleine für die anpassung an die vorgegebenen spiel-klassen bestimmt einiges an arbeit ... und da man eine KI nun mal nicht in einer klasse schreibt sicher auch ein paar mehr source-files ...

in wie weit das vom aufgabensteller nun wirklich mit den exceptions gemeint ist (wobei ich immer noch in die richtung gehe wie gst gepostet hat) würde es auch wenig sinn machen den code mit irgendwelchen punkten irgendwie bewerten zu wollen ... und in wie weit dann welche exceptions wie betrachtet werden ... weil alles was checked exceptions angeht MUSS man ja angeben ...

und "Hat man schlecht programmiert und schmeißt Exceptions gibts Minuspunkte in der Bewertung." ist für mich auch irgendwie fragwürdig ... denn wenn ich für mein spiel ne ausschreibung machen würde und mir code exceptions wirft würde ich nicht einfach nur punkte abziehen sondern den code komplett rauswerfen ... da sowas für mich ein deutliches anzeichen für 1) zu geringe erfahrung 2) zu wenig (oder meist überhaupt gar nicht) getestet 3) planung fehlerhaft ... wenn man sich also wirklich ein bewertungssystem einfallen lassen hat und dort für exceptions nur "minuspunkte" verteilt anstatt zu sagen : kollege, so geht das nicht ... dann ist man wohl selbst nicht gerade der beste weil man ja doch bewusst exceptions in kauf nimmt ... wenn halt eine solche "fehlerhafte" KI doch mehr punkte schaffen sollte als eine fehlerfreie ...
 

Elfenlied

Mitglied
Mir ist nicht ganz klar wie ihr das meint mit "schummeln". Inwiefern kann man jetzt schummeln durch Reflections? ich will das jetzt nicht unbewusst machen, deswegen muss ich das nochmal explizit wissen.

Und die Aufgabensteller sind eigentlich Masterstudenten, die sich auf Spiele spezialisiert haben, die durch einflussreiche Unternehmen unterstützt werden HEHE :D aber das nur am Rande.

Und ja ich verstehe das mit der Tiefe der Exceptions auch nicht.. bisschen unklar definiert das ganze. Den Bot für das Trainingslevel hab ich schon geschrieben. Das ist praktisch fertig.. Sprich also.. es geht nicht mehr um die 200 Punkte im Trainigsgame.

Die neuen Parameter wären also praktisch:

* Die KI muss im Spieltyp Normales Game, seine 3 Konkurrenten ausschalten und am meisten Punkte haben
* Für jeden Zeitschritt, den sie überlebt, erhält sie 1 Punkt.
* Wenn sie eine Gold-Münze einsammelt, erhält sie zusätzliche Punkte.
* Beim Einsammeln von bösen Minus-Münzen werden Punkte abgezogen.
* Exceptions ziehen ebenfalls Punkte ab.
* Java-Reflections sind nicht erlaub
 

timbeau

Gesperrter Benutzer
Und was willst DU bei diesem Programmierwettbewerb?

@Reflections: Ich denke die Aufgabensteller wollen sich mit dem ganzen Feld nicht ausienandersetzen, was ich auch verstehen kann.
 
T

tröööt

Gast
wenn man sich die aufgabenstellung mal genau ansieht dann kann man schon denken das mit "punkten" halt "spielpunkte" gemeint sind ... und da machen exceptions überhaupt keinen sinn ...
 

AmunRa

Gesperrter Benutzer
Naja wie ich das sehe


Dessen KI die die meisten Spielpunkte Sammelt gewinnt einfach den Wettbewerb.

bzg. den Exceptions. Ich versteh nicht wo euer Problem liegt.
Der Organisator des Wettbewerbs hatte ein Spiel prgramiert (GUI, Logik und alles was dazu gehört). Für den Wettbewerb hat
er eine Schnittstelle geschaffen durch die er die KIs der Teilnehmer einbinden kann. Der Teilnehmer muss nun uber diese Schnittstelle seine Spielfigur steuern.

Sollte nun die KI einen Fehler enthalten. und wird dadurch von einer Klasse eine Exception geworfen die der Teilnehmer geschrieben hat, sowird ihm einfach ein teil seiner Punkte wieder abgezogen. (Die Spielpunkte sind einfach nur ein automatisches Bewertungssystem, ich nehme mal an, dass man auch Punkte bekommt wenn man einen Gegner ausschaltet).

Daher find ich es schon legitim dies so zu lösen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Programmierwettbewerb Übung Java Basics - Anfänger-Themen 73

Ähnliche Java Themen

Neue Themen


Oben