java erstes projekt

  • Themenstarter Themenstarter Heyoka955
  • Beginndatum Beginndatum
Nochmal zwei Schritte zurück.

das sind die möglichkeiten die es fibt
Der Rover kann also in Richtung n, w, e oder s "stehen".

wie in der Methode bewegRover, die steht ja da, mein Problem ist jetzt das zu verbinden?
Darum machen wir das in ganz kleinen Schritten, Du musst aber die Fragen schon beantworten, sonst funktioniert das nicht.

Also:

Würde der Rover einen Schritt fahren, wie würde sich dann die Koordinate ändern? Ich möchte von Dir jetzt kein Wischiwaschi-Gelaber mehr lesen sonder eine konkrete Berechnungsvorschrift (keinen Code!).

Also etwas wie: Der Rover befindet sich an Punkt p=(x,y) und blickt in Richtung "n". Würde er jetzt einen Schritt in Blickrichtung fahren, dann würde er sich am Punkt p'=(...) befinden. Das ganze für alle Blick- und Fahrtrichtungen.
 
Nochmal zwei Schritte zurück.


Der Rover kann also in Richtung n, w, e oder s "stehen".


Darum machen wir das in ganz kleinen Schritten, Du musst aber die Fragen schon beantworten, sonst funktioniert das nicht.

Also:

Würde der Rover einen Schritt fahren, wie würde sich dann die Koordinate ändern? Ich möchte von Dir jetzt kein Wischiwaschi-Gelaber mehr lesen sonder eine konkrete Berechnungsvorschrift (keinen Code!).

Also etwas wie: Der Rover befindet sich an Punkt p=(x,y) und blickt in Richtung "n". Würde er jetzt einen Schritt in Blickrichtung fahren, dann würde er sich am Punkt p'=(...) befinden. Das ganze für alle Blick- und Fahrtrichtungen.
Java:
int[] aktuellePosition = findeRover();
        if(c == 'f')
        if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n" ) && aktuellePosition[1]- == "#" ))
                
            return false;
            
        }


// so will ich das machen aber das funz net.
 
Wir sind jetzt bei 252 Beiträgen und noch keinen Schritt weiter, weil du NIE darauf eingehst, wenn Menschen versuchen dir zu helfen. Antworte doch einfach mal darauf was @mihe7 in #250 geschrieben hat. Vielleicht kommt es danach bei dir zur Erkenntnis, die dir aktuell noch fehlt.
 
Nochmal zwei Schritte zurück.


Der Rover kann also in Richtung n, w, e oder s "stehen".


Darum machen wir das in ganz kleinen Schritten, Du musst aber die Fragen schon beantworten, sonst funktioniert das nicht.

Also:

Würde der Rover einen Schritt fahren, wie würde sich dann die Koordinate ändern? Ich möchte von Dir jetzt kein Wischiwaschi-Gelaber mehr lesen sonder eine konkrete Berechnungsvorschrift (keinen Code!).

Also etwas wie: Der Rover befindet sich an Punkt p=(x,y) und blickt in Richtung "n". Würde er jetzt einen Schritt in Blickrichtung fahren, dann würde er sich am Punkt p'=(...) befinden. Das ganze für alle Blick- und Fahrtrichtungen.
Code:
    public static boolean kollisionAbfangen(char c){
        int[] aktuellePosition = findeRover();
        if (c == 'f') {
            int[] aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n") && aktuellePosition[1]-- == "#")
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && aktuellePosition[1]++ == "#")
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e") && aktuellePosition[0]++ == "#" )
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w") && aktuellePosition[0]-- == "#"  )
               
   
        }
        // also wenn ich das funktionieren würde dann würde das klappen aber der bugt leider
Code:
    public static boolean kollisionAbfangen(char c){
        int[] aktuellePosition = findeRover();
        if (c == 'f') {
             aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n") && aktuellePosition[1]-- == "#")
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && aktuellePosition[1]++ == "#")
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e") && aktuellePosition[0]++ == "#" )
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w") && aktuellePosition[0]-- == "#"  )
                    return false;
    
        }
            
        if (c == 'b') {
            aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && aktuellePosition[1]-- == "#")
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n") && aktuellePosition[1]++ == "#")
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w") && aktuellePosition[0]++ == "#" )
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e") && aktuellePosition[0]-- == "#"  )
                    return false;
    
        }
        
        return true;
        
        
        
        
    }
 
Zuletzt bearbeitet von einem Moderator:
aktuellePosition[1]-- == "#" kann nicht funktionieren, weil du versuchst einen Integerwert mit einem String zu vergleichen.

