Kennt sich jemand mit Greenfoot bzw. programmieren aus?

Hier der Code - (programmieren, Informatik, Code)

1 Antwort

Hast du dich denn bereits mit Themen wie switch-case und Schleifen befasst? Ich würde die Aktionen nämlich durch eine Kontrollstruktur in einen Prozess eingliedern. In Pseudo-Code:

for (i = 0; i < 4; ++i)
  switch (i)
    case 0:
      tuDies();
      break;
    case 1:
      tuDas();
      break;
    case 2:
      tuJenes();
      break;
    case 3:
      tuSolches();
      break;
    
  if (energie < 40)
    ladeAuf();

Deine Methodenaufrufe ordnest du in einem switch-case an. Die Schleife iteriert so lange, bis jede Methode einmal ausgeführt wurde. Am Ende einer jeden Iteration wird der Energiestand abgefragt und je nachdem wieder aufgefüllt.


FunnyMan321 
Beitragsersteller
 28.10.2017, 20:23

Ja, es funktioniert so :DDDD  aber versteh ich das richtig? Am ende wird der Code jetzt doppelt so lang sein wie davor, weil ja für jeden Methodenaufruf noch eine Zeile für die "case" dazu kommt oder?

0
regex9  28.10.2017, 20:30
@FunnyMan321

Dein Code wird definitiv länger, nur nicht so lang wie mit einer stur imperativen Lösung.

1
FunnyMan321 
Beitragsersteller
 28.10.2017, 20:51
@regex9

Okay :D, danke nochmal für die Hilfe, mein Code ist jetzt zwar doppelt so lang wie davor, obwohl er nur um 5 Zeilen hätte länger sein müssen wenn ich einfach manuell 5x, gleichmäßig verteilt in den Code benutze("Akku"); geschrieben hätte ohne das er die Energie abfrägt sondern einfach einen Akku benutzt, aber so ist es um einiges professioneller. Danke

0
regex9  28.10.2017, 20:59
@FunnyMan321

(...) jedoch reicht sein Akku nicht aus um das alles zu machen also muss er immer wieder einen Akku benutzen.

Also hat der Ersatzakku unendlich viel Energie? Die Aufgabenstellung scheint dann nicht so recht klar, wenn die Energieabfrage doch nicht notwendig ist.

1
FunnyMan321 
Beitragsersteller
 28.10.2017, 21:13
@regex9

Also er hat sozusagen 100 Akku Punkte und wenn er etwas macht verbraucht er die, und wenn er dann einen Akku benutzt füllen sich 40 dieser Akku Punkte wieder auf, und es kann halt nicht über 100 gehen. Also muss der Roboter immer wieder einen Akku benutzen weil wenn er 0 Akku Punkte hat kann er sich nicht mehr bewegen, und in dem Szenario habe ich 5 Akkus zur Verfügung und um alle Aufgaben zu erfüllen brauche ich, glaube ich so um die 240 Akku Punkte also muss er halt immer wieder einen Akku benutzen. Ich hab es aber nicht gemocht das in meinem Code quer verteilt ohne wirkliches Nachdenken immer wieder ein  benutze("Akku"); stand also hab ich gefragt wie ich es professioneller machen kann, also halt so wie es jetzt ist dass er sobald seine Energie auf 60 Punkten ist er einen Akku benutzt. Ich weiß nicht ob das verständlich ist aber ja :D

0