# fehlermeldung



## Heyoka955 (23. Mai 2019)

ich kriege dauernd eine Fehlermeldung, ich versuche hier zwei Objekte herzustellen die einen Integer als Instanz haben, wir dürfen leider keine primiten Datentypen verwenden daher muss ich alles wrappen.

Ich habe zwei Objekte laenge und breite jeweils von denen haben einen gewrappten Integer und ich kriege leider eine Fehlermeldung. Wie kann ich diesen fehler beheben

Ich will diese zwei Objekte in der karte als parameter übergeben. Ich darf in der klasse mars leider nur eine Instanzvatiabe machen und das ist die jene datenstruktur.

Wir sollen nach objekt calisthenics programmieren.


----------



## Heyoka955 (23. Mai 2019)

```
public class Startk {

  public static void main(String[] args) {
    
      
    Mars karte = new Mars(new Breite(80),new Laenge(20)); //erstelle das Objekt mars mit jeweiligen lange und breite für die koordiaten.
    //karte.erstelleKarte();
    
  }

}
class Koordinaten{
     Breite breite;
     Laenge laenge;
    
    
    public Koordinaten(Breite breite, Laenge laenge){
        this.breite = breite;
        this.laenge = laenge;
        
    }
    
    
}

class Mars extends Koordinaten{
    // eine private Datenstruktur die ein 2d Spielfeld erzeugen kann als Attribut
    
    
    
    public Mars(Breite breite, Laenge laenge){
        this.breite = breite;
        this.laenge = laenge;
        
    }
    
        
    
    
    
}
class Breite{
    Integer breite;
    
    public Breite(Integer breite){
        this.breite = breite;
        
        
    }
    
    
    
}

class Laenge{
    Integer laenge;
    
    public Laenge(Integer laenge){
        this.laenge = laenge;
        
        
    }
    
    
    
}


// ich habe alles in einer klasse verpackt, werde es aber später umändern
```


----------



## Robat (23. Mai 2019)

Du musst in Mars den Konstruktor der Superklasse (Koordinaten) aufrufen.
Wobei ich mich Frage warum Mars von Koordinaten erbt.


----------



## Heyoka955 (23. Mai 2019)

Robat hat gesagt.:


> Du musst in Mars den Konstruktor der Superklasse (Koordinaten) aufrufen.
> Wobei ich mich Frage warum Mars von Koordinaten erbt.


weil ich nicht mehr als zwei Instanzen machen darf.
ich kann dir die aufgabe gerne zeigen.

aber das ist schon hohes Niveau.


----------



## Robat (23. Mai 2019)

Heyoka955 hat gesagt.:


> ich kann dir die aufgabe gerne zeigen.


Mach mal bitte


----------



## Heyoka955 (23. Mai 2019)

wir müssen uns erstmal an diese regeln halten: https://williamdurand.fr/2013/06/03/object-calisthenics/


```
== Aufgabenstellung
Sie sollen einen Rover wie in Projekt 1 unter Beachtung der in aufgeführten Regeln umsetzen. Der Rover soll auf der Oberfläche eines mit Hindernissen übersähten Planeten fahren können, ohne mit einem Hindernis zu kollidieren. Im Gegensatz zu Projekt 1 wollen wir folgende Vereinfachungen annehmen:

1 Der Roboter muss nur geradeaus fahren
2 Der Rover muss sich nur im Uhrzeigersinn drehen können.
3 Der Rover bekommt sein Programm nicht als Text übergeben, sondern wird durch Methodenaufrufe gesteuert.
4 Die Ausgabe der Welt mit dem Rover soll ähnlich wie in Projekt 1 aussehen, muss aber nicht automatisch nach jedem Kommando erfolgen, sondern kann auch explizit per Methodenaufruf gestartet werden.
5 Etwa 25% der Planetenoberfläche sind mit Hindernissen belegt. Sie können das per Zufall generieren oder fest einkodieren. Wenn Sie einen Zufallsgenerator verwenden ist es *nicht* notwendig, einen Seed (wie in Projekt 1) setzen zu können.
6 Der Rover darf nicht über Hindernisse fahren.

Punkt 1 und 2 sind keine Einschränkung der Handlungsfähigkeit des Rovers, da eine Implementierung der anderen Kommandos trivialerweise aus den vorgegebenen Kommandos abgeleitet werden kann (z.B. rückwärts = 2 Drehungen, vorwärts, zwei Drehungen)

Wie Sie mit Punkt 3 und 4 umgehen, hängt von Ihrer Implementierung ab. Es muss irgendwo in ihrem Programm die Möglichkeit geben den Rover per Methodenaufruf zu bewegen bzw. zu drehen. Außerdem muss es möglich sein, den Planeten mit dem Rover per Methodenaufruf auszugeben. Implementieren Sie eine Beispielsequenz, die den Rover bewegt und den Planeten ausgibt in der main Methode des Programms.

/CODE]
```


Mein Ansatz sieht folgend aus,

ich erstelle in der main Methode die karte als ein objekt und im objekt wird jene datenstruktur als instanzvariable initialisiert, die das Feld realisiert, ich weiß leider nicht welches es sein soll.
und da ich für das Feld, die größe benötige, brauche ich breite und laenge aber da ich nicht mehr als zwei instanzen machen darf, muss ich halt erben.
das ist mein bisheriger ansatz.


----------



## Robat (23. Mai 2019)

Heyoka955 hat gesagt.:


> und da ich für das Feld, die größe benötige, brauche ich breite und laenge aber da ich nicht mehr als zwei instanzen machen darf, muss ich halt erben.


Nein. Der Mars *hat* eine Koordinate. Du sagst gerade, dass der Mars eine Koordinate *ist.* 

```
class Koordinate {
      Breite breite;
      Laenge lange;
}
class Mars {
    Koordinate koordinate;
}
```


----------



## Heyoka955 (23. Mai 2019)

Robat hat gesagt.:


