Robot Karol Pyramide

08/26/2011 23:05 Z0ndan#1
Hallo epvp,

ich mache momentan eine schulische Ausbildung zum TA.
Und im Fach AW(Proggen) fangen wir am Anfang vor C++
mit Robot Karol an.

Und nun muss ich eine Pyramide bauen, die auf jede Weltgröße
funktioniert.

Hat jemand vllt sowas am besten mit Kommentaren zu kniffligen
oder besonderes Wichtigen Stellen/Anweisungen/Bedingungen?

Wäre verdammt freundlich.

LG
08/27/2011 01:17 Snake124#2
Code:
Anweisung Umdrehen
  Schnell
  LinksDrehen
  LinksDrehen
  Langsam
*Anweisung

Anweisung Unterlegen
  Schnell
  Schritt
  Umdrehen
  Hinlegen
  Umdrehen
  Langsam
*Anweisung

Anweisung Diagonal_1
  Schritt
  LinksDrehen
  Schritt
  RechtsDrehen
*Anweisung

Anweisung Kranz
  wiederhole 4 mal
    solange NichtIstWand tue
      Hinlegen
      Schritt
      MarkeSetzen
    *solange
    LinksDrehen
  *wiederhole
  Diagonal_1
*Anweisung

Anweisung KranzFuellen
  Schnell
  solange NichtIstMarke tue
    Unterlegen
    wenn IstMarke dann
      LinksDrehen
      Schritt
      LinksDrehen
      Schritt
      solange NichtIstMarke tue
        Schritt
      *solange
      Umdrehen
      Schritt
    *wenn
  *solange
  RechtsDrehen
  Schritt
  RechtsDrehen
  Schritt
  Langsam
*Anweisung

Anweisung Pyramidenring
  wiederhole 4 mal
    solange NichtIstMarke tue
      MarkeSetzen
      Unterlegen
    *solange
    Umdrehen
    Schritt
    RechtsDrehen
    Schritt
  *wiederhole
*Anweisung

Anweisung Ausgangsposition
  wiederhole 2 mal
    solange NichtIstWand tue
      Schritt
    *solange
    LinksDrehen
  *wiederhole
*Anweisung

Anweisung ZumStart
  RechtsDrehen
  wiederhole 2 mal
    solange NichtIstWand tue
      Schritt
    *solange
    LinksDrehen
  *wiederhole
*Anweisung

Anweisung KranzMarkeWeg
  wiederhole 4 mal
    solange NichtIstWand tue
      Schritt
      MarkeLöschen
    *solange
    LinksDrehen
  *wiederhole
*Anweisung

Anweisung RingMarkeWeg
  wiederhole 4 mal
    solange IstMarke tue
      MarkeLöschen
      Schritt
    *solange
    Umdrehen
    Schritt
    RechtsDrehen
    Schritt
  *wiederhole
  LinksDrehen
  wenn IstMarke dann
    RechtsDrehen
  sonst Umdrehen
    Schritt
  *wenn
*Anweisung

Programm
  Kranz
  KranzFuellen
  solange NichtIstMarke tue
    Pyramidenring
    KranzFuellen
  *solange
  Ausgangsposition
  KranzMarkeWeg
  Diagonal_1
  solange IstMarke tue
    RingMarkeWeg
  *solange
  ZumStart
*Programm