Du möchtest das Zeichen, das sich an der neuen Position befindet, haben und das bekommst du wie?

Tipp: Es steht schon da und zwar in genau derselben Zeile.
 
Also von mir einfach noch einmal ein kleiner Einwurf....

Es ist ja schon geschrieben worden, dass man der Funktion, die prüft, ob ein Hindernis vorhanden ist, eine Position (also ein Argument vom Typ int[]) mitgeben könnte. Und dann testet man diese Position statt die Position von findeRover().

Und dann kann man in der Funktion, die die Bewegung durchführt, ja schauen, wo da die Position wie verändert wird. Da wir die Position vom Rover nicht ändern wollen, können wir die Position des Rovers ja einmal kopieren und dann in der Bewegung die Kopie anpassen.

Nach der Anpassung der Kopie kann man dann prüfen, ob an der neuen Stelle ein Hindernis ist. Ist dies nicht der Fall, aktualisieren wir die Position vom Rover.

Also ganz trivialer Pseudo Code. Und wenn Du dies nicht umsetzen kannst, alleine, in kurzer Zeit: Studieren bedeutet, dass man auch gelernt hat, zu lernen! Welche Basics fehlen dir? Wie kannst Du Dir diese selbst beibringen? Was für Lernmittel wurden Dir vom Prof an die Hand gegeben? Hast Du die wirklich durchgearbeitet? Evtl. noch einmal durcharbeiten.
Es geht an der Uni nicht nur darum, irgendwie 100 Punkte zu kriegen. Es geht darum, etwas zu lernen und auch darum, dass man das gelernte anwenden kann. Wie willst Du etwas studieren, wenn Du nicht selbständig Themen für Dich erarbeiten kannst? Sorry, ich will Dir nicht zu nahe treten, aber evtl. solltest Du überlegen, ob das, was Du machst, wirklich das Richtige für Dich ist. Lieber nachdem 2. Semester wechseln als später im Job nicht klar zu kommen, weil es einem einfach nicht liegt und man die Leistung, die von einem erwartet werden, nicht bringen kann? Und ich sehe Dich weder als Consultant (Da muss man sich bei Kunden schnell und größtenteils eigenständig in die Themen des Kunden einarbeiten!) noch als Projektmanager (Da wirkst Du mir viel zu unkoordiniert - wenn Du Dich selbst nicht koordiniert bekommst bei relativ einfachen Problemen: Wie willst Du dies unter Druck mit vielen weiteren Personen schaffen?) Mein Eindruck mag täuschen, aber im Augenblick ist das meine Sicht.
 
Hab
Also von mir einfach noch einmal ein kleiner Einwurf....

Es ist ja schon geschrieben worden, dass man der Funktion, die prüft, ob ein Hindernis vorhanden ist, eine Position (also ein Argument vom Typ int[]) mitgeben könnte. Und dann testet man diese Position statt die Position von findeRover().

Und dann kann man in der Funktion, die die Bewegung durchführt, ja schauen, wo da die Position wie verändert wird. Da wir die Position vom Rover nicht ändern wollen, können wir die Position des Rovers ja einmal kopieren und dann in der Bewegung die Kopie anpassen.

Nach der Anpassung der Kopie kann man dann prüfen, ob an der neuen Stelle ein Hindernis ist. Ist dies nicht der Fall, aktualisieren wir die Position vom Rover.

Also ganz trivialer Pseudo Code. Und wenn Du dies nicht umsetzen kannst, alleine, in kurzer Zeit: Studieren bedeutet, dass man auch gelernt hat, zu lernen! Welche Basics fehlen dir? Wie kannst Du Dir diese selbst beibringen? Was für Lernmittel wurden Dir vom Prof an die Hand gegeben? Hast Du die wirklich durchgearbeitet? Evtl. noch einmal durcharbeiten.
Es geht an der Uni nicht nur darum, irgendwie 100 Punkte zu kriegen. Es geht darum, etwas zu lernen und auch darum, dass man das gelernte anwenden kann. Wie willst Du etwas studieren, wenn Du nicht selbständig Themen für Dich erarbeiten kannst? Sorry, ich will Dir nicht zu nahe treten, aber evtl. solltest Du überlegen, ob das, was Du machst, wirklich das Richtige für Dich ist. Lieber nachdem 2. Semester wechseln als später im Job nicht klar zu kommen, weil es einem einfach nicht liegt und man die Leistung, die von einem erwartet werden, nicht bringen kann? Und ich sehe Dich weder als Consultant (Da muss man sich bei Kunden schnell und größtenteils eigenständig in die Themen des Kunden einarbeiten!) noch als Projektmanager (Da wirkst Du mir viel zu unkoordiniert - wenn Du Dich selbst nicht koordiniert bekommst bei relativ einfachen Problemen: Wie willst Du dies unter Druck mit vielen weiteren Personen schaffen?) Mein Eindruck mag täuschen, aber im Augenblick ist das meine Sicht.
hab ich das bei meinem jetzigen Code nicht gemacht ? Also wenn ich den bug da fixxe dann würde das doch gehen ider
 