> Nein. Der Mars *hat* eine Koordinate. Du sagst gerade, dass der Mars eine Koordinate *ist.*
> 
> ```
> class Koordinate {
> ...


Verstehe, geht der Ansatz von mir in die richtige Richtung schon? 

Okay wenn ich es so machen soll, wie speichere ich dann die Datenstruktur die für die Karte zuständig ist!

Wir dürfen falls wir eine  Datenstruktur als Attribut einer Klasse wählen sollen, keine anderen Attribute mehr schreiben.
Deswegen wollte ich das vererben.


----------



## Heyoka955 (23. Mai 2019)

Okay dann würde ich es so gestalten 
:

Class Mars{
Private linkedlist karte = new linkedlist()..;

Public void  erstelle(){
   Breite breite = new breite(new Integer(80)); 

Laenge laenge = new laenge(new Integer(20));

//for schleife durchgehen und an jeweilige Position hinzufügen.

}


}



}

Kurz Als Pseudo Code?


----------



## mihe7 (24. Mai 2019)

Mars, Rover, Heyoka955... Dejavu. 

Bevor Du zu programmieren beginnst, solltest Du Dir ein Modell überlegen.


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Mars, Rover, Heyoka955... Dejavu.
> 
> Bevor Du zu programmieren beginnst, solltest Du Dir ein Modell überlegen.


Habe ich nur bis gewissen Grad. Also 
Ich habe zwei Ideen.

Einmal in Form eines streams also ich lese die Karte als eine Text Datei in eine Datenstruktur ein und dann habe ich in der Datenstruktur die Hindernisse und freienflachen gespeichert.

Nachdem ich das gemacht habe mache ich einen Rover mit einem
Wrapper Chary

Diesen Rover versuche ich dann in der Mitte der Text Datei zu platzieren wo die freie Stelle ist.

Das gute ist wir dürfen die Karte selbst festlegen oder Zufalls Generator.

Meine Idee wären für den Anfang so.
Ich will das nicht zu Ende ausdenken denn ich Muss wissen ob das machbar wäre.

Ich würde dann nur mit streams arbeiten


----------



## mihe7 (24. Mai 2019)

Das ist kein Modell. Du musst Dir überlegen, welche Objekte bzw. Klassen Du brauchst, um das Problem objektorientiert zu beschreiben. Es geht zunächst einmal darum, geeignete Abstraktionen zu finden, deren Aufgaben und Zusammenspiel zu verstehen.

Abgesehen davon: was ist denn die Breite/Länge einer Koordinate?


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Das ist kein Modell. Du musst Dir überlegen, welche Objekte bzw. Klassen Du brauchst, um das Problem objektorientiert zu beschreiben. Es geht zunächst einmal darum, geeignete Abstraktionen zu finden, deren Aufgaben und Zusammenspiel zu verstehen.
> 
> Abgesehen davon: was ist denn die Breite/Länge einer Koordinate?


Die Breite und laenge des Feldes.

Ich könnte das in Komponenten aufteilen

also eine Klasse namens mars und in der Klasse wird das spielfeld gespeichert und hergestellt.


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Die Breite und laenge des Feldes.


D. h. Breite und Länge einer Koordinate = Breite und Länge des Feldes - merkst Du was?


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> D. h. Breite und Länge einer Koordinate = Breite und Länge des Feldes - merkst Du was?


Ja Koordinate war überflüssig!!!
Ich hatte das direkt machen können ohne das Objekt Koordinate. Und außerdem sind das völlig verschiedene Sachen zur Ergänzung.


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Ja Koordinate war überflüssig!!!


Das meinte ich nicht. Du wirst vermutlich Koordinaten brauchen, z. B. um die Position des Rovers anzugeben. Worum es mir ging: wenn eine Koordinate eine Position angibt, warum heißen die Attribute der Koordinate dann breite/laenge und wofür stehen die Klassen Breite und Laenge? Das gibt alles keinen Sinn.


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Das meinte ich nicht. Du wirst vermutlich Koordinaten brauchen, z. B. um die Position des Rovers anzugeben. Worum es mir ging: wenn eine Koordinate eine Position angibt, warum heißen die Attribute der Koordinate dann breite/laenge und wofür stehen die Klassen Breite und Laenge? Das gibt alles keinen Sinn.


Deswegen, denke habe da drauf losgelegt.

Ich will die Breite des Feldes und dir lange bestimmen.

Und dafür bräuchte ich keine Koordinate es hätte gereicht wenn ich nur.


Class  {
 Private liste;

Public void(){
Breite b = new breite();
Laenge l = new laenge;
}

Ich könnte die Breite in der Methode initliaieren das für das erschaffen der Karte wäre.



}

Es sollte nicht Koordinate heißen aber ich hatte keinen anderen Namen gefundn.


----------



## mihe7 (24. Mai 2019)

Schreib ich so unverständlich? 



mihe7 hat gesagt.:


> wofür stehen die Klassen Breite und Laenge?


Was ist der Unterschied zwischen Objekten der Klasse Breite und Objekten der Klasse Laenge?


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Schreib ich so unverständlich?
> 
> 
> Was ist der Unterschied zwischen Objekten der Klasse Breite und Objekten der Klasse Laenge?


Die Breite gibt an wie breit das feld ist.also so

=============

Und die laenge gibt an wie tief das Feld ist 

Also so 
========= breite 
|
|
| 
========= breite


----------



## mihe7 (24. Mai 2019)

Du definierst einen Datentyp Breite und einen Datentyp Länge. Frage: was ist der Unterschied zwischen diesen Datentypen? 

Ich kann keinen Unterschied (außer dem Namen) erkennen. Das Konzept ist das gleiche: eine Länge(nangabe). Daher die Frage: wozu brauchst Du verschiedene Datentypen?


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Du definierst einen Datentyp Breite und einen Datentyp Länge. Frage: was ist der Unterschied zwischen diesen Datentypen?
> 
> Ich kann keinen Unterschied (außer dem Namen) erkennen. Das Konzept ist das gleiche: eine Länge(nangabe). Daher die Frage: wozu brauchst Du verschiedene Datentypen?


Weil wir keine primitive Datentypen verwenden dürfen!

Wir müssen alles wrappen.

Wenn es das ist worauf du hinaus wolltest


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Weil wir keine primitive Datentypen verwenden dürfen!


Ich habe nichts von primitiven Datentypen geschrieben.

Warum brauchst Du einen Datentyp für die Breite und einen anderen Datentyp für die Länge?


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Ich habe nichts von primitiven Datentypen geschrieben.
> 
> Warum brauchst Du einen Datentyp für die Breite und einen anderen Datentyp für die Länge?


Weil wir für die laenge und breite datentypen herstellen soll. Es reicht nicht wenn wir nur Wrapper klasse von Typ ihr verwenden. Mit dem Datentyp muss klar sein wozu der steht und die Aufgabe 

Ansonsten weiß ich leider nicht worauf du hinaus willst


----------



## L0oNY (24. Mai 2019)

Ich habe auch einen Datentyp "modeliert": den Strich --> ---
guck mal was ich damit alles machen kann:

----
|    |
|    |
|    |
----

Spontan würde ich sagen, das mihe ungefähr darauf raus will


----------



## Heyoka955 (24. Mai 2019)

L0oNY hat gesagt.:


> Ich habe auch einen Datentyp "modeliert": den Strich --> ---
> guck mal was ich damit alles machen kann:
> 
> ----
> ...


Dass ich die Datentypen als Hindernisse verwenden kann?


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Dass ich die Datentypen als Hindernisse verwenden kann?


Neiiiiiin. Um das Beispiel von @L0oNY aufzugreifen: warum brauchst Du jetzt keine Datentypen HorizontalerStrich, VertikalerStrich? Oder LinkeHorizontalerStrichGanzOben wäre ja auch noch eine Idee für eine Klasse...


----------



## flopalko (24. Mai 2019)

Heyoka955 hat gesagt.:


> Dass ich die Datentypen als Hindernisse verwenden kann?


Das wird wieder ein lustiger Thread...


----------



## mihe7 (24. Mai 2019)

flopalko hat gesagt.:


> Das wird wieder ein lustiger Thread...


Jaaaaa  Es ist unglaublich.


----------



## kneitzel (24. Mai 2019)

mihe7 hat gesagt.:


> Jaaaaa  Es ist unglaublich.



Ich würde ja sagen, dass ich euch bemitleide. Aber ich helfe euch, denn ich habe einen Code-Generator gebaut. Der baut für Ihn eine Lösung mit ganz vielen Klassen: Breite1, Breite2, Breite3, ..., Breite1000, Hoehe1, Hoehe2, .... Hoehe1000. 
Und dann natürlich noch 1.0000.000 Klassen mi RoverAufXUndY wobei X und Y jeweils von 1...1000 gehen.

Und dann gibt es noch Code, der ein Textfile mit Hindernissen einliest und daraus dann Klassen Erzeugt: HindernisAufXUndY - so da halt auf der Kooridnate X,Y ein Hindernis war.

Ich denke, da haben wir dann eine sehr gute Lösung ... Objektorientiert heißt doch, dass man ein Problem in viele Klassen unterteilen soll...

Und jetzt muss man eigentlich gar keine Instanz mehr erzeugen ... Ach Mist ... Objektorientiert könnte ja bedeuten, dass man auch Objekte erzeugen sollte ... egal!

Und von euch darf jetzt nur keiner Anmerken, dass das Laden einer Klasse ja auch eine Instanz erzeugt. Das wäre gemein und würde meine schöne Lösungsidee zunichte machen...

Und jetzt wäre meine Frage: Ist einer von euch so verrückt, Mal eine Lösung mit diesem Ansatz zu probieren? Mit Reflection sollte das ja gehen... Statt einer Position wird dann halt nur eine Referenz auf eine Klasse geladen. Die Nachbarn und so sind dann halt per String Operationen zu ermitteln ...

UPS ... ich merke gerade ... Rover hat ja nicht nur eine Koordinate sondern auch noch eine Richtung. Also werden das dann 4.000.000 Klassen, die generiert werden müssen (Also Rover<X>Und<Y><Richtung> mit <X> und <Y> halt mögliche Koordinaten und <Richtung> eine Richtungsangabe wie Oben, Unten, Rechts, Links oder so .... Aber evtl. schränken wir uns einfach ein auf eine Karte von 10x10 oder so ... dann muss man weniger generieren ....


----------



## Heyoka955 (24. Mai 2019)

Okay habe es


----------



## mrBrown (24. Mai 2019)

Und wie sieht es jetzt aus?


----------



## mihe7 (24. Mai 2019)

Da bin ich ja mal gespannt  Wie sieht Dein Modell denn mittlerweile aus?


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Da bin ich ja mal gespannt  Wie sieht Dein Modell denn mittlerweile aus?


Für jede Komponente eine Klasse bzw. Man Teilt es in Klassen auf in Karte Roboter Position Bewegung
Koordinate etc.


----------



## mihe7 (24. Mai 2019)

Was ist denn der Unterschied zwischen Position und Koordinate? Wie sieht *Dein* Modell aus?


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Was ist denn der Unterschied zwischen Position und Koordinate? Wie sieht *Dein* Modell aus?


Im Position wird die Instanz Koordinate instanziert.

Habe eine Zeichnung gefertigt.


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Im Position wird die Instanz Koordinate instanziert.


Wozu?



Heyoka955 hat gesagt.:


> Habe eine Zeichnung gefertigt.


Das ist mal eine gute Idee.


----------



## kneitzel (24. Mai 2019)

@Heyoka955 Aber jetzt auch noch einmal ganz kurz an Dich gerichtet:
Der andere Post war mehr als Spass, aber er zeigt ganz überspitzt, wie es eben nicht geht und dass gewisse Dinge Unsinn sind....

Also ehe man irgend etwas entwickelt, muss man sich einen genauen Überblick über den Problembereich machen. Was für Daten werden verwaltet? Was muss mit Ihnen gemacht werden?

Wenn man da eine genaue Vorstellung hat (aber wirklich eine genaue Vorstellung!), dann kann man hingehen und den Problembereich unterteilen. Das wird dann eine Unterteilung in Objekte. Die Objekte haben dann einen gewissen Status (Daten) und gewisse Operationen (man kann etwas mit Ihnen machen). Das findet aber alles noch rein theoretisch statt. Es wird nicht eine Zeile Code geschrieben!

Das Ganze kann man dann irgendwie dokumentieren. Da gab es dann ganz kluge Köpfe (wie z.B. die drei Amigos: Grady Booch mit seiner "booch method" , Ivar Jacobson (Use Cases als Grundlage der Entwicklung) und James Rumbaugh (Object Modeling Technique OMT)) die dich da auch viele Gedanken gemacht haben (Und bezüglich der drei Amigos: dann auch zusammen UML entwickelt haben).
==> Es gibt also auch Möglichkeiten das richtig nach klaren Regeln zu beschreiben. Das muss aber nicht sein. Aber es muss ein klares Verständnis des Problembereichs geben und auch eine klare Übersicht bezüglich der Gliederung / Aufteilung.

Dann, aber auch nur dann, kann man etwas sauber implementieren.

Und so Aussagen von wegen "nur zwei Instanzen" sind lustig. Ich hoffe, das ist nicht so vom Dozenten gesagt worden. Ich habe jetzt nicht nachgelesen, aber es sollte klar sein, dass es mit Start der Java VM schon ganz viele Instanzen gibt ... Und jede Klasse, die du schreibst und dann nutzt, wird vom ClassLoader geladen => eine Instanz wird erzeugt. Aber egal. Ich bin mal gespannt, was Du für eine Zeichnung erstellt hast ...


----------



## mihe7 (24. Mai 2019)

kneitzel hat gesagt.:


> Und so Aussagen von wegen "nur zwei Instanzen" sind lustig


Ja, was er meinte: laut seinen 10 Geboten der Softwareentwicklung (die bekanntermaßen nur 9 sind), darf er in einer Klasse maximal zwei Instanzvariablen verwenden, sofern diese keine Collection darstellen.


----------



## mrBrown (24. Mai 2019)

kneitzel hat gesagt.:


> Und so Aussagen von wegen "nur zwei Instanzen" sind lustig. Ich hoffe, das ist nicht so vom Dozenten gesagt worden. Ich habe jetzt nicht nachgelesen, aber es sollte klar sein, dass es mit Start der Java VM schon ganz viele Instanzen gibt ... Und jede Klasse, die du schreibst und dann nutzt, wird vom ClassLoader geladen => eine Instanz wird erzeugt. Aber egal. Ich bin mal gespannt, was Du für eine Zeichnung erstellt hast ...


Dies meint er:


			
				https://williamdurand.fr/2013/06/03/object-calisthenics/ hat gesagt.:
			
		

> 8. No Classes With More Than Two Instance Variables


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Wozu?
> 
> 
> Das ist mal eine gute Idee.


Ich muss das noch für Schritte und Drehung die Klasse herstellen und die Koordinaten klasse weglassen und direkt die Punkte in Position instanzieren.


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Wozu?
> 
> 
> Das ist mal eine gute Idee.


----------



## mrBrown (24. Mai 2019)

Was ist der Unterschied zwischen Position und Koordinate?


----------



## Heyoka955 (24. Mai 2019)

mrBrown hat gesagt.:


> Was ist der Unterschied zwischen Position und Koordinate?


Ich hätte eine Instanz in Position dadurch und kann eine weitere Instanz dann hinzuzufügen sonst gibt es keinen Unterschied.

Wollte Abstraktion Niveau hoch halten.


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Wollte Abstraktion Niveau hoch halten.


Das Abstraktionsniveau ist höher, wenn Du gleiche/ähnliche Konzepte erkennst und diese zu einer Klasse zusammenfasst. Man darf aber auch nicht zu abstrakt werden.


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Das Abstraktionsniveau ist höher, wenn Du gleiche/ähnliche Konzepte erkennst und diese zu einer Klasse zusammenfasst. Man darf aber auch nicht zu abstrakt werden.


Ich hatte das erkannt aber wollte es trennen weil ich dachte es wäre sinnvoller. Mein Problem ist eher wie ich die Klasse Schritte und Drehung machen soll?


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Mein Problem ist eher wie ich die Klasse Schritte und Drehung machen soll?


Gar nicht. Das ist das Verhalten des Rovers und Verhalten modelliert man mit Methoden und nicht mit Strukturen wie Klassen.


----------



## kneitzel (24. Mai 2019)

mrBrown hat gesagt.:


> Dies meint er:


Danke, das erklärt es dann. Muss gestehen, dass ich dieses Object Calisthenics so noch nicht kannte.


----------



## mrBrown (24. Mai 2019)

mihe7 hat gesagt.:


> Gar nicht. Das ist das Verhalten des Rovers und Verhalten modelliert man mit Methoden und nicht mit Strukturen wie Klassen.


Wobei der Rover die Richtung, in die er guckt, speichern muss.


----------



## mihe7 (24. Mai 2019)

mrBrown hat gesagt.:


> Wobei der Rover die Richtung, in die er guckt, speichern muss.


Ach so, er meint mit Drehung die Richtung? Dann: genehmigt


----------



## mrBrown (24. Mai 2019)

mihe7 hat gesagt.:


> Ach so, er meint mit Drehung die Richtung?


Da wiederum bin ich mir nicht sicher


----------



## mihe7 (24. Mai 2019)

mrBrown hat gesagt.:


> Da wiederum bin ich mir nicht sicher


Das ist vermutlich nicht mal er selbst


----------



## Heyoka955 (24. Mai 2019)

mrBrown hat gesagt.:


> Da wiederum bin ich mir nicht sicher


Genau so meinte ich das.
Da stehen ja sogar die Methoden!

Ich schicke gleich neue Skizze


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Da stehen ja sogar die Methoden!


Das kann kein Mensch lesen.


----------



## Heyoka955 (24. Mai 2019)

mihe7 hat gesagt.:


> Das kann kein Mensch lesen.


Ich zeichne das nachts, hoffe du bist da on


----------



## mrBrown (24. Mai 2019)

Zeichne das doch digital, zB mit draw.io, dann besteht auch die Chance, dass es jemand lesen kann...


----------



## AndiE (24. Mai 2019)

Wenn ich die Zeichnung sehe, muss ich stark an mich halten, um fair zu bleiben. "Modellierung" kommt von Modell, und das stellt ein Abbild der Wirklichkeit da. In diesem Falle einer gedachten Wirklichkeit. Und davon kann ich wenig bis nichts in der Zeichnung erkennen. Offensichtlich gibt es Modelle in der OO- Programmierung, die statisch sind oder dynamisch. Ein Klassendiagramm ist erstmal statisch und die Klassen stehen in Beziehungen zueinander, die man auch benennen kann. Und sie haben Multiplizitäten untereinander. Das will ich in einem Modell sehen. Insbesondere, weil das ja schon ähnlich programmiert ist, dürfte da doch kein Problem bestehen, wenn man schon länger programmiert.


----------



## Xyz1 (24. Mai 2019)

Worum geht es denn gerade? Ein UML Klassendiagramm? oder ein Objekt/Sequenz Diagramm?


----------



## mihe7 (24. Mai 2019)

Eigentlich ging es nur darum, Java vor Heyoka zu schützen.


----------



## Xyz1 (24. Mai 2019)

Mhh, stimmt ich habe schon wieder vergessen, dass das gern mal 500-Beiträge-Themen werden.... aber ich werde gleich ew dagegen tun.


----------



## mihe7 (24. Mai 2019)

Tobias-nrw hat gesagt.:


> aber ich werde gleich ew dagegen tun.


Oh, oh...


----------



## Xyz1 (24. Mai 2019)

mihe7 hat gesagt.:


> Oh, oh...


Ach mihe, ich meint doch "nicht antworten" damit   oder doch?


----------



## Heyoka955 (24. Mai 2019)

Tobias-nrw hat gesagt.:


> Worum geht es denn gerade? Ein UML Klassendiagramm? oder ein Objekt/Sequenz Diagramm?


Lies Aufgabenstellung!
Kein Wunder Für Die Anzahl an Beiträgen wenn ihr einfach  hier trollt


----------



## Xyz1 (24. Mai 2019)

Ich habe zwar 3.829 Beiträge, aber wenn es 1.000 weniger wären würd mich das auch nicht stören.... hehe


----------



## Heyoka955 (24. Mai 2019)

Tobias-nrw hat gesagt.:


> Ich habe zwar 3.829 Beiträge, aber wenn es 1.000 weniger wären würd mich das auch nicht stören.... hehe


Wir fidnet ihr eig das Niveau der Aufgabe ? 
Viele erfahrene Programmierer sind an dem Projekt beim erst Versuch gescheitert.


----------



## mrBrown (24. Mai 2019)

Heyoka955 hat gesagt.:


> Wir fidnet ihr eig das Niveau der Aufgabe ?
> Viele erfahrene Programmierer sind an dem Projekt beim erst Versuch gescheitert.


Einfach, daran scheitert mit Sicherheit kein erfahrener Programmierer.


----------



## mihe7 (24. Mai 2019)

Heyoka955 hat gesagt.:


> Viele erfahrene Programmierer sind an dem Projekt beim erst Versuch gescheitert.


Wenn das der Versuch sein soll, an der Eitelkeit zu kratzen, musst Du Dir schon was besseres einfallen lassen


----------



## kneitzel (24. Mai 2019)

Was soll an der Aufgabe schwer sein? Die Regel mit den zwei Instanzvariablen pro Klasse halte ich für schwer machbar in der Praxis. Dadurch entstehen zu viele Klassen oder die Daten werden schlecht gespeichert. Einfaches Beispiel, das mir sofort einfällt sind 3d Koordinaten. Dass die zusammen gehören ist doch klar und da macht es wenig Sinn, eine 2D Koordinate und eine Z Koordinate zu nehmen. Aber natürlich geht es - entweder durch speichern der Daten in einer Instanzvariable (z.B. XML Node) oder eben durch eine Aufteilung (Wäre dann etwas wie ein Binärer Baum. Egal was ich brauche - entsprechend Klassen erstellt mit jeweils 2 Instanzvariablen würde funktionieren).

Aber kommt man hier irgendwo überhaupt in die Versuchung, mehr als zwei Instanzvariablen in einer Klasse unter zu bringen?
Die Map hat einfach eine Datenstruktur für die Felder/Inhalte. Der Rover hat Richtung und Koordinaten. 

Also selbst weniger erfahrene Entwickler sollten hier bei der übersichtlichen Aufgabe keine Probleme haben.

Daher ist meine Frage, wo hier die Schwierigkeit sein soll.


----------



## Xyz1 (24. Mai 2019)

Mhh, manchmal denke ich, ich bin verwirrter Rentner und muss die Aufgabe erstmal verstehen, aber dann kann ich sagen ob ich oder others daran scheitern würde(n). Hehe


----------



## Heyoka955 (24. Mai 2019)

kneitzel hat gesagt.:


> Was soll an der Aufgabe schwer sein? Die Regel mit den zwei Instanzvariablen pro Klasse halte ich für schwer machbar in der Praxis. Dadurch entstehen zu viele Klassen oder die Daten werden schlecht gespeichert. Einfaches Beispiel, das mir sofort einfällt sind 3d Koordinaten. Dass die zusammen gehören ist doch klar und da macht es wenig Sinn, eine 2D Koordinate und eine Z Koordinate zu nehmen. Aber natürlich geht es - entweder durch speichern der Daten in einer Instanzvariable (z.B. XML Node) oder eben durch eine Aufteilung (Wäre dann etwas wie ein Binärer Baum. Egal was ich brauche - entsprechend Klassen erstellt mit jeweils 2 Instanzvariablen würde funktionieren).
> 
> Aber kommt man hier irgendwo überhaupt in die Versuchung, mehr als zwei Instanzvariablen in einer Klasse unter zu bringen?
> Die Map hat einfach eine Datenstruktur für die Felder/Inhalte. Der Rover hat Richtung und Koordinaten.
> ...


Ich glaube deine Erwartung ist zu hoch.

Aber die Aufgabe worin alle scheiterten war eine andere aber auch in Richtung oc


----------



## mrBrown (24. Mai 2019)

kneitzel hat gesagt.:


> Aber kommt man hier irgendwo überhaupt in die Versuchung, mehr als zwei Instanzvariablen in einer Klasse unter zu bringen?


Die übliche, nicht so gute, Studentenlösung sähe so aus (und das ist leider kein Scherz...): 
	
	
	
	





```
class Rover {
int x;
int y;
int[][] feld;
int feldGrößeX;
int feldGrößeY;
String richtung;
int i; //genutzt als Index in Methode xy
Reader reader;//in Methode xz zum Einelsen des Kommandos benutzt;


//Get/Setter für alles
// maximal zwei weitere Methoden, 1,5 davon unsinnig
}
```


----------



## Xyz1 (24. Mai 2019)

Warum ist feld usw. in der Rover-Klasse? Hätte zu meinen Zeiten nicht weiter begründet eine 6 gegeben...


----------



## Heyoka955 (24. Mai 2019)

Tobias-nrw hat gesagt.:


> Warum ist feld usw. in der Rover-Klasse? Hätte zu meinen Zeiten nicht weiter begründet eine 6 gegeben...


Ich denke ihr habt in eurer Zeit
Viel tiefer gelernt. Dadurch dass jede Menge neue Module sich entwickelt haben. Kann man schwer den Fokus nicht auf das wichtigste fassen.

Programmieren macht Spaß aber man muss im end Effekt das Studium schaffen.

Wenn man reines Mathe hat und weitere Module die nicht so bedeutend sind, wird es schwer halt alles zu packen.


Obwohl reines Mathe schon wichtig sein kann für ai.

Ich wollte eig auf eine fh aber die liegt in gummersbach.

Finde Uni ist zu theoretisch aber dafür hilft das einem beseer Probleme zu lösen.


----------



## mrBrown (24. Mai 2019)

Nein, Uni ist bei dir nicht schwerer als bei allen anderen oder als früher


----------



## kneitzel (24. Mai 2019)

Heyoka955 hat gesagt.:


> Ich glaube deine Erwartung ist zu hoch


Also evtl. sollten wir erst einmal klären, wie Du "erfahrene Entwickler" definierst.

Für mich ist ein erfahrende Entwickler jemand, der Erfahrungen in der Software Entwicklung sammeln konnte. Also jemand, der schon an mehreren Projekten mitgearbeitet hat (als aktiver Software Entwickler).

Im Berufsleben bekommt man öfters die Begriffe Junior , Intermediate und Senior Entwickler. Dabei ist Junior jemand, den man noch an die Hand nehmen muss und der aktiv eingearbeitet wird Der kann durchaus auch an gewissen Dingen noch Probleme haben. Aber selbst von einem Junior Entwickler würde ich relativ schnell erwarten, dass er so eine einfache Aufgabe schnell und ohne Probleme lösen kann. Aber der Junior Entwickler macht Software Entwicklung auch als tägliche Arbeit, denn sonst wäre er kein Junior Entwickler .... Jemand, der jetzt im Studium an die Entwicklung heran geführt wird, würde ich nie als "Erfahrenen Softwareentwickler" bezeichnen.

Erfahrener Softwareentwickler ist mind. ein Junior mit entsprechenden ersten Erfahrungen in Projekten.



mrBrown hat gesagt.:


> Die übliche, nicht so gute, Studentenlösung sähe so aus (und das ist leider kein Scherz...):
> 
> 
> 
> ...


Nunja - das wäre akzeptabel, wenn da nicht entsprechend etwas anderes unterrichtet wurde. Wir mussten damals an der Uni die Booch Method verwenden. Das war krass fand ich. Booch hatte da gerade das Buch auf Englisch veröffentlicht. Fand ich grausam, da es wenig Sinn gemacht hat in meinen Augen. Da musste alles auch ein Interface und einen Controller haben....
Und dann geht es ja nur um die Umsetzung des Gelehrten .... Wenn Objektorientiertes Design nicht vermittelt wurde, dann kommt so etwas raus 



Tobias-nrw hat gesagt.:


> Warum ist feld usw. in der Rover-Klasse? Hätte zu meinen Zeiten nicht weiter begründet eine 6 gegeben...


Weil das die einzige Klasse ist. Und das ist keine 6. Die Variablen sind nicht static, daher wird es mehr als die static main Funktion geben 

Die Frage ist ja, was man an einen Studenten herantragen kann ...




Heyoka955 hat gesagt.:


> Ich denke ihr habt in eurer Zeit
> Viel tiefer gelernt. Dadurch dass jede Menge neue Module sich entwickelt haben. Kann man schwer den Fokus nicht auf das wichtigste fassen.



Also das waren bei uns auch nur kleine Themen. Also ob wir an der Uni nur Software Entwickelt hätten oder so. Ich glaube nicht, dass die Unterschiede zu damals so gross sein dürften ...


----------



## Heyoka955 (24. Mai 2019)

mrBrown hat gesagt.:


> Nein, Uni ist bei dir nicht schwerer als bei allen anderen oder als früher


Nah, lies mal dann .

Die Erwartungen an Studenten werden immer höher


----------



## AndiE (24. Mai 2019)

Wir sind aber immer noch beim ADIT-Kreis und bewegen uns zwischen A und D, sprich Analyse und Design. Wir warten immer noch auf das Modell.


----------



## Xyz1 (24. Mai 2019)

@Heyoka955 Mal unter uns, die erste Mathevorlesung (meist ist das Analysis oder so etwas), braucht man zum Lösen informatischer Probleme nie. Das ist einfach eine Hürde um 2/3 der Studierenden zu sieben.


----------



## Heyoka955 (24. Mai 2019)

Tobias-nrw hat gesagt.:


> @Heyoka955 Mal unter uns, die erste Mathevorlesung (meist ist das Analysis oder so etwas), braucht man zum Lösen informatischer Probleme nie. Das ist einfach eine Hürde um 2/3 der Studierenden zu sieben.


Du brauchst nicht den Inhalt aber du lernst da zu denken.

Das ist wichtig.

Bei den Beweis Aufgaben lernt man halt zu denken und Probleme zu lösen.


----------



## mihe7 (24. Mai 2019)

Wie sieht es jetzt eigentlich mit Deinem Modell aus?


----------



## Xyz1 (24. Mai 2019)

Heyoka955 hat gesagt.:


> aber du lernst da zu denken


Ich würd sagen, du lernst da auswendigzulernen... Aber naja das ist nur meine Ansicht.


----------



## Heyoka955 (24. Mai 2019)

AndiE hat gesagt.:


> Wir sind aber immer noch beim ADIT-Kreis und bewegen uns zwischen A und D, sprich Analyse und Design. Wir warten immer noch auf das Modell.



Ich arbeite abends daran heißt 2 uhr nachts.


----------



## Heyoka955 (26. Mai 2019)

bitteschön, denke das müsste klappen als grund idee, also kenne mich mit uml kaum aus !und ich weiß nicht wie ich die klasse schritte und drehen gestalten soll!



Okay ich muss Deich eine Klasse Koordinate machen denn bei Rover muss ich ja das char speichern also den Rover selbst.

Das heißt ich hatte dann drei Instanzen daher würde ich bei der Klasse Rover nur dann diese Instanzen speichern wollen 

Das Zeichen selbst also der Rover woraus er besteht und eine neue Klasse Koordinate.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> also kenne mich mit uml kaum aus


Du musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.



Heyoka955 hat gesagt.:


> bitteschön, denke das müsste klappen als grund idee


Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?

Jeglicher Vererbung schmeißt du raus. Außer du bist wirklich der Meinung, der „Mars *ist eine* Karte“ und der „Rover *ist eine* Bewegung“.

Die Klasse Bewegung ist wahrscheinlich Unsinn, außer du kannst jetzt gut Begründen, warum das eine Klasse ist.
Gleiches für die darin benutzten Klassen Drehung und Bewegung.

Deine beiden Koordinaten-Klassen sind völliger Humbug.

Integer statt int benutzen zu müssen, hast du btw auch falsch verstanden.


----------



## mihe7 (26. Mai 2019)

@mrBrown war schneller...



mrBrown hat gesagt.:


> Integer statt int benutzen zu müssen, hast du btw auch falsch verstanden.


Stimmt.


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> @mrBrown war schneller...
> 
> 
> Stimmt.





mrBrown hat gesagt.:


> Du musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.
> 
> 
> Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?
> ...


Keine primitiven Datentypen darf ich verwenden


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Keine primitiven Datentypen darf ich verwenden


Wo steht das?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Du musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.
> 
> 
> Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?
> ...



Dann würde ich einfach garnichts vererben? Weil es keine Vererbung gibt aber kann ich nicht annehmen dass der Mars eine Karte ist.

Musst bei den Regeln stehen.
Also alles wrappen


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Musst bei den Regeln stehen.


Steht da nicht.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Keine primitiven Datentypen darf ich verwenden


Nein: „3. Wrap All Primitives And Strings“. Das meint nicht, einfach immer stumpf den Wrapper-Typ zu nutzen. Primitives sind dabei nämlich auch die Wrapper-Typen in Java.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Dann würde ich einfach garnichts vererben?


Ja, du brauchst keine Vererbung.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Nein: „3. Wrap All Primitives And Strings“. Das meint nicht, einfach immer stumpf den Wrapper-Typ zu nutzen. Primitives sind dabei nämlich auch die Wrapper-Typen in Java.





mihe7 hat gesagt.:


> Wo steht das?



Ich zeige:


> Objekte sollen eine Bedeutung haben und nicht nur einfache Datenstrukturen sein. Zum Einen bekommen wir so eine Stelle, an der sich Verhalten ausdrücken lässt, zum Anderen können wir die spezifische Typen genauer ausdrücken, welche Operationen auf einem Wert ausgeführt werden können. Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc.
> 
> Die Wrapper-Regel bezieht sich auf Methoden und Klassen, die Sie schreiben, nicht auf bestehende Methoden von existierenden Java Klassen. Sie dürften also die println Methode einer Instanz der Klasse PrintStream aufrufen und dabei einen ungewrappten String übergeben.
> 
> ...


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> > Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc.


Diesen Satz hast du auch gelesen?
Integer ist genauso „verboten“ wie int!


Ich finde die Reaktion von Studenten, wenn sie Dinge nicht verstehen, echt bemerkenswert. Anstatt auf die Idee zu kommen, einfach mal zu fragen wie das gemeint ist, machen die einfach irgendwelchen Unsinn.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Diesen Satz hast du auch gelesen?
> Integer ist genauso „verboten“ wie int!
> 
> 
> Ich finde die Reaktion von Studenten, wenn sie Dinge nicht verstehen, echt bemerkenswert. Anstatt auf die Idee zu kommen, einfach mal zu fragen wie das gemeint ist, machen die einfach irgendwelchen Unsinn.


oh wusste nicht was ich da schreiben soll, musste das in uml realisieren können.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> oh wusste nicht was ich da schreiben soll, musste das in uml realisieren können.


Vergiss UML.
Mal einfach Kästchen für Klassen und Striche zwischen denen, wenn sie in Beziehung stehen. Methoden und Attribute brauchst du (noch) nicht.


----------



## Heyoka955 (26. Mai 2019)

zu spät hahah, ich weiß nicht wie ich das sonst mit den koordianten machen soll?


----------



## mrBrown (26. Mai 2019)

Okay. Geh mal drei Schritte zurück.

Das Zitat zur nicht Verwendung von primitiven Werten - lies es noch mal durch.
Und dann sag uns, ob du es zur Gänze verstanden hast, oder ob du irgendwo fragen hast.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Okay. Geh mal drei Schritte zurück.
> 
> Das Zitat zur nicht Verwendung von primitiven Werten - lies es noch mal durch.
> Und dann sag uns, ob du es zur Gänze verstanden hast, oder ob du irgendwo fragen hast.


Die Verwendung einer Collection oder eines Optionals, um einen primitiven Datenwert zu verpacken, würden wir als vorsätzliches Umgehen der Regel interpretieren.

Ich weiß nicht wie ich mir vorstellen soll wie eine Collection einen int ersetzt?


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Ich weiß nicht wie ich mir vorstellen soll wie eine Collection einen int ersetzt?


Das war nicht das Zitat.


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Das war nicht das Zitat.


Welches war das


----------



## mihe7 (26. Mai 2019)

"Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc."


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> "Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc."


ja habe ich verstanden ints und Integer werden auch gewrappt!

aber wäre es nicht mlgich dass ich ein Objekt Position habe und darin ein Integer gespeichert wird?


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> ja habe ich verstanden ints und Integer werden auch gewrappt!


Hast du auch verstanden, was „gewrappt“ bedeutet?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Hast du auch verstanden, was „gewrappt“ bedeutet?


Ja dass die ints zu einem genetischen Typ werden.

Also zu Objekten


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> genetischen Typ


Was?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Was?


Generische Typen,

Sorry bin am Handy


----------



## mrBrown (26. Mai 2019)

Ne, Wrappen heißt nicht, dass ints damit zu generischen Typen und Objekten werden.


Lies dir mal durch, was die Begründung für das Wrappen ist, vielleicht hilft dir das, sinnvoll zu beschreiben, wie Wrappen gemeint ist.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Ne, Wrappen heißt nicht, dass ints damit zu generischen Typen und Objekten werden.
> 
> 
> Lies dir mal durch, was die Begründung für das Wrappen ist, vielleicht hilft dir das, sinnvoll zu beschreiben, wie Wrappen gemeint ist.


Es geht darum Objekte eine Bedeutung zu geben.

Das hab ich verstanden.
Sieht mein
Uml besser aus ?


----------



## mihe7 (26. Mai 2019)

Was ist denn der Unterschied zwischen Position und Koordinate? Wo kommen eigentlich die Schritte her?


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Was ist denn der Unterschied zwischen Position und Koordinate? Wo kommen eigentlich die Schritte her?


Sind im
Prinzip das gleiche also die Funktion 

Aber denke vielleicht sollte ich die Schritte weglassen.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Aber denke vielleicht sollte ich die Schritte weglassen.


Versuch es doch einfach mal, und zeig das aktuelle Modell


----------



## mihe7 (26. Mai 2019)

Mal ein paar Markierungen:

1 Der Rover muss nur *geradeaus fahren*
2 Der Rover muss sich nur *im Uhrzeigersinn drehen* können.
3 Der Rover bekommt sein Programm nicht als Text übergeben, sondern wird durch Methodenaufrufe gesteuert.
4 Die *Ausgabe* der Welt mit dem Rover soll ähnlich wie in Projekt 1 aussehen, muss aber nicht automatisch nach jedem Kommando erfolgen, sondern kann auch explizit per Methodenaufruf gestartet werden.
5 Etwa 25% der Planetenoberfläche sind mit Hindernissen belegt. Sie können das per Zufall *generieren oder fest einkodieren*. Wenn Sie einen Zufallsgenerator verwenden ist es *nicht* notwendig, einen Seed (wie in Projekt 1) setzen zu können.
6 Der Rover darf nicht über Hindernisse fahren.


----------



## Heyoka955 (26. Mai 2019)

denke das müsste reichen für die Klassen modelierung.
Okay man hätte es ander herummachen sollen also surface wird gerbt von Mars


----------



## mihe7 (26. Mai 2019)

Da denkst Du falsch. Wieso kennt Position Hindernisse und Rover? Eine Methode (Main-Methode) als Klasse zu modellieren ist jetzt auch nicht der Hit und die Vererbung ist völlig daneben. Welche Elemente sollen denn in Deiner LinkedList stehen?


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Da denkst Du falsch. Wieso kennt Position Hindernisse und Rover? Eine Methode (Main-Methode) als Klasse zu modellieren ist jetzt auch nicht der Hit und die Vererbung ist völlig daneben. Welche Elemente sollen denn in Deiner LinkedList stehen?


Stimmt, alle Elemente also der Rover Hindernisse und leere stellen.


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> alle Elemente also der Rover Hindernisse und leere stellen.


Du brauchst Dir keine leeren Stellen zu merken, die haben ja keine tiefere Bedeutung. Den Rover gibt es auch nur einmal, kannst Du Dir also direkt merken, bleiben also nur Hindernisse übrig. Wo bzw. wie sind diese modelliert?


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Du brauchst Dir keine leeren Stellen zu merken, die haben ja keine tiefere Bedeutung. Den Rover gibt es auch nur einmal, kannst Du Dir also direkt merken, bleiben also nur Hindernisse übrig. Wo bzw. wie sind diese modelliert?


in der linkedlist, in der linkedlist wird alles abgespeichert


----------



## mrBrown (26. Mai 2019)

Mal ein anderer Ansatz: Lösch alles, was du bisher an UML hast.

Dann nimm dir diesen Beitrag zu herzen:


mihe7 hat gesagt.:


> 1 Der Rover muss nur *geradeaus fahren*
> 2 Der Rover muss sich nur *im Uhrzeigersinn drehen* können.
> 3 Der Rover bekommt sein Programm nicht als Text übergeben, sondern wird durch Methodenaufrufe gesteuert.
> 4 Die *Ausgabe* der Welt mit dem Rover soll ähnlich wie in Projekt 1 aussehen, muss aber nicht automatisch nach jedem Kommando erfolgen, sondern kann auch explizit per Methodenaufruf gestartet werden.
> ...



Erkennst du da Dinge, die eine Klasse sein könnten? Hint: die farbigen Hervorhebungen könnten was bedeuten...


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Mal ein anderer Ansatz: Lösch alles, was du bisher an UML hast.
> 
> Dann nimm dir diesen Beitrag zu herzen:
> 
> ...


Rover, Ausgabe, oberfläche Hindernisse


----------



## mrBrown (26. Mai 2019)

Warum wäre Ausgabe für dich eine Klasse?

Was ist mit Welt?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Warum wäre Ausgabe für dich eine Klasse?
> 
> Was ist mit Welt?


Welt könnte eine Oberklasse sein.

Ausgabe könnte man als klasse machen aber wäre halt nicht essenziell weil es kein reales Objekt darstellt.

Also ich würde Welt Oberfläche Rover uns indenrisse als
Klasse sehen.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Welt könnte eine Oberklasse sein.


Vergiss Oberklassen und sowas.



Heyoka955 hat gesagt.:


> Ausgabe könnte man als klasse machen aber wäre halt nicht essenziell weil es kein reales Objekt darstellt.


Klingt schon besser.



Heyoka955 hat gesagt.:


> Also ich würde Welt Oberfläche Rover uns indenrisse als
> Klasse sehen.


Mal die Vier mal als Kästchen auf, und zeig das. (und mal keine Verbindungen, Attribute, Methoden etc...


----------



## Heyoka955 (26. Mai 2019)




----------



## mrBrown (26. Mai 2019)

Fallen dir noch weitere Klassen ein, die wichtig sein könnten?


----------



## Heyoka955 (26. Mai 2019)

Position Orientation ?


----------



## mrBrown (26. Mai 2019)

Kannst du begründen, wofür du beide brauchst?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Kannst du begründen, wofür du beide brauchst?


Position um Positionen zu finden wo der Rover sich befindet. Evtl sogar noch um die Positionen der Hindernisse festzulegen.

Orientierung sind die Bewegungen die der Rover machen knn also dass er nur gerade aus und im Uhrzeiger Sinn drehen knn


----------



## mrBrown (26. Mai 2019)

Dann nimm mal beide als Kästchen in das Bild mit auf und zeig es dann wieder.


----------



## Heyoka955 (26. Mai 2019)




----------



## mrBrown (26. Mai 2019)

Anmerkung zu Hindernisse: das soll dich sicherlich ein einzelnes Hindernis sein? -> als Klassennamen nicht die Mehrzahl nehmen.
Oder soll das mehrere Hindernisse darstellen?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Anmerkung zu Hindernisse: das soll dich sicherlich ein einzelnes Hindernis sein? -> als Klassennamen nicht die Mehrzahl nehmen.
> Oder soll das mehrere Hindernisse darstellen?


Es ist ein Symbol aber es existieren mehrere Hindernisse


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Es ist ein Symbol aber es existieren mehrere Hindernisse


Was ist denn jetzt plötzlich ein Symbol?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Was ist denn jetzt plötzlich ein Symbol?


Das Hindernis ist ja ein # Zeichen.
Aber vergiss das 
Also mehrere Hindernisse


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Also mehrere Hindernisse


Ein ein einzelnes Hindernis gibt es bei dir nicht?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Ein ein einzelnes Hindernis gibt es bei dir nicht?


In der Karte gibt es mehrere Hindernisse wenn du darauf hinaus willst.


----------



## mrBrown (26. Mai 2019)

Nein, ich will darauf hinaus, ob es ein Hindernis als Klasse gibt.

Aktuell sagst du nur, dass es mehrere Hindernisse gibt - aber was ist das denn, wovon es mehrere gibt?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Nein, ich will darauf hinaus, ob es ein Hindernis als Klasse gibt.
> 
> Aktuell sagst du nur, dass es mehrere Hindernisse gibt - aber was ist das denn, wovon es mehrere gibt?


Herstellen wir dann neue Objekte also jedesmal wenn an der Stelle Hindernis kommen sollte dann machen wir ein neues Hindernis.
Also eien klasse


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Herstellen wir dann neue Objekte also jedesmal wenn an der Stelle Hindernis kommen sollte dann machen wir ein neues Hindernis.


Du bist noch lange nicht dabei, Code zu schreiben oder drüber nachzudenken, wie du den schreibst...



Heyoka955 hat gesagt.:


> Also eien klasse


Dann füg die mal in das Diaramm ein, und zeig es dann.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Du bist noch lange nicht dabei, Code zu schreiben oder drüber nachzudenken, wie du den schreibst...
> 
> 
> Dann füg die mal in das Diaramm ein, und zeig es dann.


Habe Hindernisse auf Hindernis geändert


----------



## mrBrown (26. Mai 2019)

Jetzt überleg dir mal, welche Klasse mit welchen anderen Klassen in Verbindung steht.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Jetzt überleg dir mal, welche Klasse mit welchen anderen Klassen in Verbindung steht.


Welt in Verbindung mit Rover und Oberfläche.
Oberfläche Verbindung mit Hindernisse und vielleicht „Position“ um die Positionen der Hindernisse zu bestimmen.
Und Rover mit Position und Orientierung.


----------



## mrBrown (26. Mai 2019)

Mal die Verbindungen als einfache Striche ins Diagramm ein und zeig es dann.


----------



## Heyoka955 (26. Mai 2019)

es ist alles eine assoziatie Beziehung und keine vererbung


----------



## mrBrown (26. Mai 2019)

Und jetzt gibst du jeder Verbindung eine Richtung und einen Namen. (und zeigst es dann wieder)


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Und jetzt gibst du jeder Verbindung eine Richtung und einen Namen. (und zeigst es dann wieder)


habe


----------



## mrBrown (26. Mai 2019)

Zeig.


----------



## Heyoka955 (26. Mai 2019)




----------



## mrBrown (26. Mai 2019)

wirklich, dir ist nichts besseres eingefallen als "hat"?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Und jetzt gibst du jeder Verbindung eine Richtung und einen Namen. (und zeigst es dann wieder)


Ich wollte nicht so weit gehen.
Aber das sidn ja alles Attribute.
Man könnte eine Oberklasse Welt machen und dann erbt man

Ich kann das aktualisieren warte, dachte ich sollte das so oberflächlich machen.


----------



## Heyoka955 (26. Mai 2019)




----------



## mrBrown (26. Mai 2019)

Gib den Verbindungen erstmal vernünftige Namen.



Heyoka955 hat gesagt.:


> Aber das sidn ja alles Attribute.


So weit bist du noch nicht.



Heyoka955 hat gesagt.:


> Man könnte eine Oberklasse Welt machen und dann erbt man


Nein!
Vergiss Oberklassen und Vererbung. Benutz das nur, wenn irgendwo ganz explizit was von Vererbung steht.


----------



## mrBrown (26. Mai 2019)

"bestimmt in welche Richtung der Rover geht" ist eine Beschreibung, aber kein Name...


----------



## Heyoka955 (26. Mai 2019)

Dann weiß ich nicht weiter außer als hat oder besitzt.

Es ist ja eine Beziehung wie beim er Modell.
Ein Rover hat ja eine Koordinate und Position ?


----------



## mrBrown (26. Mai 2019)

Dein Ernst?

Wenn du in Richtung Norden guckst, sagst du dann wirklich, "ich habe Blickrichtung Norden" oder "ich besitze die Orientierung Norden"?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Dein Ernst?
> 
> Wenn du in Richtung Norden guckst, sagst du dann wirklich, "ich habe Blickrichtung Norden" oder "ich besitze die Orientierung Norden"?


Nein sondern ich drehe mich Blick Richtung Norden


----------



## mihe7 (26. Mai 2019)

Ah, ich sehe, es geht voran


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Ah, ich sehe, es geht voran


Ernsthaft? Haha denke es liegt daran wie man mir was erklärt.


----------



## mihe7 (26. Mai 2019)

Ja, @mrBrown macht das gut. Weiter so @mrBrown


----------



## mrBrown (26. Mai 2019)

Die Namen könnte man durchaus noch verbessern, aber immerhin kann man mit dem Model weiterarbeiten..



Spoiler



Welt -[beinhaltet]-> Rover: würdest du auch sagen, "die Stadt beinhalten den Bus"? Oder eher sowas wie "wird befahren von"

Welt -[existiert]-> Oberflaeche: würde ich bei "hat" bleiben, "die Welt hat eine Oberfläche" klingt deutlich besser, als "auf der Welt existiert eine Oberfläche"...

Oberfläche -[festlegung]-> Hindernis: "Festlegung", was soll das sein? Da ist "besitzt" schon passend gewesen, "die Oberfläche besitzt Hindernisse" kann man durchaus so sagen

Rover -[bewegung]-> Orientierung: die Orientierung ist plötzlich eine Bewegung, ist das nicht eher die Bewegungs- oder Blickrichtung? Also vielleicht sogar einfach nur "Richtung" oder "gedreht in"

Rover -[aktualisierung]-> Position: Das klingt nach einem schlechten Witz, hast du den Duden aufgeschlagen und ein zufälliges Wort genommen? Wie wäre es mit "befindet sich an" oder "Standort"?





Als nächstes: fehlen denn noch irgendwelche Informationen bei einigen Klassen?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Die Namen könnte man durchaus noch verbessern, aber immerhin kann man mit dem Model weiterarbeiten..
> 
> 
> 
> ...


Instanzen.
 Methoden

Ich fange mit Instanzen an.

Ich fidne es schade dass man an meiner Uni nicht beibringt wie man sowas designed.

Viele Unis bieten Module an...


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Instanzen.


Äh, nein?



Heyoka955 hat gesagt.:


> Methoden


Auch noch nicht.


Mal anders gefragt: Was fehlt denn bei der Position noch?




Heyoka955 hat gesagt.:


> Ich fidne es schade dass man an meiner Uni nicht beibringt wie man sowas designed.
> 
> Viele Unis bieten Module an...


Kenne weder die Veranstaltung noch euren Modulplan, aber vermutlich gab's da mal was in die Richtung...


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Äh, nein?
> 
> 
> Auch noch nicht.
> ...


Die Koordinaten also x und y


----------



## mrBrown (26. Mai 2019)

Dann trag die doch mal ein.


----------



## Heyoka955 (26. Mai 2019)




----------



## mrBrown (26. Mai 2019)

Und warum ist Koordinaten eine Klasse?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Und warum ist Koordinaten eine Klasse?


Weil du meintest wir sollen keine Instanzen machen ? Okay
Dann fange ich mit Instanzen Attribute an ?


----------



## mrBrown (26. Mai 2019)

Instanzen haben hier noch nichts zu suchen...

Antworte doch einfach auf die Frage: warum ist Koordinaten eine Klasse?

Und wenn es keine Klasse wäre, wie würdest du die Informationen repräsentieren?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Instanzen haben hier noch nichts zu suchen...
> 
> Antworte doch einfach auf die Frage: warum ist Koordinaten eine Klasse?
> 
> Und wenn es keine Klasse wäre, wie würdest du die Informationen repräsentieren?


WEIL eine Position aus zwei Koordinaten Objekten besteht einmal x und y


----------



## mrBrown (26. Mai 2019)

Also eine Position hat zwei Koordinaten und eine Koordinate ist eine Zahl?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Also eine Position hat zwei Koordinaten und eine Koordinate ist eine Zahl?


Ja bzw die Klasse Position soll di aktuelle Position ermitteln


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> WEIL eine Position aus zwei Koordinaten Objekten besteht einmal x und y





Heyoka955 hat gesagt.:


> Ja bzw die Klasse Position soll di aktuelle Position ermitteln



Stell dir vor, du liest diese beiden Sätze jemandem vor, der absolut keine Ahnung von Informatik hat und noch nie was von OOP gehört hat - versteht der die direkt auf Anhieb?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Stell dir vor, du liest diese beiden Sätze jemandem vor, der absolut keine Ahnung von Informatik hat und noch nie was von OOP gehört hat - versteht der die direkt auf Anhieb?


Nein Hahhaa


----------



## mrBrown (26. Mai 2019)

Einfache Regel: Solange du die Frage mit "Nein" beantwortest, ist dein Model nicht gut genug.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Einfache Regel: Solange du die Frage mit "Nein" beantwortest, ist dein Model nicht gut genug.


Aber was fehlt ihm noch? 
Bis auf die Instanzen Attribute und Methoden ?


----------



## mrBrown (26. Mai 2019)

Sag du es mir, ist doch deine Aufgabe 

Mach noch mal hier weiter:


mrBrown hat gesagt.:


> Mal anders gefragt: Was fehlt denn bei der Position noch?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Sag du es mir, ist doch deine Aufgabe
> 
> Mach noch mal hier weiter:


Garnicht eig, mir fällt echt nichts ein.

ach ja also wir haben eine klasse für Orientierung und eine klasse für position, was uns fällt sind die Schritte !!!!!


----------



## mrBrown (26. Mai 2019)

Also eine Position ist einfach nur eine Position und hat keinerlei Attribute oder irgendwas?




Heyoka955 hat gesagt.:


> ach ja also wir haben eine klasse für Orientierung und eine klasse für position, was uns fällt sind die Schritte !!!!!


Was für Schritte?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Also eine Position ist einfach nur eine Position und hat keinerlei Attribute oder irgendwas?
> 
> 
> 
> Was für Schritte?


egal weiss leider nicht mehr weiter


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> egal weiss leider nicht mehr weiter


Dann gib entweder auf oder reiß dich zusammen...


Erklär mal mit Worten für meinen 82-jährigen Opa, was die Position ist.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Dann gib entweder auf oder reiß dich zusammen...
> 
> 
> Erklär mal mit Worten für meinen 82-jährigen Opa, was die Position ist.


position bestimmt die momentante lage des rovers


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> position bestimmt die momentante lage des rovers


Und auf einer Karte muss ich mir das jetzt wie vorstellen? Die möglichen "Lagen" sind von 'A' bis 'Z' durchbuchstabiert und dadurch weiß man, wo der ist?


----------



## mihe7 (26. Mai 2019)

@mrBrown 318 comments to go...


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Und auf einer Karte muss ich mir das jetzt wie vorstellen? Die möglichen "Lagen" sind von 'A' bis 'Z' durchbuchstabiert und dadurch weiß man, wo der ist?


man muss die karte durchgehen um sie zu bestimmen.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> man muss die karte durchgehen um sie zu bestimmen.


Welche Karte?
Und was muss ich da durchgehen, um das wie zu bestimmen?

Interessante, wie du vor der richtigen Lösung stehst und doch irgendwie wieder zu völligem Unsinn kommst...


----------



## mihe7 (26. Mai 2019)

@Heyoka955 Du sagst, eine Koordinate ist eine Zahl und eine Position hat eine Koordinate. Wo befindet sich dann der Rover, wenn er an der Position mit Koordinate 5 steht?


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> @Heyoka955 Du sagst, eine Koordinate ist eine Zahl und eine Position hat eine Koordinate. Wo befindet sich dann der Rover, wenn er an der Position mit Koordinate 5 steht?


sorry habe mich falsch ausgedrückt eine Koordinate besteht aus zwei zahlen also aus x und y und dadurch wissen wir die posiition.

man muss die die karte die wir herstellen durchgehen,
es ist ja in form eines arrays also muss man die karte die wir anfertigen wollen durchgehen


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> sorry habe mich falsch ausgedrückt eine Koordinate besteht aus zwei zahlen also aus x und y und dadurch wissen wir die posiition.


Und was ist der Unterschied zwischen Koordinate und Position?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Und was ist der Unterschied zwischen Koordinate und Position?


Im Prinzip befindet sich in Position eine Koordinat und in diesen Koordinaten befinden sich zwei Punkte die wichtig sind zur Bestimmung.


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Im Prinzip befindet sich in Position eine Koordinat


In einer Position befindet sich eine Koordinate?!?


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> In einer Position befindet sich eine Koordinate?!?


Ja ne vergiss das hahaha
Ich wollte eine Klasse Position machen wo zwei xy Punkte gespeichert sind


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Ich wollte eine Klasse Position machen wo zwei xy Punkte gespeichert sind


Und wo gibt es dann noch einen Unterschied zwischen der Klasse Position und der Klasse Koordinate?


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Und wo gibt es dann noch einen Unterschied zwischen der Klasse Position und der Klasse Koordinate?


Keine wirklche


----------



## mihe7 (26. Mai 2019)

Könnte man dann vielleicht auf die Idee kommen und auf eine der beiden Klassen verzichten?


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Könnte man dann vielleicht auf die Idee kommen und auf eine der beiden Klassen verzichten?


Ja


----------



## mrBrown (26. Mai 2019)

Und welche der beiden würde bleiben und wie sähe die dann aus?


----------



## mihe7 (26. Mai 2019)

Wie sieht jetzt Dein Modell aus?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Und welche der beiden würde bleiben und wie sähe die dann aus?


Wie lange seid ihr wach?

In 20 min komm ich wieder


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Wie lange seid ihr wach?


Bis wir ins Bett gehen und schlafen.


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Bis wir ins Bett gehen und schlafen.


Komme in 20 min wieder, die sollen mal Gruppen Chat einführen


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Komme in 20 min wieder, die sollen mal Gruppen Chat einführen


Der ist schon längst eingeführt.


----------



## Heyoka955 (26. Mai 2019)

also ich habe punkt geschrieben aber jeder weiß was gemeint ist, denke um namen können wir uns später kümmern


----------



## mrBrown (26. Mai 2019)

Zu Punkt könnte man jetzt das gleiche wiederholen, was schon zu Koordinate gesagt wurde...


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Zu Punkt könnte man jetzt das gleiche wiederholen, was schon zu Koordinate gesagt wurde...


Soll ich dann zwei ints machen oder wie ?
Eine Position besteht ja aus zwei Punkten ?

Also zwei ints


----------



## AndiE (26. Mai 2019)

Du redest jetzt seit mindestens 30 Beiträgen immer um den gleichen Brei. Nimm dir doch mal ein Schachbrett, 13 Damesteine und ein Modellauto. Und versuche das Problem damit nachzuspielen. Was stellst du dabei fest?


----------



## Heyoka955 (26. Mai 2019)

AndiE hat gesagt.:


> Du redest jetzt seit mindestens 30 Beiträgen immer um den gleichen Brei. Nimm dir doch mal ein Schachbrett, 13 Damesteine und ein Modellauto. Und versuche das Problem damit nachzuspielen. Was stellst du dabei fest?


Dass das Auto nicht überall fahren jann


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Soll ich dann zwei ints machen oder wie ?
> Eine Position besteht ja aus zwei Punkten ?
> 
> Also zwei ints


Ja. Oder siehst du dabei irgendwelche Probleme?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Ja. Oder siehst du dabei irgendwelche Probleme?


Weil ich nicht weiß ob man klasse braucht dafür...

Reicht das nicht als Instanz ?


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Weil ich nicht weiß ob man klasse braucht dafür...
> 
> Reicht das nicht als Instanz ?


Was spricht denn dafür, die zwei ints als Klasse zu modellieren und was dagegen?


Lass das Wort Instanz hier weg...


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Was spricht denn dafür, die zwei ints als Klasse zu modellieren und was dagegen?
> 
> 
> Lass das Wort Instanz hier weg...


Nichts , aber wäre das keine Verletzung laut oc


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Nichts , aber wäre das keine Verletzung laut oc


Formulier doch mal ganze Sätze...

Was wäre eine Verletzung und warum?


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Eine Position besteht ja aus zwei Punkten ?
> 
> Also zwei ints


Aha...

EDIT: Huch, da waren ein paar ungelesene Beiträge dazwischen...


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Formulier doch mal ganze Sätze...
> 
> Was wäre eine Verletzung und warum?


Weil Objekt calisthenics sagt dass Objekte eine Bedeutung haben und wrappen sollte.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Weil Objekt calisthenics sagt dass Objekte eine Bedeutung haben und wrappen sollte.


Das klappt ja gut mit ganzen Sätzen...

Hat die Klasse Position eine Bedeutung? Haben die beiden ints in dieser eine Bedeutung?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Das klappt ja gut mit ganzen Sätzen...
> 
> Hat die Klasse Position eine Bedeutung? Haben die beiden ints in dieser eine Bedeutung?


Ja Position hat eine Bedeutung und die ints auch.
Wäre gut wenn du auf den
Punkt kommst hahaha


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Wäre gut wenn du auf den
> Punkt kommst hahaha


Wäre gut, wenn Du den Punkt endlich verstehen würdest.


----------



## Heyoka955 (26. Mai 2019)

mihe7 hat gesagt.:


> Wäre gut, wenn Du den Punkt endlich verstehen würdest.


Der Punkt besteht aus Ints?

Was gibt es da noch zu verstehen


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Ja Position hat eine Bedeutung und die ints auch.


Stellen die ints innerhalb von Position noch ein Konzept dar? Oder ist das Konzept bereits durch Position dargestellt?


Um dir mal ein paar Beispiele für sinnvolles Wrappen zu geben:
Eine Person hat einen Namen und eine Adresse. Beides lässt sich als String darstellen, beides sind aber auch Konzepte, die durch eine eine Klasse deutlich besser dargestellt sind, ein Name und eine Adresse sind ja zwei völlig unterschiedliche Dinge.
Oder: eine Person hat einen Geburtstag, das sind Tag, Monat, Jahr. Kann man alles drei als int in der Personen-Klasse darstellen, man kann aber auch eine Datums-Klasse modellieren, und zusätzlich auch noch Konzepte wie Tag, Monat und Jahr. "Tag" sagt eben deutlich mehr aus, als "int".

Kannst du das irgendwie auf diesen Fall übertragen?


----------



## mihe7 (26. Mai 2019)

Heyoka955 hat gesagt.:


> Was gibt es da noch zu verstehen


Nicht meinen Punkt, seinen Punkt.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Stellen die ints innerhalb von Position noch ein Konzept dar? Oder ist das Konzept bereits durch Position dargestellt?
> 
> 
> Um dir mal ein paar Beispiele für sinnvolles Wrappen zu geben:
> ...


Ja also ein Punkt für x Position des Feldes und anderer Punkt für y. Dann bräuchte man Objekte für X und Y warte knn es zeigen ?


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Ja also ein Punkt für x Position des Feldes und anderer Punkt für y. Dann bräuchte man Objekte für X und Y warte knn es zeigen ?


Formuliert doch mal bitte ganze und verständliche Sätze...


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Formuliert doch mal bitte ganze und verständliche Sätze...


Dachte wäre verständlich also
Es existiert ein Punkt und in dem
Punkt werden zwei Instanzen gespeichert einmal die X-Position und einmal Y Position. Diese Positionen speichern die ints


----------



## mrBrown (26. Mai 2019)

Okay, es gibt bei dir also eine Klasse "Punkt", diese hat zwei Felder vom Typ "Position", und "Position" enthält jeweils einen "int"?


Was unterscheidet "Position" von int?


Es macht btw wenig Sinn, sich immer ein völlig neues Modell auszudenken, wenn man dir Fragen zum alten stellt. Wenn du so weiter machst, drehen wir uns noch in drei Wochen um dieses Problem und sind dem keinen Schritt näher gekommen. So viele Ideen, wie du bis jetzt allein für die Modellierung der Position/Koordinaten/Punkte/Whatever hattest, hatte ich nicht mal für das gesamte Modell...


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Okay, es gibt bei dir also eine Klasse "Punkt", diese hat zwei Felder vom Typ "Position", und "Position" enthält jeweils einen "int"?
> 
> 
> Was unterscheidet "Position" von int?
> ...


Ich denke wir beide meinen das gleiche aber ich verwende die falschen Begriffe.

Könntest du das vllt sagen


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Ich denke wir beide meinen das gleiche aber ich verwende die falschen Begriffe.
> 
> Könntest du das vllt sagen



Nein, ich sage dir keine Lösung vor.

Die Begriffe sind hier auch absolut nicht das Problem. (Außer der Begriff "Instanz", den du ein bisschen wahllos benutzt?)


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Nein, ich sage dir keine Lösung vor.
> 
> Die Begriffe sind hier auch absolut nicht das Problem.


Also schau ich will in Position zwei Objekte haben die einen integer speichern und diese integer beinhaltet die Stelle wo sich der Rover befindet.
Also es sind zwei zahlen


----------



## mrBrown (26. Mai 2019)

Schon wieder ein neues Konzept...

Jetzt also *Position*, die zwei "Objekte" enthält, die jeweils einen *int* enthalten...


Und passend zu dem neuen Konzept wieder die gleichen Fragen: was unterscheidet die "Objekte" von den int, die darin enthalten sind?


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Schon wieder ein neues Konzept...
> 
> Jetzt also *Position*, die zwei "Objekte" enthält, die jeweils einen *int* enthalten...
> 
> ...


sie haben eine Bedeutung also es sind keine bloßen ints, klar hätte ich die Objekte wegwerfen können und direkt als ürimiitven ints abspeichern aber dies ist ja ein verstoß.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> sie haben eine Bedeutung also es sind keine bloßen ints, klar hätte ich die Objekte wegwerfen können und direkt als ürimiitven ints abspeichern aber dies ist ja ein verstoß.


Okay. Welche Bedeutung haben denn *PunktX* und *PunktY, *die ein* int *innerhalb von* Position *nicht hat?


(Schmeiß aus deiner Grafik wieder alle Attribute raus, die haben da noch nichts zu suchen...)


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Okay. Welche Bedeutung haben denn *PunktX* und *PunktY, *die ein* int *innerhalb von* Position *nicht hat?
> 
> 
> (Schmeiß aus deiner Grafik wieder alle Attribute raus, die haben da noch nichts zu suchen...)


Sie sind zwei Objekte aber man kann sie wegschmeissen wie gesagt.


----------



## mrBrown (26. Mai 2019)

Ich habs glaub ich schon mal gesagt: Du kannst dein Model aufbauen wie du willst, solange du es *sinnvoll begründen* kannst. Das ist das, was du bisher noch nicht hinbekommen hast. Und nein, "aber dies ist ja ein verstoß" ist keine Begründung, sondern eine Eingeständnis von Ahnungslosigkeit!


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Sie sind zwei Objekte aber man kann sie wegschmeissen wie gesagt.


Wenn das immer noch deine Begründung ist, ist es eher anzuraten, dein Studium wegzuschmeißen und ne Ausbildung zum [Hier Beruf einsetzen, bei dem, egal wie schlimm der Fehler ist den man macht, kein einziges Lebewesen davon negativ betroffen ist. Sowas wie, keine Ahnung, "Punkte-auf-Bildern-von-Marienkäfern-Zähler].


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Ich habs glaub ich schon mal gesagt: Du kannst dein Model aufbauen wie du willst, solange du es *sinnvoll begründen* kannst. Das ist das, was du bisher noch nicht hinbekommen hast. Und nein, "aber dies ist ja ein verstoß" ist keine Begründung, sondern eine Eingeständnis von Ahnungslosigkeit!


Weil ich dachte du willst etwas korrigieren oder etwas ist falsch.

Also für Mich reicht eig mein Modell aus. Also finde die Idee mit den Punkten in Ordnung.

Meine Begründung habe ich auch geliefert?


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Meine Begründung habe ich auch geliefert?



Sollen dies deine Begründung sein?



Heyoka955 hat gesagt.:


> sie haben eine Bedeutung also es sind keine bloßen ints, klar hätte ich die Objekte wegwerfen können und direkt als ürimiitven ints abspeichern aber dies ist ja ein verstoß.


----------



## Heyoka955 (26. Mai 2019)

mrBrown hat gesagt.:


> Sollen dies deine Begründung sein?


Ne das in position zwei Punkte gespeichert werden.
Und diese Punkte Objekte sind.


----------



## mrBrown (26. Mai 2019)

Heyoka955 hat gesagt.:


> Ne das in position zwei Punkte gespeichert werden.
> Und diese Punkte Objekte sind.


Also, deine Begründung dafür, dass in Position zwei Punkte existieren, die jeweils einen Int enthalten, ist, "das in position zwei Punkte gespeichert werden.Und diese Punkte Objekte sind."

Willst du uns verarschen? Das hat ja schon Marlene Mortler-Niveau...


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Also, deine Begründung dafür, dass in Position zwei Punkte existieren, die jeweils einen Int enthalten, ist, "das in position zwei Punkte gespeichert werden.Und diese Punkte Objekte sind."
> 
> Willst du uns verarschen? Das hat ja schon Marlene Mortler-Niveau...


Du hast gerade meinen Schlaf gefickt

Ich sterbe gerade, ne ich glaueb ich weiß nicht was du genau willst.


----------



## mrBrown (27. Mai 2019)

Ganz einfache Frage: Warum hast du Position so modelliert, wie du es gemacht hast und warum findest du es sinnvoller als andere Varianten?


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Ganz einfache Frage: Warum hast du Position so modelliert, wie du es gemacht hast und warum findest du es sinnvoller als andere Varianten?


Weil ich um ehrlich zu sein, der prof in ein Video gemacht ht wo er das Projekt refactort hat.
Und eine klassse Position hatte.


----------



## mrBrown (27. Mai 2019)

Die Frage ist nicht, warum es eine Klasse Position gibt, sondern warum sie so aussieht, wie sie bei dir aussieht.

(Aber immerhin bist du ehrlich und gibst zu, dass du nichts verstehst, das ist nicht jeder)


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Die Frage ist nicht, warum es eine Klasse Position gibt, sondern warum sie so aussieht, wie sie bei dir aussieht.
> 
> (Aber immerhin bist du ehrlich und gibst zu, dass du nichts verstehst, das ist nicht jeder)


Ich habe alles verstanden bis auf den Schritt also den Schritt mit der Position!
Was denkst du was ich machen soll mit der Klasse Position ?


----------



## mrBrown (27. Mai 2019)

Für den Anfang ganze Sätze schreiben  
Keine Ahnung, was du mit dem Schritt meinst...


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Für den Anfang ganze Sätze schreiben
> Keine Ahnung, was du mit dem Schritt meinst...


Was denkst du wie man das retten knn?


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Was denkst du wie man das retten knn?


Deinen Satzbau? Keine Ahnung, langsamer schreiben ("zu schnell geschrieben" war ja bisher deine Begründung...)?.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Deinen Satzbau? Keine Ahnung, langsamer schreiben ("zu schnell geschrieben" war ja bisher deine Begründung...)?.


Ich rede von meinem Problem an der Modellierung.


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Ich rede von meinem Problem an der Modellierung.


DANN SCHREIB DAS DOCH. HERRGOTT NOCHMAL.

Ich kann das Problem, dass du deine Entscheidungen nicht begründen kannst, nicht lösen. Das schaffst nur du selbst mit Nachdenken. Ich habe dir mir als genug Ansatzpunkte gegeben, du müsstest nur mal über eine meiner zig Fragen zu deinem Modell ernsthaft nachdenken, sie beantworten ohne direkt ein völlig anderes Modell zu entwerfen und dann mit der Antwort vielleicht das Modell weiterentwickeln.



Eine ganz ehrliche und nicht böse gemeinte Einschätzung von mir: Du bist für ein Informatik-Studium nicht geeignet. Ich kann dir nur dazu raten, lieber jetzt auszusteigen, anstatt da die nächsten Jahre deines Lebens zu vergeuden.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> DANN SCHREIB DAS DOCH. HERRGOTT NOCHMAL.
> 
> Ich kann das Problem, dass du deine Entscheidungen nicht begründen kannst, nicht lösen. Das schaffst nur du selbst mit Nachdenken. Ich habe dir mir als genug Ansatzpunkte gegeben, du müsstest nur mal über eine meiner zig Fragen zu deinem Modell ernsthaft nachdenken, sie beantworten ohne direkt ein völlig anderes Modell zu entwerfen und dann mit der Antwort vielleicht das Modell weiterentwickeln.
> 
> ...


ich habe mich hingesetzt und mein hirn angestrengt und habe mein Modell kurz umgeändert.
ich habe überlegt, dass ich Position als ein Objekt sehe wo die Positionen bestimmt werden um Hindernisse und den Rover zu platzieren. 

Vorher hatte ich ja nur daran gedacht, dass ich Position dazu verwende um die aktuelle position des rovers zu bestimmen aber wäre es nicht besser wenn wir Position als Objekt zur Bestimmung der Objekte an jeweilige Stelle des Feldes verwenden?

natürlich erklärt es viellicht nicht dein problem mit den punkten


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> klar hätte ich die Objekte wegwerfen können und direkt als ürimiitven ints abspeichern aber dies ist ja ein verstoß.


Lies mal die Regel ganz, ganz genau und nicht nur die Überschrift.


----------



## Heyoka955 (27. Mai 2019)

mihe7 hat gesagt.:


> Lies mal die Regel ganz, ganz genau und nicht nur die Überschrift.


Darauf wollte ich kommen später aber ich wikk erstmal meine Idee also
Meine Modellierung zu Ende bringen.


----------



## Blender3D (27. Mai 2019)

Heyoka955 hat gesagt.:


> Darauf wollte ich kommen später aber ich wikk erstmal meine Idee also
> Meine Modellierung zu Ende bringen.


Dabei sind aber unnötige redundante  Konstrukte wie Breite und Laenge nicht wirklich hilfreich.
Wenn Du keine primitiven Datentypen verwenden darfst dann geht das auch so.

```
class Koordinate {
      Integer breite;
      Integer laenge;
}
```


----------



## mihe7 (27. Mai 2019)

Blender3D hat gesagt.:


> Wenn Du keine primitiven Datentypen verwenden darfst dann geht das auch so.


Darf er ja, aber nur an bestimmten Stellen.


----------



## Heyoka955 (27. Mai 2019)

Blender3D hat gesagt.:


> Dabei sind aber unnötige redundante  Konstrukte wie Breite und Laenge nicht wirklich hilfreich.
> Wenn Du keine primitiven Datentypen verwenden darfst dann geht das auch so.
> 
> ```
> ...


