Foren » 31. BwInf

Turnierserver / Java

    • 7 Beiträge
    2. Februar 2013 17:47:45 CET

    Halla liebe BWINF-Community,

     

    Ich programmiere eigentlich in C++ und muss zu meinem Leid mich nun an Java gewöhnen.

    Eine Zeile in meiner Dummy-KI bereitet mir nun Sorgen:

     

          int myx = zustand.Kaefer.x();        

     

    Sie erzeugt den folgenden Fehler:

     

    src/AI.java:98: error: unexpected type
          int myx = zustand.Kaefer.x();        
                    ^
      required: class,package
      found:    variable
    src/AI.java:98: error: non-static method x() cannot be referenced from a static context
          int myx = zustand.Kaefer.x();        
                                  ^

     

    Hat jemand eine Idee woran das liegen könnte? Meine Nachforschungen haben ergeben, dass "unexpected type" auftritt, wenn bspw. einer int-Variable etwas anderes als int zuzuweisen versucht wird -- rufe ich das ganze falsch auf oder was?

     

    Im übrigen fände ich es doch schon komfortabler, wenn die Leitung mal ein paar Beispielcodes veröffentlichen würde... ich finde es nicht akzeptabel, sich mit solchen Dingen rumschlagen zu müssen, darin soll ja schließlich auch nicht die Leistung des Wettbewerbes bestehen.

    • 22 Beiträge
    2. Februar 2013 22:52:27 CET

    Ich kenne mich jetzt in Java nicht besonders aus, benutze normalerweise auch eine andere Sprache.

     

    Ich würde trotzdem mal behaupten, dass der Fehler darin liegt, dass du nicht auf eine Instanz deines Käfers zugreifst, sondern auf die Klasse selbst.

     

    Edit: Der letzten Anmerkung kann ich zustimmen. Es war anfangs für mich relativ schwirieg, ohne Kentnisse in Java oder Python, nur mit Hilfe dieser knappen Kommentare irgendetwas sinvolles zu bewerkstelligen.


    Dieser Beitrag wurde am 2. Februar 2013 23:05:34 CET von Simon - bearbeitet
    • 7 Beiträge
    2. Februar 2013 23:54:06 CET
    Tja, was soll ich sagen -- bin auf Python umgestiegen. Find ich persönlich viel simpler, und somit hat sich für mich mal wieder bestätigt, dass Java der letzte Dreck ist.

    Dafür eine nächste Frage:
    online klappt das kompilieren -- aber bei der ESU.jar kommt der Fehler "src\AI AIManager.py KOMPILIERUNG FEHLGESCHLAGEN", obwohl Python installiert und in der Pathvariablen drin ist...
    tips?
    • 8 Beiträge
    4. Februar 2013 17:59:20 CET
    Falls du doch wieder in Java weitermachen möchtest, hier die Lösung für dein Problem.

    Mit deiner Codezeiler greifst du auf eine nicht statische Methode über die Klasse zu. Das allein kann schon mal nicht funktionieren. Dann aber greift du auf diese Klasse über eine Objektreferenz zu, was noch ein weiterer Fehler ist.

    Richtig wäre es, dir die Käfer Liste des Zustand Objektes zu besorgen und deinen Käfer über deine ID zu finden.

    In etwas so(ohne den Test, ob der Käfer dir gehört)

    Kaefer myBug = zustand.kaeferListe().get(0);