Ich hab jetzt keine Lust mehr:

Diese Methode getRoverUndHindernisse(marsKarte, new int[] {10,10}) liefert dir den Inhalt vom Kartenfeld (10/10).

Mach was draus und Tschüß!
 
wie bringe ich die Koordinaten des rovers da rein?
Java:
if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && getRoverUndHindernisse(marsKarte, new int[] {10,10}).equals("#"))
                return false;
 
Ach, es könnte so einfach sein...
Java:
public static boolean kollisionAbfangen(char c){
        int[] aktuellePosition = findeRover();
        if (c == 'f') {
             aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n") && getRoverUndHindernisse(marsKarte, new int[] {aktuellePosition[1]--}).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && getRoverUndHindernisse(marsKarte, new int[] {aktuellePosition[1]++}).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e") && getRoverUndHindernisse(marsKarte, new int[] {aktuellePosition[0]++}).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w") && getRoverUndHindernisse(marsKarte, new int[] {aktuellePosition[0]--}).equals("#"))
                    return false;
    
        }
            
        if (c == 'b') {
            aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && getRoverUndHindernisse(marsKarte, new int[] {aktuellePosition[1]--}).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n") && getRoverUndHindernisse(marsKarte, new int[] {aktuellePosition[1]++}).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w") && getRoverUndHindernisse(marsKarte, new int[] {aktuellePosition[0]++ }).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e") && getRoverUndHindernisse(marsKarte, new int[] {aktuellePosition[0]--}).equals("#"))
                    return false;
    
        }
        
        return true;
        
        
        
        
    }


so ist mei code, der müsste eigentlich funktionieren.
 
11691



nachdem der Code funktioniet, werde ich ihn in die bewege rover methode einbeziehen, denn das ist um grunde genommen doppelgemobbel. Ich müsste dann die bedinung verneinen.
 
Zuletzt bearbeitet von einem Moderator:
Ich würde ja gerne mitquatschen, aber 14 Seiten 😵 Ihr seids verrückt 😎 Aber ja ohne groß zu lesen kann ich mir schon denken warum es so ausgeartet ist 😱
 
Dann noch einen Tipp für die Zukunft. Ich zitiere mal aus einem deiner anderen Threads:
Ohne Dir jetzt zu nahe treten zu wollen, aber um 100k zu verdienen fehlt es Dir im Moment erst einmal an guter Rechtschreibung. Es ist auch eine Frage des persönlichen Anspruchs sich die Mühe zu geben sich richtig auszudrücken. Wem es schon zu viel Aufwand ist sich diese Mühe machen, der wird es auch im Job nicht weit bringen...
stimmt nicht ! es ist ein unterschied zwischen privat und buisiness !
Vielleicht solltest du diese Haltung noch mal überdenken und nicht erst im Job sondern bereits jetzt mehr Mühe und Sorgfalt investieren. Dann läuft's sicher auch hier im Forum deutlich konstruktiver.
 
wieso seid ihr so negativ
Nun ja.. dir wurde hier 290 Nachrichten lang die Lösung bis ins kleinste Detail vorgekaut und am Ende hast du aufgegeben.
Auf Fragen hast du meist gar nicht oder zu ungenau geantwortet. Es kommt mir so vor als seist du etwas beratungsresistent.

Wieso also sollte es bei der nächsten Aufgabe besser laufen? Ich sage mal den Verlauf voraus:

- du bekommst die Aufgabe und stellst diese irgendwann ins Forum
- es werden wieder die gleichen Leute versuchen dir zu helfen
- nach 150 Beiträgen verlierst du entweder wieder die Konzentration oder stellst fest, dass du lieber aufgibst, weil bald Abgabe ist

BTW: Dein Gehalt später (100k) wird nicht anhand der Beiträge hier im Forum bestimmt - falls das dein Ziel ist 😉. (SCNR)
 

Zurück
Oben