Okay dann habe ich es ja 

Genau das habe ich Anfang an gesagt.

Dann brauche ich auch keine neuen Objekte herzustellen.

Seid ihr alle wach?


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> Genau das habe ich Anfang an gesagt.


LOL. Mal abgesehen davon, dass der Mars von Koordinate abgeleitet war, breite/länge die Breite und Länge des Felds beschreiben sollten, Du dann die Koordinate für überflüssig erklärt, dafür Klassen Breite und Länge eingeführt hast, um anschließend Klassen für Position und Koordinate zu verwenden - wobei gefühlte 200 Beiträge lang der Unterschied zwischen Position und Koordinate geklärt werden musste, Du bis wenigstens zu Kommentar #226 den Sinn Deiner Regel nicht verstanden hast und bis jetzt noch keine Begründung zu Deinen Entwurfsentscheidungen abgeben konntest, hast Du genau das von Anfang an gesagt.


----------



## Heyoka955 (27. Mai 2019)

Blender3D hat gesagt.:


> Dabei sind aber unnötige redundante  Konstrukte wie Breite und Laenge nicht wirklich hilfreich.
> Wenn Du keine primitiven Datentypen verwenden darfst dann geht das auch so.
> 
> ```
> ...



Hast recht  danke 

Denke bevor ich frage erkundige ich mich besser.
Hätte mich besser Vorbereiten sollen.


----------



## Meniskusschaden (27. Mai 2019)

Wir sind ja noch nicht bei 500 , deshalb:

Ich finde den Namen Koordinate etwas unglücklich, weil eine Koordinate ja eigentlich die Lage nur bezüglich einer Dimension angibt. Um einen Punkt (oder eine Position) im zweidimensionalen Raum zu beschreiben, braucht man also zwei Koordinaten. Insofern finde ich Punkt oder Position wären für den Datentypen, der beide Angaben enthält, treffendere Bezeichnungen.

Außerdem überlege ich noch, ob man an der Stelle wirklich schon Integer verwenden darf. Immerhin führt das dazu, dass man beispielsweise der Breitenangabe etwas völlig anderes (etwa eine Geschwindigkeit oder eine Temperatur) zuweisen könnte. Ich frage mich, ob die strikte Kapselungsvorschrift von Object Calisthenics nicht auch dem Zweck dient, die Zuweisungskompatibilität zwischen unterschiedlichen Bedeutungen zu verhindern.


----------



## kneitzel (27. Mai 2019)

Heyoka955 hat gesagt.:


> Darauf wollte ich kommen später aber ich wikk erstmal meine Idee also
> Meine Modellierung zu Ende bringen.



Also auf die Regeln, die vom Modell eingehalten werden sollen, willst du erst später zurück kommen, nachdem Du das Modell erstellt hast? (Nur eine reine Verständnisfrage....)



mrBrown hat gesagt.:


> Eine ganz ehrliche und nicht böse gemeinte Einschätzung von mir: Du bist für ein Informatik-Studium nicht geeignet. Ich kann dir nur dazu raten, lieber jetzt auszusteigen, anstatt da die nächsten Jahre deines Lebens zu vergeuden.



Also wenn ich das oben richtig verstanden habe, dann würde ich diese Einstellung teilen. Habe ich ja auch schon in einem früheren Thread geschrieben.

Evtl. ist da tatsächlich etwas anderes besser geeignet, bei dem man mehr geführt wird und man sich weniger selbst erarbeiten muss ...


----------



## Heyoka955 (27. Mai 2019)

Meniskusschaden hat gesagt.:


> Wir sind ja noch nicht bei 500 , deshalb:
> 
> Ich finde den Namen Koordinate etwas unglücklich, weil eine Koordinate ja eigentlich die Lage nur bezüglich einer Dimension angibt. Um einen Punkt (oder eine Position) im zweidimensionalen Raum zu beschreiben, braucht man also zwei Koordinaten. Insofern finde ich Punkt oder Position wären für den Datentypen, der beide Angaben enthält, treffendere Bezeichnungen.
> 
> Außerdem überlege ich noch, ob man an der Stelle wirklich schon Integer verwenden darf. Immerhin führt das dazu, dass man beispielsweise der Breitenangabe etwas völlig anderes (etwa eine Geschwindigkeit oder eine Temperatur) zuweisen könnte. Ich frage mich, ob die strikte Kapselungsvorschrift von Object Calisthenics nicht auch dem Zweck dient, die Zuweisungskompatibilität zwischen unterschiedlichen Bedeutungen zu verhindern.


ich habe das zu position geändert mit einer int als Instanz, weil wir sollen nur die primitiven Datentypen wrappen, die eine Bedeutung haben.
aber eine frage bleibt offen, 

wie sieht das Verhältnis von Welt und oberflaehe und Rover aus?

ich bin mir nicht sicher ob ich da war erben kann?


----------



## M.L. (27. Mai 2019)

> int als Instanz


  Nur um sicherzugehen: "for instance" bedeutet im Deutschen "zum Beispiel"  (nicht Instanz einer Klasse i.S. der OO)
Zum Thema Wrapper: http://openbook.rheinwerk-verlag.de/javainsel/09_004.html#i09_62


> wie sieht das Verhältnis von Welt und oberflaehe und Rover aus?
> 
> ich bin mir nicht sicher ob ich da war erben kann?


Vorschlag: die Welt hat eine Oberfläche, die sich mit x-y-Koordinaten beschreiben lässt. Der Rover hat auch eine Position innerhalb dieser Welt, und ebendiese gilt es ermittelbar zu machen.         Weiterhin soll der Rover nur geradeaus und -beim Treffen auf Hindernisse- 90 Grad nach rechts fahren.  Im ungünstigsten Fall könnte er ständig dieselbe Strecke hin und zurück fahren und oder sein Ziel nie erreichen.


----------



## mrBrown (27. Mai 2019)

Blender3D hat gesagt.:


> Wenn Du keine primitiven Datentypen verwenden darfst dann geht das auch so.


Primitive Typen im Sinne der Modellierung entsprechen nicht eindeutig den primitiven Typen in Java.
Integer zB ist dabei auch ein primitiver Type. 



Meniskusschaden hat gesagt.:


> Außerdem überlege ich noch, ob man an der Stelle wirklich schon Integer verwenden darf. Immerhin führt das dazu, dass man beispielsweise der Breitenangabe etwas völlig anderes (etwa eine Geschwindigkeit oder eine Temperatur) zuweisen könnte. Ich frage mich, ob die strikte Kapselungsvorschrift von Object Calisthenics nicht auch dem Zweck dient, die Zuweisungskompatibilität zwischen unterschiedlichen Bedeutungen zu verhindern.


Ich würde beides als Valide ansehen. Einerseits ist die Position ja ein Wrapper für die beiden Werte, und die beiden Werte haben für sich allein keine Bedeutung, sondern immer erst zusammen. Andererseits kann man auch sagen, die einzelnen Koordinaten in Position sind relevant und stellen ein eigenes Konzept dar, wie zB Längen- und Breitengrad als Gradzahl mit Beschränkung auf 360° und korrektem Unter- und Überlauf.

Hier gab es ja beide Varianten x-Mal, nur konnte er nichts begründen außer "anders ist's verboten"....


----------



## mrBrown (27. Mai 2019)

M.L. hat gesagt.:


> Zum Thema Wrapper: http://openbook.rheinwerk-verlag.de/javainsel/09_004.html#i09_62


Die Java-Wrapper-Klassen zählen in diesem Kontext als primitive Werte, wie auch zB String. Typen und Konzepte im Modellierungskontext sind nicht immer mit den gleich heißenden Konzepten in Java identisch


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Primitive Typen im Sinne der Modellierung entsprechen nicht eindeutig den primitiven Typen in Java.
> Integer zB ist dabei auch ein primitiver Type.
> 
> 
> ...


Genau also mein uml sieht so aus
ich könnte auch hier meine Instanz bei Welt wieder nur mit Ints machen aber hier macht es eindeutig Sinn Objekte zu verwenden eig.


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> ich habe das zu position geändert mit einer int als Instanz, weil wir sollen nur die primitiven Datentypen wrappen, die eine Bedeutung haben.
> aber eine frage bleibt offen,



Dann finde doch raus, ob die Werte eine Bedeutung haben. Erklär's meinem 80-jährigen Opa mal in beiden Varianten, und überleg dir, was der besser versteht...



Heyoka955 hat gesagt.:


> ich bin mir nicht sicher ob ich da war erben kann?


Nein! In diesem Programm kannst du nirgends erben. Generell wirst du vermutlich nur alle paar Hundert Klassen mal auf Vererbung stoßen (Vererbung von abstrakten Klassen stellen uU eine Ausnahme da, die du alle 84 Klassen siehst)


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Dann finde doch raus, ob die Werte eine Bedeutung haben. Erklär's meinem 80-jährigen Opa mal in beiden Varianten, und überleg dir, was der besser versteht...
> 
> 
> Nein! In diesem Programm kannst du nirgends erben. Generell wirst du vermutlich nur alle paar Hundert Klassen mal auf Vererbung stoßen (Vererbung von abstrakten Klassen stellen uU eine Ausnahme da, die du alle 84 Klassen siehst)


Breite und laenge stehen für die laenge der Oberfläche und die Breite.

Ich will damit klar machen wie gross das Feld ist.
Also eine Grenze bestimmen


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> ich könnte auch hier meine Instanz bei Welt wieder nur mit Ints machen aber hier macht es eindeutig Sinn Objekte zu verwenden eig.


Bitte vergiss das Wort Instanz. Du hast es in diesem ganzen Thread noch kein einziges Mal richtig verwendet. Ich hab auch keine Ahnung, was du mit diesem Satz sagen willst...

Allerdings hat Welt jetzt drei Attribute: Die Oberfläche, die Breite, die Länge.


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Breite und laenge stehen für die laenge der Oberfläche und die Breite.


Also: in Welt speicherst du die Werte von Oberfläche? Fällt dir daran was auf?



Heyoka955 hat gesagt.:


> Ich will damit klar machen wie gross das Feld ist.


Und Breite und Länge stellen *zusammen* *ein Konzept* dar, fällt dir daran auch was auf?


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Also: in Welt speicherst du die Werte von Oberfläche? Fällt dir daran was auf?
> 
> 
> Und Breite und Länge stellen *zusammen* *ein Konzept* dar, fällt dir daran auch was auf?


Nein ich wollte von der Klasse Oberfläche aus die Werte in der Klasse Welt aufrufen.

Und ja ist die selbe Logik


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Nein ich wollte von der Klasse Oberfläche aus die Werte in der Klasse Welt aufrufen.


Klingt das sinnvoll? Oder ist es vielleicht Sinnvoller, Werte der Klasse Oberfläche auch in der Klasse Oberfläche zu haben?



Heyoka955 hat gesagt.:


> Und ja ist die selbe Logik


Und daraus schließt du jetzt was ...?


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Klingt das sinnvoll? Oder ist es vielleicht Sinnvoller, Werte der Klasse Oberfläche auch in der Klasse Oberfläche zu haben?
> 
> 
> Und daraus schließt du jetzt was ...?


In der Klasse Oberfläche aber ich musste dann diese nicht als Instanzen bezeichnen.
Denn habe ja eine linkedlist als Instanz.

Aber ich kann das ja mitten in den Methoden aufrufen.

Kann ich die Objekte Breite laenge  so lassen aber


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> aber ich musste dann diese nicht als Instanzen bezeichnen.
> Denn habe ja eine linkedlist als Instanz.


Wie oft denn noch? Lass endlich das Wort "Instanz" weg! Du hast keine Ahnung was es bedeutet und streust es einfach sinnlos irgendwo ein, das verwirrt höchstens alle mitlesenden.



Heyoka955 hat gesagt.:


> In der Klasse Oberfläche aber ich musste dann diese nicht als Instanzen bezeichnen.
> Denn habe ja eine linkedlist als Instanz.
> 
> Aber ich kann das ja mitten in den Methoden aufrufen.


Ich habe keine Ahnung, was du mit diesem Beitrag sagen willst.



Heyoka955 hat gesagt.:


> Kann ich die Objekte Breite laenge so lassen aber


Wenn du begründen kannst, warum die sinnvoll sind ja.




*Und versuch doch mal bitte, einfach nur stumpf auf jede einzelne Frage zu antworten.*

Die letzten Fragen sind immer noch offen, eine Beantwortung würde dich aber sicher weiterbringen.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Klingt das sinnvoll? Oder ist es vielleicht Sinnvoller, Werte der Klasse Oberfläche auch in der Klasse Oberfläche zu haben?
> 
> 
> Und daraus schließt du jetzt was ...?





mrBrown hat gesagt.:


> Wie oft denn noch? Lass endlich das Wort "Instanz" weg! Du hast keine Ahnung was es bedeutet und streust es einfach sinnlos irgendwo ein, das verwirrt höchstens alle mitlesenden.
> 
> 
> Ich habe keine Ahnung, was du mit diesem Beitrag sagen willst.
> ...


Es ist sinnvoller in der Klasse zu haben weil man die Werte aus der
Klasse auch direkt zugreifen möchte.

Und weil es die selbe Logik ist braucht man keine Objekte laenge und breite sondern ints genügen ?


----------



## mrBrown (27. Mai 2019)

Du kannst auch einzelne Teile aus Beiträgen zitieren, zB mit markieren und dann "Antworten" klicken. Dann ist auch verständlich, auf was du antwortest.




Heyoka955 hat gesagt.:


> Es ist sinnvoller in der Klasse zu haben weil man die Werte aus der
> Klasse auch direkt zugreifen möchte.


Richtig.



Heyoka955 hat gesagt.:


> Und weil es die selbe Logik ist braucht man keine Objekte laenge und breite sondern ints genügen ?


Nein. Wenn es dasselbe ist, dann brauchst du keine zwei verschiedene Klassen dafür, sondern nur eine.

Länge ist die selbe Klasse wie Breite - also musst du eine Klasse finden, die beides darstellt. Verständlich für dich?


Aber worauf ich eigentlich hinaus wollte: Länge und Breite stellen *zusammen* *ein Konzept* dar - wenn Dinge *zusammen* eine Bedeutung haben, was könnte man dann machen?


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Du kannst auch einzelne Teile aus Beiträgen zitieren, zB mit markieren und dann "Antworten" klicken. Dann ist auch verständlich, auf was du antwortest.
> 
> 
> 
> ...


Zusammen als ein Objekt fassen also eine Klasse nur


----------



## mrBrown (27. Mai 2019)

Wieder nur auf die Hälfte geantwortet...


Erstmal dies:
Länge ist die selbe Klasse wie Breite - also musst du eine Klasse finden, die beides darstellt. 

Frage 1: Verständlich für dich?

Frage 2: Wie sähe die Klasse aus?


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Wieder nur auf die Hälfte geantwortet...
> 
> 
> Erstmal dies:
> ...


Class Groeße{
int laenge
Int breite


}


----------



## mrBrown (27. Mai 2019)

...


Mal als Beispiel:

Es gibt Privatautos und Firmenautos. Eine Klasse Privatauto und eine Klasse Firmenauto ist dein bisheriger Stand (jeweils eine Klasse Länge und Breite).
Privatautos und Firmenautos sind aber das selbe Konzept: Autos. Also ersetzt man diese beiden Klassen durch eine neue: Auto.


Frage 1: Verstehst du dieses Beispiel?

Frage 2: Kannst du dies auf deine Klassen Länge und Breite anwenden?

Frage 2a: Wenn ja, wie sieht die neue Klasse (das Pendant zu Auto) dann aus?
Frage 2b: Wenn nein, warum nicht?


----------



## Heyoka955 (27. Mai 2019)

die selbe Logik wie du hast eine Linie und eine Linie besteht aus zwei punkten und wieso soll man zwei getrennte Klassen für die zwei punkten machen wenn man diese zwei punkten in der Linie implementieren kann


----------



## mrBrown (27. Mai 2019)

...

Kannst du auch einfach die Fragen beantworten?



Heyoka955 hat gesagt.:


> die selbe Logik wie du hast eine Linie und eine Linie besteht aus zwei punkten und wieso soll man zwei getrennte Klassen für die zwei punkten machen wenn man diese zwei punkten in der Linie implementieren kann


Nein, bei "Linie" sind wir noch nicht angekommen. Das ist wieder mal der zweite vor dem ersten Schritt...


----------



## Heyoka955 (27. Mai 2019)

Public Claas Flaeche{
- int laenge;
- int breite;


}


----------



## Blender3D (27. Mai 2019)

mrBrown hat gesagt.:


> Primitive Typen im Sinne der Modellierung entsprechen nicht eindeutig den primitiven Typen in Java.
> Integer zB ist dabei auch ein primitiver Type.


Wie Du treffend formuliert hast ist Integer in Java *kein *primitiver Datentyp.
Aber wenn man im "Sinn der Modellierung" handelt. Kann es aber auch keine Lösung sein, einen primitiven Datentyp noch einmal zu wrappen, diesem einen anderen Namen zu geben, und das dann als Lösung zu präsentieren.
Sollte die Lösung passen --> dann ist der Integer auch eine Lösung.


----------



## Heyoka955 (27. Mai 2019)

Blender3D hat gesagt.:


> Wie Du treffend formuliert hast ist Integer in Java *kein *primitiver Datentyp.
> Aber wenn man im "Sinn der Modellierung" handelt. Kann es aber auch keine Lösung sein, einen primitiven Datentyp noch einmal zu wrappen, diesem einen anderen Namen zu geben, und das dann als Lösung zu präsentieren.
> Sollte die Lösung passen --> dann ist der Integer auch eine Lösung.


Wann knn ich jetzt and Augen zu programmieren?


----------



## mrBrown (27. Mai 2019)

Blender3D hat gesagt.:


> Wie Du treffend formuliert hast ist Integer in Java *kein *primitiver Datentyp.
> Aber wenn man im "Sinn der Modellierung" handelt. Kann es aber auch keine Lösung sein, einen primitiven Datentyp noch einmal zu wrappen, diesem einen anderen Namen zu geben, und das dann als Lösung zu präsentieren.
> Sollte die Lösung passen --> dann ist der Integer auch eine Lösung.


Hier irgendwo im Thread steht die Erklärung dazu, warum man sowas macht, @Meniskusschaden hats schon mal geschrieben, ich auch, vermutlich auch noch irgendwer.

Unterschiedliche Dinge haben in unterschiedlichen Domänen schon mal gleiche Namen - daraus kann man aber nicht schließen, dass sie die selben Dinge sind.
In diesem Fall ist primitive != Primitiv in Java und Wrapper != Wrapper für primitive in Java.


Ein „int“ (oder auch Integer) hat keinerlei Bedeutung, es ist einfach nur eine beliebige Zahl, die irgendwas sein kann. Ein „irgendwas“ will man in der Modellierung immer vermeiden, da es eben nichts aussagt.

In deinem Modell gibt es keine Zahlen (Spezialfälle außen vor gelassen), alles was dadrin vor kommt, ist etwas ganz konkretes - also modellierst du es auch so. Die verschiedenen Dinge, die man durch Zahlen darstellen kann, haben meist auch nichts miteinander zu tun - warum sollten sie also den gleichen Typ haben, wenn sie völlig unterschiedliche Konzepte darstellen?

Ein Mensch hat keinen int als Alter, ein Mensch hat einfach ein Alter. Ob das Alter intern einen int benutzt, ist Implementierungsdetail.
Ein Mensch hat keinen float als Gewicht, ein Mensch hat einfach ein Gewicht. Ob das Gewicht intern einen float benutzt, ist Implementierungsdetail.
Ein Mensch hat keinen float als Größe, ein Mensch hat einfach eine Größe. Ob die Größe intern einen float benutzt, ist Implementierungsdetail.

Alles drei sind Zahlen - aber es sind drei Zählen, die völlig andere Dinge darstellen
Alle drei haben klare Konstraints, die ganze andere als die eines ints sind, zb darf nichts davon unter 0 sein.
Alle drei sind auch mehr als nur Zahlen: jedes davon hat eine Einheit, die man auch noch mit aufnehmen könnte.

„Ein Mensch hat Gewicht und Größe“ wird im Gegensatz zu „Ein Mensch hat zwei ints, Dir Gewicht und Größe sind“ auch noch jeder Nicht-Informatiker verstehen. 


Also Nein -> Integer ist keine Lösung, außer Ganze Zahlen zwischen −2.147.483.648 und 2.147.483.647 sind ganz explizit Teil der Domäne (zB, weil du einen „Taschenrechner für verschiedene Datentypen in der Programmiersprache C“ modellierst.)


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Wann knn ich jetzt and Augen zu programmieren?


Wenn das so weitergeht: jetzt, und mit Glück springt eine 5 bei raus, oder in ein paar Monaten mal, und es wird etwas besser.

Die Alternative ist, du reißt dich mal zusammen.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Wenn das so weitergeht: jetzt, und mit Glück springt eine 5 bei raus, oder in ein paar Monaten mal, und es wird etwas besser.
> 
> Die Alternative ist, du reißt dich mal zusammen.


Mein uml ist doch fertig jetzt?


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Mein uml ist doch fertig jetzt?


Na dann nimm die mal 2, 3h Zeit und Programmier das runter.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Na dann nimm die mal 2, 3h Zeit und Programmier das runter.


Hab privat geschrieben


----------



## Heyoka955 (27. Mai 2019)

wie geht man getter und setter um? will auf die variable zugreifen


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> wie geht man getter und setter um? will auf die variable zugreifen


Steht in den Regeln.


----------



## Heyoka955 (27. Mai 2019)

habe es gelöst



gäbe es eine andere datenstruktur ein Feld zu realisieren, das besser geiignet wäre?


----------



## Heyoka955 (27. Mai 2019)

Ka wie die Regel anwenden soll?

Habe gegoogelt, verstehe das nicht wirklich !


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> gäbe es eine andere datenstruktur ein Feld zu realisieren, das besser geiignet wäre?


Vielleicht, aber der Fehler hat nichts mit der Datenstruktur zu tun.

Ich möchte jetzt auch nicht direkt sagen, dass der Code schlecht ist, aber das was man in dem Screenshot sieht, schmeiß besser weg...


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Ka wie die Regel anwenden soll?


Für den Anfang reichen schon ganze, verständliche Sätze.


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> Hab privat geschrieben


Das gilt nicht.



Heyoka955 hat gesagt.:


> wie geht man getter und setter um? will auf die variable zugreifen


?!?



Heyoka955 hat gesagt.:


> du hast eine Linie und eine Linie besteht aus zwei punkten und wieso soll man zwei getrennte Klassen für die zwei punkten machen wenn man diese zwei punkten in der Linie implementieren kann


Endlich mal ein Satz von Dir, mit dem man arbeiten kann, ich drösel den mal auf:
1. eine Linie besteht aus zwei punkten
2. wieso soll man zwei getrennte Klassen für die zwei punkten
3. wenn man diese zwei punkten in der Linie implementieren kann

zu 1.: Wenn Du das genauso modellierst, dann hast Du eine Klasse Punkt und eine Klasse Linie. Die Klasse Linie hat zwei Attribute vom Typ Punkt, z. B. punkt1 und punkt2.



zu 2.: Wenn Du Dir das Diagramm zu 1. ansiehst, stellst Du fest, dass es keine Rolle spielt, wie "Punkt" tatsächlich aussieht. Er kann aus einer, zwei, hundert Koordinaten bestehen. Das ändert nichts am Konzept der Linie, die hier durch zwei Punkte definiert ist. Aus diesem Grund ist es durchaus sinnvoll, den Punkt als separate Klasse zu modellieren. 

zu 3.: Insbesondere deswegen, weil "Linie besteht aus 4 Koordinaten" nicht der Modellvorstellung "Linie besteht aus 2 Punkten" entspricht. 

Zwei Koordinaten je Punkt würden bereits festlegen, dass eine Linie ausschließlich in der Ebene existiert. Das muss - für sich betrachtet - nicht falsch sein, denn ein Modell ist eine vereinfachende, zweckgebundene Abbildung eines Originals. Vereinfachend heißt, dass in der Regel nicht alle Informationen erfasst werden. Zweckgebunden heißt, dass das Modell geeignet sein muss, einen bestimmten Zweck zu erfüllen. 

Würdest Du also an einem 2D-Zeichenprogramm arbeiten, wäre es nicht falsch, die Linie mit vier Koordinaten darzustellen, denn das Modell wäre hierfür geeignet. Noch geeigneter ist es allerdings in der Regel, wenn man das Konzept des Punktes erkennen und entsprechend modellieren würde: an vielen Stellen werden nämlich Punkte (Koordinatenpaare) und keine Einzelkoordinaten benötigt.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Für den Anfang reichen schon ganze, verständliche Sätze.


Ich weiß nicht wie ich die Regel anwenden soll!
Kann meinen Code zeigen wenn ihr wollt.


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> mrBrown hat gesagt.:
> 
> 
> > Für den Anfang reichen schon ganze, verständliche Sätze.
> ...


Du weißt nicht, wie Du ganze, verständliche Sätze schreiben sollst?!?


----------



## Heyoka955 (27. Mai 2019)

mihe7 hat gesagt.:


> Du weißt nicht, wie Du ganze, verständliche Sätze schreiben sollst?!?


Nein man ich rede von getter und setter


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Nein man ich rede von getter und setter


Ja dann sag das doch.

Einfache Regel: keine Setter benutzen, getter so wenig wie möglich.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Ja dann sag das doch.
> 
> Einfache Regel: keine Setter benutzen, getter so wenig wie möglich.


Kriege das schwer hin.

Also wie kann ich es komplett vermeiden.

Die Anzüge sind schön heftig...


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Kriege das schwer hin.
> 
> Also wie kann ich es komplett vermeiden.


Indem du einfach keine Setter mehr hinschreibst. Ist ganz einfach 

Aber wie ich schon sagte: du bist nicht an dem Punkt, wo du programmieren solltest (oder könntest).




Heyoka955 hat gesagt.:


> Die Anzüge sind schön heftig...


Ich steh auch auf heftig schöne Anzüge


----------



## jhjh (27. Mai 2019)

mrBrown hat gesagt.:


> Einfache Regel: keine Setter benutzen, getter so wenig wie möglich.


Ich kenne jetzt hier nicht den ganzen Sachverhalt, aber deine Aussage bezieht sich nur auf diesen Anwendungskontext, ja ?


----------



## mrBrown (27. Mai 2019)

jhjh hat gesagt.:


> Ich kenne jetzt hier nicht den ganzen Sachverhalt, aber deine Aussage bezieht sich nur auf diesen Anwendungskontext, ja ?


Wenn man sauber trennt zwischen Domäne und Anwendung/Infrastruktur drum rum, kann man das in der Domäne fast immer durchziehen.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Indem du einfach keine Setter mehr hinschreibst. Ist ganz einfach
> 
> Aber wie ich schon sagte: du bist nicht an dem Punkt, wo du programmieren solltest (oder könntest).
> 
> ...


was fehlt denn noch, habe mein uml bearbeitet, ich hätte eine frage

ich sehe position und flaeche haben dieselbe attribute und anzahl der attribute ist auch gleich.

wäre es nicht möglich, dass ich die beiden zu einer klasse mache?


----------



## mihe7 (27. Mai 2019)

jhjh hat gesagt.:


> Ich kenne jetzt hier nicht den ganzen Sachverhalt, aber deine Aussage bezieht sich nur auf diesen Anwendungskontext, ja ?


Getter und Setter heben die Kapselung faktisch auf, daher so wenig wie möglich so viel als nötig.


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> Also wie kann ich es komplett vermeiden.


Was hast Du denn überhaupt vor?


----------



## Heyoka955 (27. Mai 2019)

mihe7 hat gesagt.:


> Was hast Du denn überhaupt vor?


will glaube ich erstmal mein Modell zu ende machen, bevor ich ans code gehe. daher die frage was noch fehlt


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> will glaube ich erstmal mein Modell zu ende machen, bevor ich ans code gehe


Eine weise Entscheidung. 

Wie sieht Dein Modell denn aktuell aus? Ist es das aus Kommentar #299?


----------



## Heyoka955 (27. Mai 2019)

Anhang anzeigen 11997


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> ich sehe position und flaeche haben dieselbe attribute und anzahl der attribute ist auch gleich.
> 
> wäre es nicht möglich, dass ich die beiden zu einer klasse mache?


Nein! Nur weil zwei Dinge zufällig ähnliche Attribute haben, sind sie noch lange nicht das gleiche.

Du siehst doch hoffentlich einen Unterschied zwischen einer Fläche und einem Punkt (auf dieser Fläche)?!


----------



## mrBrown (27. Mai 2019)

Es ist echt eine Kunst, wie du immer wieder kleine, subtile Änderungen einführst, die das ganze Model auf den Kopf stellen.


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Nein! Nur weil zwei Dinge zufällig ähnliche Attribute haben, sind sie noch lange nicht das gleiche.
> 
> Du siehst doch hoffentlich einen Unterschied zwischen einer Fläche und einem Punkt (auf dieser Fläche)?!


hast recht, aber was kann ich noch hinzufügen.

ich finde dass ich fertig bin aber mein verstand ist nicht erfahren wie deiner hier


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> hast recht, aber was kann ich noch hinzufügen.


Du kannst beispielsweise mal damit anfangen, uns Dein Modell zu erklären. So wie vorhin mit der Linie, also mit ganzen Sätzen. So dass man auch versteht, was Du uns sagen willst. Dann könnte es passieren, dass Dir das ein oder andere auffällt.


----------



## Heyoka955 (27. Mai 2019)

so also wir rufen von der Klasse oberflaeche die Methode erstelleKarte(Flaeche s) auf danach fügen wir alle Hindernisse und Rover ein und herstellen eine Karte in form einer Datenstruktur.
Nachdem wir das gemacht haben. Printen wir das Feld wo der Roboter in der Mitte steht.
Ich wollte eine Oberklasse object haben wo ich dann ein Zeichen von typ char erbe in den Klassen rover und Hindernis, dadurch würde ich ein Attribut weniger haben und anschließend wolle ich in Welt ein Attribut Object o haben, und dann sollte die Oberflaeche von Welt erben und sogar das Attribut.



und jetzt muss ich wissen wie ich es schaffe den Rover zu bewegen und dass er sich dreht wenn ein Hindernis steht.

Ich wollte es so machen, der Rover geht solange geradeaus bis er an ein Hindernis stoßt und wenn er an einem hindernis stoßt dreht er sich nach rechts und guckt ob da wieder ein Hindernis ist und wenn es leer ist dann geht er von rechts aus geradeaus, und falls an der stelle auch ein hindenris liegt, dann drehen wir uns wieder nacht rechts also immer im Uhrzeigersinn und das machen wir solange bis eine stelle frei ist.
am beste sollte bei jedem schritt geprintet werden.


ansonsten habe ich mir über das modell nicht weit gekommen.


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> so also wir rufen von der Klasse oberflaeche die Methode erstelleKarte(Flaeche s) auf danach fügen wir alle Hindernisse und Rover ein und herstellen eine Karte in form einer Datenstruktur.
> Nachdem wir das gemacht haben. Printen wir das Feld wo der Roboter in der Mitte steht.


Du sollst nicht Dein Programm sondern das Modell beschreiben.


----------



## Heyoka955 (27. Mai 2019)

mihe7 hat gesagt.:


> Du sollst nicht Dein Programm sondern das Modell beschreiben.


So Es exisitert eine Klasse Welt das als Attribut das Objekt hat, welches ein Char speichert.
Welt wird vererbt von der Oberflaeche, denn Welt ist eine Oberflaeche aber Oberlaeche ist keine Welt. also eine ist Beziehung!

dann schaue ich mir Oberflaeche an und dieser hat die Liste also den Mars als Attribut und Oberflaeche erbt von Welt.

Dann gibt es die Klasse Flaeche und dieser ist Zuständig für die länge der Karte und die Breite der Karte und diese wird verwendet in der Klasse oberlaeche umso die länge des feldes zu bestimmen.

Dann existiert ein Rover und Hindernis, da beides Objekte vom Typ Objeckt sind, lasse ich beides erben. Hier kann man sinnvoll erben, weil beide char attribute verwenden.
Anschließend habe ich eine Klasse namens Position und Poisiton is bedeutend um das Objekt an jener Stelle zu speichern.
Die Position besteht aus zwei ints und dieser sind notwenig für die doppelschleife wenn wir die Hindernisse oder Objekt zuweisen an jener Stelle zuweisen wollen.


----------



## mrBrown (27. Mai 2019)

Erklär das Modell so, dass es meine 92-jährige Oma versteht...


----------



## Heyoka955 (27. Mai 2019)

mrBrown hat gesagt.:


> Erklär das Modell so, dass es meine 92-jährige Oma versteht...


Es existiert eine Welt und in Welt Existieren Objekte Die sich auf dieser Welt befinden.
Diese Objekte sind nur ein Roboter und Hindernisse.
Dann gibt es eine Klasse die diese Oberfläche dieser real realisiert und anhand von Positionen Die Stellen der Objekte festlegt.
Anschließend hat Oberfläche eine max lange und Grenze.
Dann haben wir das Objekt.
Im Objekt befindet sich nur zwei Objekte Wie River und Hindernis.

Der Rover hat ebenfalls mehrere Optionen sich zu Orientierung.
Er knn mur Vorwärtsgehen und rückwärts


----------



## mrBrown (27. Mai 2019)

Heyoka955 hat gesagt.:


> Es existiert eine Welt und in Welt Existieren Objekte Die sich auf dieser Welt befinden.
> Diese Objekte sind nur ein Roboter und Hindernisse.


"Auf der Wiese befinden sich Objekte und diese Objekte sind Steine" - sprichst du wirklich so?



Heyoka955 hat gesagt.:


> Dann gibt es eine Klasse die diese Oberfläche dieser real realisiert


Also gibt es da eine Schulklasse, die als Oberfläche verkleidet ist?



Irgendwie fallen solche Erklärungen Grundschülern deutlich leichter als Informatik-Studenten, die brechen sich immer einen ab beim Versuch, mal zwei, drei grade Sätze zu ihrem Modell hinzubekommen (ist jetzt nicht nur auf @Heyoka955 bezogen...)


----------



## mihe7 (27. Mai 2019)

Heyoka955 hat gesagt.:


> So Es exisitert eine Klasse Welt das als Attribut das Objekt hat, welches ein Char speichert.


Du sollst nicht die Grafik vorlesen. Stell Dir einfach vor, ich kenne Deine Aufgabenstellung nicht. Was soll mir dann "das Objekt, welches ein Char speichert" sagten? Steht in der Aufgabenstellung irgendwas von "Objekt" und "Char"? Ich denke nicht.

Heyoka beim Bäcker: Hey, Du, Instanz von Klasse Verkäuferin, hat Klasse Sonnenblume Weizen? OK, dann nimm eine Instanz von Tüte und füg hinzu Instanz von Sonnenblume.


----------



## mihe7 (28. Mai 2019)

@Heyoka955 wie siehts aus, schon fertig?


----------



## Heyoka955 (28. Mai 2019)

mihe7 hat gesagt.:


> @Heyoka955 wie siehts aus, schon fertig?


ich habe hilfe bekommen von einem kollegen

habe die karte muss nur noch den rover in die karte bekommen


----------



## flopalko (28. Mai 2019)

Heyoka955 hat gesagt.:


> ich habe hilfe bekommen von einem kollegen, habe etwas bezahlt dafür.
> 
> habe die karte muss nur noch den rover in die karte bekommen


Ich hoffe echt sehr für die Informatik, dass das Studium dich bald los wird...


----------



## Heyoka955 (28. Mai 2019)

flopalko hat gesagt.:


> Ich hoffe echt sehr für die Informatik, dass das Studium dich bald los wird...


Hoffe ich auch nachdem ich meinen Bachelor habe


----------



## flopalko (28. Mai 2019)

Heyoka955 hat gesagt.:


> Hoffe ich auch nachdem ich meinen Bachelor habe


Für einen Bachelor in Informatik sollte man so eine Aufgabe durchaus lösen können...


----------



## Heyoka955 (28. Mai 2019)

flopalko hat gesagt.:


> Für einen Bachelor in Informatik sollte man so eine Aufgabe durchaus lösen können...


Dann gib die mal einer deiner Freunden, die in 3 Semester sich befinden.


----------



## flopalko (28. Mai 2019)

Niemand wird dir hier eine Lösung geben! Wie oft muss man dir das noch erklären?
Deinen zweiten Satz versteht man auf Grund deiner Ausdrucksweise wieder mal nicht.


----------



## Heyoka955 (28. Mai 2019)

flopalko hat gesagt.:


> Niemand wird dir hier eine Lösung geben! Wie oft muss man dir das noch erklären?
> Deinen zweiten Satz versteht man auf Grund deiner Ausdrucksweise wieder mal nicht.


Ich will deine Lösung nicht aber ich will wissen wie schnell deine Kollegen das lösen können.

   Ich will alles alleine erarbeiten!!!


----------



## flopalko (28. Mai 2019)

Heyoka955 hat gesagt.:


> Ich will deine Lösung nicht aber ich will wissen wie schnell deine Kollegen das lösen können.
> 
> Ich will alles alleine erarbeiten!!!


Ich studiere nicht mehr, also keine Ahnung von welchen Kollegen im 3. Semester du redest.

Dass du "alles alleine erarbeiten" willst hat eine gewisse Komik, nachdem du hier mehrere ewig lange Threads erstellst und Hilfe noch und nöcher benötigst um dir dann am Schluss gegen Bezahlung die Aufgabe machen zu lassen.


----------



## Heyoka955 (28. Mai 2019)

flopalko hat gesagt.:


> Ich studiere nicht mehr, also keine Ahnung von welchen Kollegen im 3. Semester du redest.
> 
> Dass du "alles alleine erarbeiten" willst hat eine gewisse Komik, nachdem du hier mehrere ewig lange Threads erstellst und Hilfe noch und nöcher benötigst um dir dann am Schluss gegen Bezahlung die Aufgabe machen zu lassen.


Vllt solltest du eher deinen Arbeitplatz wechseln !!!


----------



## flopalko (28. Mai 2019)

Du





Heyoka955 hat gesagt.:


> Vllt solltest du eher deinen Arbeitplatz wechseln !!!


Du weißt doch gar nicht was ich arbeite.


----------



## Heyoka955 (28. Mai 2019)

flopalko hat gesagt.:


> Du
> Du weißt doch gar nicht was ich arbeite.


Dann sag doch .. 

Scheint dich unglücklich zu machen.
So abgefucked wie du bist.


----------



## flopalko (28. Mai 2019)

Heyoka955 hat gesagt.:


> Dann sag doch ..
> 
> Scheint dich unglücklich zu machen.
> So abgefucked wie du bist.


Das sag ich dir sicherlich nicht. Nein, mein Arbeitsplatz macht mich sehr glücklich. Ich habe nämlich kompetente Kollegen, wenn ich mir aber vorstellen, dass jemand wie du das Studium abschließt und dann womöglich ein Kollege wird kommt mir das Grauen.


----------



## Heyoka955 (29. Mai 2019)

flopalko hat gesagt.:


> Das sag ich dir sicherlich nicht. Nein, mein Arbeitsplatz macht mich sehr glücklich. Ich habe nämlich kompetente Kollegen, wenn ich mir aber vorstellen, dass jemand wie du das Studium abschließt und dann womöglich ein Kollege wird kommt mir das Grauen.


Keine Sorge ich werde kein Software Entwickler...

Mein Bereich ist eher Architekt Consulting oder Data science.

Deshalb war ich auch hartnäckig beim designing vom uml.


----------



## Heyoka955 (29. Mai 2019)

flopalko hat gesagt.:


> Das sag ich dir sicherlich nicht. Nein, mein Arbeitsplatz macht mich sehr glücklich. Ich habe nämlich kompetente Kollegen, wenn ich mir aber vorstellen, dass jemand wie du das Studium abschließt und dann womöglich ein Kollege wird kommt mir das Grauen.


Keine Sorge ich werde kein Software Entwickler...

Mein Bereich ist eher Architekt Consulting oder Data science.

Deshalb war ich auch hartnäckig beim designing vom uml.


----------



## flopalko (29. Mai 2019)

Heyoka955 hat gesagt.:


> Keine Sorge ich werde kein Software Entwickler...
> 
> Mein Bereich ist eher Architekt Consulting oder Data science.
> 
> Deshalb war ich auch hartnäckig beim designing vom uml.


Da freuen sich die Entwickler sicher, wenn sie einen Architekten haben der von SW-Architektur überhaupt keine Ahnung hat.


----------



## Heyoka955 (29. Mai 2019)

flopalko hat gesagt.:


> Da freuen sich die Entwickler sicher, wenn sie einen Architekten haben der von SW-Architektur überhaupt keine Ahnung hat.


Sowas lernst du...

Sorry nicht jeder Ist ein Genie wie du...


----------



## flopalko (29. Mai 2019)

Heyoka955 hat gesagt.:


> Sowas lernst du...
> 
> Sorry nicht jeder Ist ein Genie wie du...


Du hast aber noch viel zu lernen, wenn du nicht mal erkennst, dass Länge und Breite genau das gleiche Konzept haben.


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> Dann gib die mal einer deiner Freunden, die in 3 Semester sich befinden.



Habe genügend Dritt-Semester bei Projektentwicklung betreut, das ist eine vollkommen schiffbare Aufgabe.




Heyoka955 hat gesagt.:


> Keine Sorge ich werde kein Software Entwickler...
> 
> Mein Bereich ist eher Architekt Consulting oder Data science.
> 
> Deshalb war ich auch hartnäckig beim designing vom uml.



Nur so aus Interesse: Warum möchtest du im Informatik-Bereich arbeiten, und warum ausgerechnet "Architekt Consulting oder Data science"?


----------



## mihe7 (29. Mai 2019)

Heyoka955 hat gesagt.:


> Scheint dich unglücklich zu machen.
> So abgefucked wie du bist.


Ich weiß nicht, warum, aber irgendwie erinnerst Du mich an http://www.lustigestories.de/stories/irc_hacker.php


----------



## flopalko (29. Mai 2019)

mrBrown hat gesagt.:


> Nur so aus Interesse: Warum möchtest du im Informatik-Bereich arbeiten, und warum ausgerechnet "Architekt Consulting oder Data science"?


Das wissen wir doch: er möchte >100k € verdienen.


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Habe genügend Dritt-Semester bei Projektentwicklung betreut, das ist eine vollkommen schiffbare Aufgabe.
> 
> 
> 
> ...





mrBrown hat gesagt.:


> Habe genügend Dritt-Semester bei Projektentwicklung betreut, das ist eine vollkommen schiffbare Aufgabe.
> 
> 
> 
> ...


Weil das interessant ist.

Aber mein höchstes Priorität ist das Studium zu schaffen um mich Selbst zu verwirklichen.


----------



## mrBrown (29. Mai 2019)

Was findest du denn interessant an "Architekt Consulting"?


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Was findest du denn interessant an "Architekt Consulting"?


Ne meinte Architekt, Consulting!

It Architekt und it Consulting


----------



## mrBrown (29. Mai 2019)

Na gut, dann eben:
Was findest du denn an Architekt und an Consulting interessant (Consulting sagt btw so ziemlich gar nichts aus, das ist ähnlich spezifisch wie "ich will Arbeiter" werden...)


----------



## flopalko (29. Mai 2019)

mrBrown hat gesagt.:


> Na gut, dann eben:
> Was findest du denn an Architekt und an Consulting interessant (Consulting sagt btw so ziemlich gar nichts aus, das ist ähnlich spezifisch wie "ich will Arbeiter" werden...)


Ich glaube er stellt sich Consulting ca so vor: ich fahre zu Kunden, rede dort sinnloses Zeug und bekomme viel geld dafür. Dass das fernab der Realität ist weiß er halt noch nicht.


----------



## mrBrown (29. Mai 2019)

flopalko hat gesagt.:


> Ich glaube er stellt sich Consulting ca so vor: ich fahre zu Kunden, rede dort sinnloses Zeug und bekomme viel geld dafür. Dass das fernab der Realität ist weiß er halt noch nicht.


Für dich heißt Consulting nicht, nur sinnloses Zeug zu reden? Du reitest wohl auch auf nem rosa Einhorn über den Regenbogen zur Arbeit


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Für dich heißt Consulting nicht, nur sinnloses Zeug zu reden? Du reitest wohl auch auf nem rosa Einhorn über den Regenbogen zur Arbeit


Hhahahaahahahaha


----------



## flopalko (29. Mai 2019)

mrBrown hat gesagt.:


> Für dich heißt Consulting nicht, nur sinnloses Zeug zu reden? Du reitest wohl auch auf nem rosa Einhorn über den Regenbogen zur Arbeit


Kann es heißen, muss es aber nicht. Wenn es aber so ist haben die meist nicht lange Aufträge.


----------



## mihe7 (29. Mai 2019)

mrBrown hat gesagt.:


> Für dich heißt Consulting nicht, nur sinnloses Zeug zu reden?


Die Kunst dabei ist doch, es anders aussehen zu lassen. 

Ich sehe blühende Landschaften, wenn @Heyoka955 später in die Firmen fährt, den Idioten klar macht, dass sie für Breite und Länge zwei Klassen brauchen und er sich mit größtem Dank verabschieden lässt, weil sie das ohne ihn nie erkannt hätten.


----------



## Heyoka955 (29. Mai 2019)

mihe7 hat gesagt.:


> Die Kunst dabei ist doch, es anders aussehen zu lassen.
> 
> Ich sehe blühende Landschaften, wenn @Heyoka955 später in die Firmen fährt, den Idioten klar macht, dass sie für Breite und Länge zwei Klassen brauchen und er sich mit größtem Dank verabschieden lässt, weil sie das ohne ihn nie erkannt hätten.




Ich weis dass beides das gleiche ist.


----------



## mihe7 (29. Mai 2019)

Das macht ja nichts.


----------



## flopalko (29. Mai 2019)

Heyoka955 hat gesagt.:


> Ich weis dass beides das gleiche ist.


Aber nur, weil es dir gesagt wurde...


----------



## Heyoka955 (29. Mai 2019)

flopalko hat gesagt.:


> Aber nur, weil es dir gesagt wurde...


Nein!


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> Nein!



Ganz grob gezählt: allein auf der ersten Seite gibt es 5 Beiträge, die auf Breite und Länge hinweisen, auf Seite zwei 4. Wenn das ähnlich weiter ging, hat man dich hier an die 70 mal drauf hingewiesen, das kann man nu wirklich nicht als "es wurde dir gesagt" bezeichnen. 
Du könntest Politiker werden, in der CDU wird in Kürze sicher was frei


----------



## M.L. (29. Mai 2019)

> Keine Sorge ich werde kein Software Entwickler...
> oder Data science.


 Das man als Data Scientist in Python oder R (oder anderes Werkzeug, z.B. SQL) beherrschen / programmieren können sollte, ist ja bekannt... Weitere Skills nicht zu vergessen, siehe div. Suchergebnisse zu "Skills Data Scientist"


----------



## mihe7 (29. Mai 2019)

mrBrown hat gesagt.:


> allein auf der ersten Seite gibt es 5 Beiträge, die auf Breite und Länge hinweisen, auf Seite zwei 4. Wenn das ähnlich weiter ging, hat man dich hier an die 70 mal drauf hingewiesen, das kann man nu wirklich nicht als "es wurde dir gesagt" bezeichnen.


Kommentar #252 nicht aufgeklappt? @Heyoka955 wusste es von Anfang an. Nur haben wir ihn stark verwirrt, so dass er es nicht mehr klar ausdrücken konnte.


----------



## mihe7 (29. Mai 2019)

@Heyoka955 jetzt wissen wir allerdings immer noch nicht, wie Deine Lösung aussieht.


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Ganz grob gezählt: allein auf der ersten Seite gibt es 5 Beiträge, die auf Breite und Länge hinweisen, auf Seite zwei 4. Wenn das ähnlich weiter ging, hat man dich hier an die 70 mal drauf hingewiesen, das kann man nu wirklich nicht als "es wurde dir gesagt" bezeichnen.
> Du könntest Politiker werden, in der CDU wird in Kürze sicher was frei





mihe7 hat gesagt.:


> @Heyoka955 jetzt wissen wir allerdings immer noch nicht, wie Deine Lösung aussieht.


mach Gruppenchat dann zeige ich es !


----------



## mihe7 (29. Mai 2019)

Heyoka955 hat gesagt.:


> mach Gruppenchat


Für solche Schweinereien bin ich nicht zu haben.


----------



## Heyoka955 (29. Mai 2019)

mihe7 hat gesagt.:


> Für solche Schweinereien bin ich nicht zu haben.


Geht das nicht hier ?


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> Geht das nicht hier ?


Wie schon mal gesagt: doch, das geht hier.

Aber warum nicht einfach hier zeigen?


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Wie schon mal gesagt: doch, das geht hier.
> 
> Aber warum nicht einfach hier zeigen?


Bevor Studenten meine Lösung klauen ...
Das sind 6
Klassen.


----------



## mihe7 (29. Mai 2019)

Heyoka955 hat gesagt.:


> Bevor Studenten meine Lösung klauen ...


Das verstehe ich. Wo kämen wir da hin, wenn Studenten die Lösung klauen, die Du teuer erkauft hast?


----------



## kneitzel (29. Mai 2019)

Also die Unterstellung mit dem Kaufen verstehe ich nicht. Ist es heute unüblich geworden, gemeinsam zu lernen und so?

OK, es muss etwas dran sein, denn es wurde ja nicht widersprochen... 

Also damals haben wir extrem viel in Gruppen gemacht. Stoff aufgearbeitet und so. Da war es ein Miteinander. Und ich bekomme es bei dualen Studenten bei uns auch mit: zumindest da ist das auch der Fall.


----------



## Meniskusschaden (29. Mai 2019)

flopalko hat gesagt.:


> Kann es heißen, muss es aber nicht. Wenn es aber so ist haben die meist nicht lange Aufträge.


Es gibt schon einige Berater, die fachlich keine Ahnung haben und trotzdem dauerhaft sehr gut verdienen. Die schaffen es eben, bei noch ahnungsloseren Managern den Eindruck zu erwecken, sie seien viel kompetenter als deren Fachkräfte ("sind ja gute Leute, aber eben Fachidioten, wohingegen wir Manager und Berater natürlich auch das Große und Ganze sehen"). Das ist möglich, weil der Prophet im eigenen Lande sowieso nichts gilt und der fachlich überforderte Manager froh ist, mit seinem tollen Berater die Dinge doch noch "im Griff" zu haben. Außerdem hat er das Gefühl, den Berater notfalls leicht abservieren zu können, was bei den eigenen Mitarbeitern (mögliche zukünftige Konkurrenten) schon deutlich schwieriger ist.

Soweit die guten Nachrichten für @Heyoka955, aber:

Die wichtigste Voraussetzung für das Gelingen ist hohe sprachliche Kompetenz, damit man auch mit inhaltlichem Blödsinn überzeugen kann und - wenn es mal eng wird - immer plausibel erscheinende Begründungen findet, warum jemand auf Auftraggeberseite (natürlich nicht der Manager) Schuld an dem jeweiligen Dilemma hat, welches glücklicherweise nur "vorübergehender Natur" ist, weil der Berater ja bereits die Idee zu einer noch viel besseren "Lösung" hat.


----------



## mihe7 (29. Mai 2019)

kneitzel hat gesagt.:


> Also die Unterstellung mit dem Kaufen verstehe ich nicht.


Ich würde ihm das nicht unterstellen, wenn er es nicht selbst geschrieben hätte (im Kommentar #318 sieht man es noch).



kneitzel hat gesagt.:


> Ist es heute unüblich geworden, gemeinsam zu lernen und so?


Das habe ich mich auch gefragt.


----------



## Heyoka955 (29. Mai 2019)

kneitzel hat gesagt.:


> Also die Unterstellung mit dem Kaufen verstehe ich nicht. Ist es heute unüblich geworden, gemeinsam zu lernen und so?
> 
> OK, es muss etwas dran sein, denn es wurde ja nicht widersprochen...
> 
> Also damals haben wir extrem viel in Gruppen gemacht. Stoff aufgearbeitet und so. Da war es ein Miteinander. Und ich bekomme es bei dualen Studenten bei uns auch mit: zumindest da ist das auch der Fall.


Nachhilfe halt


----------



## mihe7 (29. Mai 2019)

Heyoka955 hat gesagt.:


> Nachhilfe halt


Oh, dann muss ich mich vielmals entschuldigen. Ich habe Dein "ich habe hilfe bekommen von einem kollegen, habe etwas bezahlt dafür." wohl falsch interpretiert.

Ich verstehe aber nicht, warum Du Deine Lösung plötzlich hier nicht mehr zeigen kannst, das hast Du doch die vorherigen 250 Posts auch gemacht.


----------



## kneitzel (29. Mai 2019)

Heyoka955 hat gesagt.:


> Nachhilfe halt


Nunja, wir hatten Lerngruppen. So haben wir uns dann teilweise Dinge erarbeitet, so der Prof dies in der Vorlesung nicht verständlich rüber bringen konnte. Da haben wir nichts bezahlt, haben viel gelernt und hatten zugleich noch richtig viel Spaß.

Das ist halt etwas, das mir durch den Kopf gegangen ist....


----------



## Heyoka955 (29. Mai 2019)

mihe7 hat gesagt.:


> Oh, dann muss ich mich vielmals entschuldigen. Ich habe Dein "ich habe hilfe bekommen von einem kollegen, habe etwas bezahlt dafür." wohl falsch interpretiert.
> 
> Ich verstehe aber nicht, warum Du Deine Lösung plötzlich hier nicht mehr zeigen kannst, das hast Du doch die vorherigen 250 Posts auch gemacht.


Weil da Code steht aber warte ich zeige es später


----------



## Blender3D (29. Mai 2019)

kneitzel hat gesagt.:


> Also damals haben wir extrem viel in Gruppen gemacht. Stoff aufgearbeitet und so.


Das ist eine der wichtigsten Dinge, um gute Informatiker zu bekommen. Als Gruppe bzw. Team zu agieren ist für gute Ergebnisse unabdingbar.


----------



## Heyoka955 (29. Mai 2019)

kann ich meine Klassen hier hochladen?


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> kann ich meine Klassen hier hochladen?


Klar.


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Klar.


hier ist alles drauf kriege die Methode gebekarteaus nicht hin


----------



## flopalko (29. Mai 2019)

Heyoka955 hat gesagt.:


> kann ich meine Klassen hier hochladen?


Ja, mit Strg+c und Strg+v


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> wie?


zB als Jar packen und dann unter dem Feld, in dem du gleich tippst, auf "Dateien anhängen" klicken...


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> zB als Jar packen und dann unter dem Feld, in dem du gleich tippst, auf "Dateien anhängen" klicken...


habe
Habt ihr gesehen


----------



## mihe7 (29. Mai 2019)

Wofür brauchst Du Objekt?


----------



## Heyoka955 (29. Mai 2019)

mihe7 hat gesagt.:


> Wofür brauchst Du Objekt?


Für Hindernisse als Objekt und nicht als primitiver Typ.


----------



## mihe7 (29. Mai 2019)

Hm... Gibt es denn verschieden(artig)e Hindernisse?


----------



## Heyoka955 (29. Mai 2019)

mihe7 hat gesagt.:


> Hm... Gibt es denn verschieden(artig)e Hindernisse?


nein aber wie du siehst, fügen wir auch leere Felder ein, daher habe ich objekt verwendet außerdem weiß ich auch nicht ob ich den rover in die linked hashmap einfüge.


aber wartet das ist das was ich alleine erarbeitet habe, aber ich zeige mal was ich mit kollgen erarbeitet habe


----------



## kneitzel (29. Mai 2019)

Ein freies Feld ist halt auch ein Objekt. Bin ich auch etwas drüber gestolpert.

Und ich bin etwas drüber gestolpert, dass Position eine Funktion hat, um die Position zu verändern, was den HashCode ändert. Und Position ist ein Key in einer HashMap. (Erst einmal unkritisch, da diese Funktionalität wohl nicht bei den Hindernissen genutzt wird.)
Aber etwas auf der Oberfläche zu verschieben gehört auch weniger in die Koordinate als eben in die Oberfläche. (Entweder direkt über eine Art Verschiebe-Operation oder indirekt, weil jemand etwas von der Oberfläche wegnimmt und dann wieder woanders abstellt.)

Aber das ist nur mein Verständnis und das führt dann wieder zu dem sprachlichen Problem. "Addiere die Richtung r zu Position P" wäre ja ein p.addiereRichtung(r) Aufruf. Das klingt für mich nicht ok.


----------



## kneitzel (29. Mai 2019)

Heyoka955 hat gesagt.:


> aber wartet das ist das was ich alleine erarbeitet habe, aber ich zeige mal was ich mit kollgen erarbeitet habe



Also Du hattest einen Wissensstand. Dann hat Du nachhilfe bekommen und im Rahmen dieser Nachhilfe etwas verbessert. Dann sollte das der aktuelle Stand sein und der Stand davor komplett uninteressant / gelöscht / was auch immer ...


Wieso bist Du hier? Du willst doch weiter kommen. Also solltest Du doch auch kein Interesse haben, uns einen veralteten Stand zu geben. Sorry, aber da fühle ich mich teilweise etwas verarscht (Was dann auch meine Zurückhaltung in den Threads erklärt und auch, wieso ich Dir nicht geantwortet habe als Du vor diesem Thread mich direkt angeschrieben hattest!).


----------



## mihe7 (29. Mai 2019)

Heyoka955 hat gesagt.:


> aber wie du siehst, fügen wir auch leere Felder ein, daher habe ich objekt verwendet


D. h. Objekt brauchst Du nicht speziell für Hindernisse, sondern ganz allgemein für Felder auf der Karte und jedes Feld kann einen anderen Typ haben, den Du mit einem char darstellst.


----------



## Heyoka955 (29. Mai 2019)

kneitzel hat gesagt.:


> Also Du hattest einen Wissensstand. Dann hat Du nachhilfe bekommen und im Rahmen dieser Nachhilfe etwas verbessert. Dann sollte das der aktuelle Stand sein und der Stand davor komplett uninteressant / gelöscht / was auch immer ...
> 
> 
> Wieso bist Du hier? Du willst doch weiter kommen. Also solltest Du doch auch kein Interesse haben, uns einen veralteten Stand zu geben. Sorry, aber da fühle ich mich teilweise etwas verarscht (Was dann auch meine Zurückhaltung in den Threads erklärt und auch, wieso ich Dir nicht geantwortet habe als Du vor diesem Thread mich direkt angeschrieben hattest!).


weil ich mit meinem Denken weiter kommen will und nicht seinem. ich wollte das ein bischen auch anders strukturieren als er.
die unterschiede sind nichtmal so groß, wobei eig nur eine Klasse mehr gekommen ist.



mein kollege hat das gemacht was du meintest, der hat einfach Character geschrieben.


----------



## kneitzel (29. Mai 2019)

Aber bezüglich der Wortwahl: Das erinnert mich jetzt an das "Wie trinkst Du Deinen Kaffee? Mit oder mit ohne Milch?"

Du hast eine Karte und da hast du dann Objekt"#" oder Objekt " "? Also überall Objekte? Also erst einmal Object gibt es schon - da von Objekt zu reden ist a) blöd wegen Verwechslungsgefahr b) sagt der Name nichts aus. Also überleg, was es ist!

Hindernis, Feldinhalt, was auch immer ...


----------



## Heyoka955 (29. Mai 2019)

mihe7 hat gesagt.:


> D. h. Objekt brauchst Du nicht speziell für Hindernisse, sondern ganz allgemein für Felder auf der Karte und jedes Feld kann einen anderen Typ haben, den Du mit einem char darstellst.





kneitzel hat gesagt.:


> Aber bezüglich der Wortwahl: Das erinnert mich jetzt an das "Wie trinkst Du Deinen Kaffee? Mit oder mit ohne Milch?"
> 
> Du hast eine Karte und da hast du dann Objekt"#" oder Objekt " "? Also überall Objekte? Also erst einmal Object gibt es schon - da von Objekt zu reden ist a) blöd wegen Verwechslungsgefahr b) sagt der Name nichts aus. Also überleg, was es ist!
> 
> Hindernis, Feldinhalt, was auch immer ...



schau das neue projekt an, ich habe da ein Character verwendet


----------



## Heyoka955 (29. Mai 2019)

Was kann ich jetzt machen


----------



## mrBrown (29. Mai 2019)

Es fertig programmieren?


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Es fertig programmieren?


Ich weiß nicht wie ich den Rover rein bekomme ?


----------



## mrBrown (29. Mai 2019)

Tür öffnen
Rover rein
Tür zu
Rover drin


----------



## kneitzel (29. Mai 2019)

Heyoka955 hat gesagt.:


> Ich weiß nicht wie ich den Rover rein bekomme ?


Das müsste doch aus deinem Model klar hervorgehen, oder nicht? War die Nachhilfe doch nicht so erfolgreich? (Ziel einer Nachhilfe ist es, Dir fehlendes Wissen zu vermitteln und nicht, da irgendwas fertig zu bekommen, das du nicht verstehst....)

Ein hoffentlich einfaches Beispiel: deine Klasse für Befehle erstellt sich bei jedem execute eine neue Oberfläche? 
Da frage ich mich: wie kommt jemand dazu, sowas zu implementieren? Wenn ein Model existiert, sollte klar sein, wie die Zusammenhänge sind und wo die Oberfläche benötigt wird und so ... So ein Fehler ist ansonsten so schief, dass ich das gar nicht wirklich glauben konnte, als ich es sah ...



mrBrown hat gesagt.:


> Tür öffnen
> Rover rein
> Tür zu
> Rover drin


Nein, da verwechselst du was .. das war die Antwort, wie die Elephantenabdrücke in die Butter kommen ... Kühlschranktür auf, Elephant rein, Kühlschranktür zu ..

Aber ich verstehe, dass man dieses Kühlschrank-Elephant-Pattern gerne und oft anwendet


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Tür öffnen
> Rover rein
> Tür zu
> Rover drin


Soll ich ihn in der linked hash map speichern ?


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> Soll ich ihn in der linked hash map speichern ?


Nö. Guck doch mal in dein letztes Diagram, wo der Rover da ist...

EDIT: nicht das letzte, sondern etwa das vor-vor-vor-letzte.


----------



## kneitzel (29. Mai 2019)

In einer Klasse hatte ich doch eine Instanz des Rovers schon gesehen ... aber ich bin jetzt nur am Tablet und ich wüsste nicht, in welchem Code ich schauen sollte und welches Model gerade aktuell ist ... 

Du solltest dein Model aber genau kennen und verstehen. Und den vorhandenen Code solltest du auch verstehen...

Wieviel Zeit haben wir hier im Forum schon zugebracht? In der Zeit hätte man sich die Grundlagen doch aneignen können, oder? Vor allem: es wird ja die nächste Aufgabe kommen und dann den nächsten Thread mit entsprechend vielen Posts ....


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Nö. Guck doch mal in dein letztes Diagram, wo der Rover da ist...
> 
> EDIT: nicht das letzte, sondern etwa das vor-vor-vor-letzte.


der ist in der main Methode aufgerufen worden, ich muss es aber irgendwie schaffen dass er auf die karte landet.


----------



## kneitzel (29. Mai 2019)

Heyoka955 hat gesagt.:


> wo war das nochmal hahha


LOL, du musst doch langsam verstanden haben, was du machst ... ich habe das Gefühl, dass Du in einem dunklen Raum bist und die Tür suchst ... und nun bekommst du im Forum viele Hinweise und rein statistisch wirst du durch die kleinen Stupser irgendwann vor der Tür landen ...
Nur eben ignorierst du ständig den Hinweis auf die Taschenlampe in Deiner Hand und den Hinweis, damit einfach nach der Tür zu schau ....

Studium bedeutet, etwas zu lernen. Ziel darf nicht nur das Ergebnis der Übung sein. Ziel muss es sein, dass man lernt, wie man zum Ziel kommt.


----------



## AndiE (29. Mai 2019)

Langsam ist es langweilig. Aber es gibt so etwas wie "init". Nach Aufruf dieser Funktionen sollte das Programm arbeitsbereit sein- also in diesem Falle der Rover in der Landschaft stehen. Noch mal zum Mitdenken: Es soll ein Rover in einer Landschaft gesteuert werden, die aus Hindernissen besteht. Offensichtlich erkenne ich da sofort 4 Klassen, mit den bekannten Einschränkungen 6 Klassen. Die das sind ...? Nä- selber überlegen. Übrigens gehört die Klasse, in der die main enthalten ist, noch nicht dazu. Das alles sollte aber nach drei Semestern klar sein.


----------



## Heyoka955 (29. Mai 2019)

AndiE hat gesagt.:


> Langsam ist es langweilig. Aber es gibt so etwas wie "init". Nach Aufruf dieser Funktionen sollte das Programm arbeitsbereit sein- also in diesem Falle der Rover in der Landschaft stehen. Noch mal zum Mitdenken: Es soll ein Rover in einer Landschaft gesteuert werden, die aus Hindernissen besteht. Offensichtlich erkenne ich da sofort 4 Klassen, mit den bekannten Einschränkungen 6 Klassen. Die das sind ...? Nä- selber überlegen. Übrigens gehört die Klasse, in der die main enthalten ist, noch nicht dazu. Das alles sollte aber nach drei Semestern klar sein.


ja okay ich habe ein, ich muss den rover irgendwie mit einemm Zeichen darstellen aber da meine Rover klasse leider zwei instanzen hat, klappt das irgendwie nicht. ich muss an eine alternative ran. Meine Idee war villeicht eine Verbung zu machen von Objekt und einen zweiten Konstruktor?


----------



## mihe7 (29. Mai 2019)

Heyoka955 hat gesagt.:


> aber da meine Rover klasse leider zwei instanzen hat


Da ist es wieder, das I-Wort.


----------



## mrBrown (29. Mai 2019)

*Ernsthaft jetzt: Du hast keine Ahnung, was das Wort Instanz bedeutet, also missbrauche es doch nicht ständig.*



Heyoka955 hat gesagt.:


> Meine Idee war villeicht eine Verbung zu machen von Objekt und einen zweiten Konstruktor?


Nein, in diesem Projekt ist an keiner Stelle Vererbung nötig. Um es noch mal deutlich zu sagen:
*KEINE VERERBUNG.*

An Rover solltest du nur noch das TODO anpassen, mehr musst du an der Klasse kaum machen...


----------



## Heyoka955 (29. Mai 2019)

mihe7 hat gesagt.:


> Da ist es wieder, das I-Wort.


was kann ich machen als alternative?





mein ansatz sieht so aus?


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> was kann ich machen als alternative?


Das Wort einfach nicht mehr benutzen.


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> *Ernsthaft jetzt: Du hast keine Ahnung, was das Wort Instanz bedeutet, also missbrauche es doch nicht ständig.*
> 
> 
> Nein, in diesem Projekt ist an keiner Stelle Vererbung nötig. Um es noch mal deutlich zu sagen:
> ...


wie soll ich denn das zeichen des rovers übergeben?


----------



## mrBrown (29. Mai 2019)

Wozu musst du dem Rover sagen, mit welchem Zeichen er auf der Konsole ausgegeben wird?

Hast du auch einen Stift dabei, und wenn irgendwo irgendjemand eine Landkarte aufmacht, rennst du schnell hin und malst ein @Heyoka955 an die Stelle, an der du stehst?


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Wozu musst du dem Rover sagen, mit welchem Zeichen er auf der Konsole ausgegeben wird?
> 
> Hast du auch einen Stift dabei, und wenn irgendwo irgendjemand eine Landkarte aufmacht, rennst du schnell hin und malst ein @Heyoka955 an die Stelle, an der du stehst?



weil man den Rover sehen möchte, der soll ja nicht unsichtbar sein

hier meine Methode poisitionvoraus:


```
private Position position;

    public Rover(){
        this.position = new Position(10,10);
        this.richtung=Richtung.NORDEN;
    }

    public void nachLinksDrechen(Oberflaeche oberflaeche){
        this.nachRechtsDrehen(oberflaeche);
        this.nachRechtsDrehen(oberflaeche);
        this.nachRechtsDrehen(oberflaeche);
    }

    public void nachRechtsDrehen(Oberflaeche oberflaeche){
        this.richtung = richtung.nachRechtsDrehen();
    }

    public void schreiteVoran(Oberflaeche oberflaeche){
        if(positionVoraus())
        // Darf nur aufgerufen werden, wenn PositionVoraus kein Hindernis ist.
        this.position = richtung.addiereRichtung(position);
    }

    public boolean positionVoraus(){
        if(richtung.addiereRichtung(position) == null)
        return true;

        return false;
    }

    public boolean istAnDerPosition(Position p) {
        return false;
    }
}
```


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> weil man den Rover sehen möchte, der soll ja nicht unsichtbar sein


Wozu musst du dem Rover sagen, mit welchem Zeichen er auf der Konsole ausgegeben wird?

Ist der Rover plötzlich auf magische Art und Weise sichtbar, nur weil er einen char-Feld enthält?


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Wozu musst du dem Rover sagen, mit welchem Zeichen er auf der Konsole ausgegeben wird?
> 
> Ist der Rover plötzlich auf magische Art und Weise sichtbar, nur weil er einen char-Feld enthält?


Stimmt. Aber wie Printe ich ihn dann?


----------



## mrBrown (29. Mai 2019)

Wie würdest du ihn den printen, wenn er dieses zusätzliche char-Feld hätte?


Und als Mod: bitte, veränder deine Beiträge nicht nachträglich so sehr.


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Wie würdest du ihn den printen, wenn er dieses zusätzliche char-Feld hätte?
> 
> 
> Und bitte, verändern deine Beiträge nicht nachträglich so sehr.


Sorry, to String Methode aber ich weiß nicht ob wir das dürfen.

Ist ja im Endeffekt ein getter irgendwie


----------



## mrBrown (29. Mai 2019)

Heyoka955 hat gesagt.:


> Sorry, to String Methode aber ich weiß nicht ob wir das dürfen


toString solltest du nicht zur Darstellung in der UI nutzen (abgesehen von primitiven Typen wie z.B. Zahlen).

Kannst du in zwei, drei Zeilen Pseudocode zeigen, wie du den Rover ausgeben würdest, wenn du keinerlei Beschränkungen durch Object Calisthenics oder sonstiges hättest?


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> toString solltest du nicht zur Darstellung in der UI nutzen (abgesehen von primitiven Typen wie z.B. Zahlen).
> 
> Kannst du in zwei, drei Zeilen Pseudocode zeigen, wie du den Rover ausgeben würdest, wenn du keinerlei Beschränkungen durch Object Calisthenics oder sonstiges hättest?


Public void Print(){
System.out.print(rover.get());
}


----------



## mrBrown (29. Mai 2019)

Okay, und wie sähe dabei rover#get aus?


----------



## Heyoka955 (29. Mai 2019)

mrBrown hat gesagt.:


> Okay, und wie sähe dabei rover#get aus?


Return „^“;


----------



## mrBrown (29. Mai 2019)

Okay, rover.get() gibt also immer "^" zurück? Kann man dann vielleicht rover.get() mit "^" ersetzen?


----------



## Heyoka955 (30. Mai 2019)

mrBrown hat gesagt.:


> Okay, rover.get() gibt also immer "^" zurück? Kann man dann vielleicht rover.get() mit "^" ersetzen?


nein, ich weiß es nicht, wir müssen dieser getter Methode so gestalten, dass er immer den neuen zustand des rovers printet aber ich weß nicht wie das geht. 

Dafür habe ich zu wenig kentnnisse


----------



## flopalko (30. Mai 2019)

mrBrown hat gesagt.:


> Okay, rover.get() gibt also immer "^" zurück? Kann man dann vielleicht rover.get() mit "^" ersetzen?


Dass ihr euch diese Farce immer noch antut. Ich bewundere eure Gelassenheit


----------



## flopalko (30. Mai 2019)

Heyoka955 hat gesagt.:


> Dafür habe ich zu wenig kentnnisse


Richtig. Wie kannst du das ändern? Indem du endlich mal tust was man dir empfiehlt: nimm ein Buch und lern die Grundlagen!


----------



## mrBrown (30. Mai 2019)

Heyoka955 hat gesagt.:


> nein, ich weiß es nicht, wir müssen dieser getter Methode so gestalten, dass er immer den neuen zustand des rovers printet aber ich weß nicht wie das geht.
> 
> Dafür habe ich zu wenig kentnnisse


Okay, noch mal extra langsam für dich:

rover.get() gibt immer dasselbe zurück: "^". Dort, wo rover.get() steht, kommt also immer "^" raus, und niemals ein andere Wert.
Wenn irgendein Methodenaufruf immer einen festen Wert zurückgibt, der sich niemals ändern kann und der von vornherein bekannt ist, kann man dann diesen Methodenaufruf mit dem festen Wert ersetzen. 
Also, kann man statt rover.get(), was ja immer "^" ist, auch einfach "^" schreiben?


----------



## Heyoka955 (30. Mai 2019)

mrBrown hat gesagt.:


> Okay, noch mal extra langsam für dich:
> 
> rover.get() gibt immer dasselbe zurück: "^". Dort, wo rover.get() steht, kommt also immer "^" raus, und niemals ein andere Wert.
> Wenn irgendein Methodenaufruf immer einen festen Wert zurückgibt, der sich niemals ändern kann und der von vornherein bekannt ist, kann man dann diesen Methodenaufruf mit dem festen Wert ersetzen.
> Also, kann man statt rover.get(), was ja immer "^" ist, auch einfach "^" schreiben?


Achso darauf wolltest du hinaus ja kann man aber wir wollen doch nicht dass er ständig ^ so geprintet wird.


----------



## mrBrown (30. Mai 2019)

Heyoka955 hat gesagt.:


> Achso darauf wolltest du hinaus ja kann man aber wir wollen doch nicht dass er ständig ^ so geprintet wird.


Nicht? Soll der Rover alle paar Sekunden ein anderes Zeichen bekommen?


----------



## Heyoka955 (30. Mai 2019)

mrBrown hat gesagt.:


> Nicht? Soll der Rover alle paar Sekunden ein anderes Zeichen bekommen?


Er soll das Zeichen haben aber sein Zustand andern also Position also so >< etc


----------



## mrBrown (30. Mai 2019)

Heyoka955 hat gesagt.:


> Er soll das Zeichen haben aber sein Zustand andern also Position also so >< etc


Und jetzt vergleich das noch mal mit dieser Ausgabe:


Heyoka955 hat gesagt.:


> Return „^“;



Fällt dir was auf?


----------



## Heyoka955 (30. Mai 2019)

mrBrown hat gesagt.:


> Und jetzt vergleich das noch mal mit dieser Ausgabe:
> 
> 
> Fällt dir was auf?


Es ist das gleiche ja das weiß ich haha


----------



## mrBrown (30. Mai 2019)

Wenn für dich ">", "<", "^" und "v" das gleiche ist wie "Return „^“;", solltest du ganz dringend mal Augen und Hirn kontrollieren lassen.


----------



## Heyoka955 (30. Mai 2019)

mrBrown hat gesagt.:


> Wenn für dich ">", "<", "^" und "v" das gleiche ist wie "Return „^“;", solltest du ganz dringend mal Augen und Hirn kontrollieren lassen.


Es ist dasselbe Zeichen
Also ein Pfeil darauf wollte ich hinaus


----------



## mihe7 (30. Mai 2019)

Der Klimawandel scheint ja größere Auswirkungen zu haben, als bislang angenommen.


----------



## Heyoka955 (30. Mai 2019)

mihe7 hat gesagt.:


> Der Klimawandel scheint ja größere Auswirkungen zu haben, als bislang angenommen.


Hä versteht ihr was ich meine damit ?

Klar sind das unterschiedliche Zeichen aber es ist halt ein Pfeil. Es ist der selbe Pfeil nur kn anderer Richtung


----------



## mihe7 (30. Mai 2019)

Heyoka955 hat gesagt.:


> Es ist der selbe Pfeil nur kn anderer Richtung


Liest mal den Satz, vor allem das Ende, dann sollte es klingeln.


----------



## Heyoka955 (30. Mai 2019)

mihe7 hat gesagt.:


> Liest mal den Satz, vor allem das Ende, dann sollte es klingeln.


Ja es sind andere Zeichen das ist klar.

Ihr wisst worauf ich hinaus wollte aber


----------



## mihe7 (30. Mai 2019)

Heyoka955 hat gesagt.:


> Ja es sind andere Zeichen das ist klar.


Steht in diesem Satz irgendwas von Zeichen?!?


----------



## Heyoka955 (30. Mai 2019)

mihe7 hat gesagt.:


> Steht in diesem Satz irgendwas von Zeichen?!?


^<> was ist das denn? Ist doch ein char


----------



## flopalko (30. Mai 2019)

Heyoka955 hat gesagt.:


> ^<> was ist das denn? Ist doch ein char


Sie wollen darauf hinaus, dass du immer ^ ausgibst. Du berücksichtigst die Richtung bei der Ausgabe nicht...


----------



## Heyoka955 (30. Mai 2019)

flopalko hat gesagt.:


> Sie wollen darauf hinaus, dass du immer ^ ausgibst. Du berücksichtigst die Richtung bei der Ausgabe nicht...


Ja das habe ich Verstanden jetzt


----------



## mihe7 (30. Mai 2019)

Heyoka955 hat gesagt.:


> ^<> was ist das denn? Ist doch ein char


Mein Gott, Du solltest Deinen eigenen Satz "Es ist der selbe Pfeil nur kn anderer Richtung" nochmal lesen. Da steht nix von Zeichen, da steht nix von ^<>. Da steht was von Richtung.


----------



## Heyoka955 (30. Mai 2019)

mihe7 hat gesagt.:


> Mein Gott, Du solltest Deinen eigenen Satz "Es ist der selbe Pfeil nur kn anderer Richtung" nochmal lesen. Da steht nix von Zeichen, da steht nix von ^<>. Da steht was von Richtung.


Stimmt, aber das habe ich verstanden also was muss ich jetzt returnen ?


----------



## mihe7 (30. Mai 2019)

Heyoka955 hat gesagt.:


> das habe ich verstanden also was muss ich jetzt returnen ?


Ruhig, ruhig, tiiiiieeef einatment, tiiiiiiief ausatmen, langsam bis 10 zählen...

Also, ich fasse mal zusammen: Du hast einen Rover, der steht in einer bestimmen Richtung. Du hast eine Karte und in der Karte willst Du die Richtung des Rovers einzeichnen. Gefühlte 20 Beiträge geht es jetzt um die Richtung, Du hast sogar eine Java-Datei, die so heißt. Und Du fragst jetzt ernsthaft, was Du zurückgeben sollst? Wie wär's z. B. mit der Richtung?


----------



## Heyoka955 (30. Mai 2019)

mihe7 hat gesagt.:


> Ruhig, ruhig, tiiiiieeef einatment, tiiiiiiief ausatmen, langsam bis 10 zählen...
> 
> Also, ich fasse mal zusammen: Du hast einen Rover, der steht in einer bestimmen Richtung. Du hast eine Karte und in der Karte willst Du die Richtung des Rovers einzeichnen. Gefühlte 20 Beiträge geht es jetzt um die Richtung, Du hast sogar eine Java-Datei, die so heißt. Und Du fragst jetzt ernsthaft, was Du zurückgeben sollst? Wie wär's z. B. mit der Richtung?


Mir geht es darum wie ich ^ printe.


----------



## mihe7 (30. Mai 2019)

`print("^");`


----------



## kneitzel (30. Mai 2019)

Also scheint Dein Model nicht ganz stimmig zu sein, wenn Du jetzt nicht die Daten da hast, wo Du diese brauchst.

Wenn Du Oberfläche hast und diese Klasse auch für die Darstellung da ist, dann muss die Oberfläche irgendwie die Informationen über den Rover bekommen... Ich hoffe zumindest jetzt sehr, dass Dein Problem war und nicht irgend etwas triviales wie "Ich habe die Richtung und benötige nun das richtige Zeichen dafür." oder so...

Also schau Dir Dein Model an, überleg, wie entweder die Oberfläche die Information über den Rover bekommen könnte oder alternativ, wo die Ausgabe stattdessen gemacht werde könnte (und da dann alle notwendigen Informationen vorhanden sind).


----------



## Heyoka955 (30. Mai 2019)

kneitzel hat gesagt.:


> Also scheint Dein Model nicht ganz stimmig zu sein, wenn Du jetzt nicht die Daten da hast, wo Du diese brauchst.
> 
> Wenn Du Oberfläche hast und diese Klasse auch für die Darstellung da ist, dann muss die Oberfläche irgendwie die Informationen über den Rover bekommen... Ich hoffe zumindest jetzt sehr, dass Dein Problem war und nicht irgend etwas triviales wie "Ich habe die Richtung und benötige nun das richtige Zeichen dafür." oder so...
> 
> Also schau Dir Dein Model an, überleg, wie entweder die Oberfläche die Information über den Rover bekommen könnte oder alternativ, wo die Ausgabe stattdessen gemacht werde könnte (und da dann alle notwendigen Informationen vorhanden sind).


Ich mache das aber anderes Problem, wieso werden immer eine unterschiedliche Karten gesprintet bei einem Befehl Durchgang ?

Er müsste doch die gleiche Printen oder nicht ?


----------



## mihe7 (30. Mai 2019)

Heyoka955 hat gesagt.:


> wieso werden immer eine unterschiedliche Karten gesprintet bei einem Befehl Durchgang ?


Vielleicht, weil Du bei jedem Befehl eine neue Oberfläche erzeugst?


----------



## Markoolos (30. Mai 2019)

@Heyoka955 Deine Klasse Position hat 2 Int´s im Konstruktor was meine ich "verboten" ist (auf Folie 72 vom Dokument 06).


----------



## Heyoka955 (30. Mai 2019)

mihe7 hat gesagt.:


> Vielleicht, weil Du bei jedem Befehl eine neue Oberfläche erzeugst?


Habe auch rausgefunden ja ich mache eine feste Karte.


----------



## kneitzel (30. Mai 2019)

kneitzel hat gesagt.:


> Ein hoffentlich einfaches Beispiel: deine Klasse für Befehle erstellt sich bei jedem execute eine neue Oberfläche?





Heyoka955 hat gesagt.:


> Habe auch rausgefunden ja ich mache eine feste Karte.



Das ist eine super Leistung! Wurde ja nur in #388 angesprochen.... Aber was Andere Dir schreiben musst Du nicht verstehen. Und wie man gut erkennen kann: Selbst fast komplettes ignorieren von dem, was Dir andere schreiben führt nicht dazu, dass man aufhört Dir zu schreiben ....


----------



## flopalko (30. Mai 2019)

Ist das nicht frustrierend für euch? Eure Hilfe wird anscheinend ja eh nicht benötigt. Es läuft immer gleich ab:
@Heyoka955 steht vor einem für ihn unlösbaren (aber eigentlich trivialen) Problem, ihr sagt ihm was falsch ist und er meint dann, dass er selbst draufgekommen ist. Abgesehen davon, dass das sicher gelogen ist, ist es doch sicherlich frustrierend, dass er sich bei euch nie bedankt.


----------



## mihe7 (30. Mai 2019)

@flopalko bei @Heyoka955 weiß man doch, woran man ist


----------



## Xyz1 (30. Mai 2019)

Ich hätte nicht gedacht das es nun und jetzt schon zum xten Male zu einem 500-Antworten Thema kommt.


----------



## mrBrown (30. Mai 2019)

Markoolos hat gesagt.:


> @Heyoka955 Deine Klasse Position hat 2 Int´s im Konstruktor was meine ich "verboten" ist (auf Folie 72 vom Dokument 06).


Was steht denn in diesem ominösen Dokument?


----------



## mihe7 (30. Mai 2019)

Tobias-nrw hat gesagt.:


> Ich hätte nicht gedacht das es nun und jetzt schon zum xten Male zu einem 500-Antworten Thema kommt.


@flopalko hat es zu Beginn schon erahnt: 


flopalko hat gesagt.:


> Das wird wieder ein lustiger Thread...





mrBrown hat gesagt.:


> Was steht denn in diesem ominösen Dokument?


@Markoolos Das würde mich auch interessieren.


----------



## Markoolos (30. Mai 2019)

mrBrown hat gesagt.:


> Was steht denn in diesem ominösen Dokument?


----------



## mihe7 (30. Mai 2019)

@Markoolos Das ist ziemlich eindeutig


----------

