java erstes projekt

  • Themenstarter Themenstarter Heyoka955
  • Beginndatum Beginndatum
Du musst genauer formulieren! Du bist die ganze Zeit extrem ungenau und das könnte der Grund für Deine Probleme sein.

Derzeit prüfst du, ob der Rover auf einem Hindernis ist. Aber Du willst doch den Rover gar nicht auf die Position eines Hindernisses bringen. Und dann prüfst Du in der Ausgabe? Also zeigst einfach nichts an, wenn der Rover auf einem Hindernis ist?

Also nochmal im Detail drüber nachdenken und dann mal genau formulieren, was wann geprüft werden sollte und was dann auf Basis der Erkenntnis gemacht werden muss....
genau so habe ich das gemacht ! aber wie schaffe ich es dass der rover nicht auf einem hinderniss landet?

oder ist es vielleicht nicht möglich dass nachdem der rover auf dem Hindernis gelandet ist, ich die werte dann zurücksetze also so


Java:
public static void pruefeObHindernisLiegt(){
        int[] aktuellePosition = findeRover();
        if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("#")){
            // hier ein befehl schreiben das dazu sorgt dass dass aktuelle position auf den gleichen wert bleibt
          
        }
       
    }

//dafür müsste ich die methoder aber ändern
 
aber wie schaffe ich es dass der rover nicht auf einem hinderniss landet?

oder ist es vielleicht nicht möglich dass nachdem der rover auf dem Hindernis gelandet ist, ich die werte dann zurücksetze
Warum schreibst Du so wirres Zeug?

Nur mal so als Gedanke: wenn ich mit meinem Auto nicht gegen eine Wand fahren will, dann weiche ich der Wand möglichst vorher aus.
 
Wie gehst Du denn vor, wenn Du auf einem Gebiet bist, bei denen Du abstürzen kannst?
Du bewegst Dich einfach und prüft, ob Du fällst? Und dann überlegst Du, ob Du vielleicht irgendwie zurück kommst?

Oder gehst Du anders vor?
 
Wie gehst Du denn vor, wenn Du auf einem Gebiet bist, bei denen Du abstürzen kannst?
Du bewegst Dich einfach und prüft, ob Du fällst? Und dann überlegst Du, ob Du vielleicht irgendwie zurück kommst?

Oder gehst Du anders vor?
ja ich weiß was ihr meint und die Logik ist klar aber dann muss ich doch eine Methode schreiben, die auf next key überprüft, aber keine Ahnung wie das gehen soll.
 
Gehen ist das Stichwort: in der Bewegungsmethode steht doch bereits drin, wie sich der Rover bewegen würde, wenn es dazu käme.
 
Gehen ist das Stichwort: in der Bewegungsmethode steht doch bereits drin, wie sich der Rover bewegen würde, wenn es dazu kommt.
ja ihr gebt manchmal so oberflächliche tipps hahaha, also ja aber da wird der fall nicht abgedeckt den ich haben will. Ich weiß dass das mit der Methode zu tun hat aber wie greife ich auf den wert zu ?
 
sag mal bitte zeile für zeiel wo das Problem ist?
OK.

Hier:
ja ihr gebt manchmal so oberflächliche tipps
Ja, wir schreiben gerne 150 Kommentare, wo zwei, drei reichen würden.

Dann hier:
da wird der fall nicht abgedeckt den ich haben will.
So? Der Fall, dass sich der Rover bewegt wird hier also nicht abgedeckt?


Und hier:
aber wie greife ich auf den wert zu ?
Auf welchen Wert?
 
Auf welchen Wert?
schau also ich will versuchen abzufragen ob der nächste wert auf den der rover liegt ein hinderniss ist, dafür habe ich auch eine Methode geschrieben die das abfängt. Aber mein Problem ist dass ich nicht weiß wie ich es schaffe in der Methode dass rover nicht mehr auf aufm hinderniss liegt sondern auf dem platz davor.

Java:
    //public static boolean pruefeObHindernisLiegt(){
        //int[] aktuellePosition = findeRover();
        //if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("#")){
            
            //geh zurück zur vorherigen position
        //}
        //return true;
    //}

wenn du mr nicht helfen kannst, dann wäre es cool wenn du mir die lösung geben würdest.
Bin mit nerven am ende.
15 stundne für ein kleines Problem, wie gut dass ich eh im Consulting oder projekt Management gehen will. lol haha
 
schau also ich will versuchen abzufragen ob der nächste wert auf den der rover liegt ein hinderniss ist,
Du willst also prüfen, ob an einer bestimmten Position in der Karte ein Hindernis liegt. Dafür hast Du doch schon eine Methode: getRoverUndHindernisse. Du musst also nur die nächste Position bestimmen und wie das geht steht ja bereits in Deiner Bewegungsmethode.
 
Du willst also prüfen, ob an einer bestimmten Position in der Karte ein Hindernis liegt. Dafür hast Du doch schon eine Methode: getRoverUndHindernisse. Du musst also nur die nächste Position bestimmen und wie das geht steht ja bereits in Deiner Bewegungsmethode.
Aber wo schreibe ich die hin? In welche Methode rein ?
 
Du willst bei einer Bewegung sicherstellen, dass der Rover nicht auf ein Hindernis fährt. Dann würde es sich anbieten, das auch in der Bewegungsmethode abzufangen, findest Du nicht?
Das hattte ich vor aber wie mache ich das
Ich wollte das ganze Zeit machen aber ich weiß nicht wie ich daaa codieren soll.
 
Wenn der so weiter macht, dann fange ich dort an.
Hahahahahahahahahahahahahaah ich programmiere seit Dezember. Kannst kein Wunderwerke erwarten.
Ich habe ja verstanden wie ich das mache.
Meine Idee wäre jetzt
Nach den ganzen if abfragen der Bewegungen eine letzte if abfrage zu machen wo ich diese anfange.
 
Kannst kein Wunderwerke erwarten.
Erstens sind das keine Wunderwerke und zweitens erwarte nicht ich etwas sondern Dein Prof 🙂

Nach den ganzen if abfragen der Bewegungen eine letzte if abfrage zu machen wo ich diese anfange.
Ich habe Dir doch genau geschrieben, was Du tun musst. Algorithmus:
1. Sei x die nächste Position des Rovers
2. Ist an x ein Hindernis? Falls ja, ENDE, sonst weiter mit 3
3. Bewege Rover
 
Du liest echt alles mit uns gibst kein Senf
Sorry, aber als ich das mit Consulting gelesen habe, musste ich echt herzlich lachen. 😀 (sogar ohne Unterbrechung)

Aber ne, 170 postings lese ich dann doch nicht... Deswegen sind jetzt wahrscheinlich keine weiteren "Unterbrechungen" durch mich zu erwarten. 😀 Du könntest Dich aber etwas "zusammennehmen". 😉
 
also so
Erstens sind das keine Wunderwerke und zweitens erwarte nicht ich etwas sondern Dein Prof 🙂


Ich habe Dir doch genau geschrieben, was Du tun musst. Algorithmus:
1. Sei x die nächste Position des Rovers
2. Ist an x ein Hindernis? Falls ja, ENDE, sonst weiter mit 3
3. Bewege Rover

so in etwa ?
Java:
public static void bewegeRover(char c) {
        
        if(!kollisionAbfangen()){
             return;
        }
        if (c == 'f') {
            int[] aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n"))
                aktuellePosition[1]--;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s"))
                aktuellePosition[1]++;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e"))
                aktuellePosition[0]++;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w"))
                aktuellePosition[0]--;
                
        } else if (c == 'b') {
            int[] aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s"))
                aktuellePosition[1]--;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n"))
                aktuellePosition[1]++;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w"))
                aktuellePosition[0]++;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e"))
                aktuellePosition[0]--;
        } else if (c == 'l') {
            int[] aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n"))
                marsKarte.put(aktuellePosition, "w");
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s"))
                marsKarte.put(aktuellePosition, "e");
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e"))
                marsKarte.put(aktuellePosition, "n");
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w"))
                marsKarte.put(aktuellePosition, "s");
        } else if (c == 'r' ) {
            int[] aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w"))
                marsKarte.put(aktuellePosition, "n");
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e"))
                marsKarte.put(aktuellePosition, "s");
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n"))
                marsKarte.put(aktuellePosition, "e");
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s"))
                marsKarte.put(aktuellePosition, "w");
                
                

        }
        
    }
    public static boolean kollisionAbfangen(){
        int[] aktuellePosition = findeRover();
        if(getRoverUndHindernisse(marsKarte, aktuellePosition).equals("#")){
            return false;
            
        }
        
        return true;
    }
 
Sorry, aber als ich das mit Consulting gelesen habe, musste ich echt herzlich lachen. 😀 (sogar ohne Unterbrechung)

Aber ne, 170 postings lese ich dann doch nicht... Deswegen sind jetzt wahrscheinlich keine weiteren "Unterbrechungen" durch mich zu erwarten. 😀 Du könntest Dich aber etwas "zusammennehmen". 😉
ich bin im zweiten Semester, wieos habt ihr alle so hohe erwartungen
 
Nochmal: das sind nicht unsere Erwartungen, sondern die Deiner Uni. Und ja, einen Hauch von Abstraktionsvermögen und logischem Denken darf man erwarten.
schau mal ist das richtig wie ch das jetzt gemacht habe? war das so wie du das meintest? Wenn ja dann funz das leider immer noch nicht 😱
 
Also:
Du prüfst, ob an der Stelle, an der der Rover AKTUELL steht, ein Hindernis ist.
Inwiefern hilft dir das, zu verhindern, dass der Rover sich danach auf ein Hindernis bewegt?
 
Gute Frage, wie könnte man wohl verhindern, dass der Rover auf ein Hindernis fährt?

Man muss testen, ob an der Zielposition ein Hindernis ist und wenn ja, den Rover nicht dort hin fahren lassen lassen.

Kommst du selbst drauf?
 
Erstens sind das keine Wunderwerke und zweitens erwarte nicht ich etwas sondern Dein Prof 🙂
Wie ubereg

Ich habe Dir doch genau geschrieben, was Du tun musst. Algorithmus:
1. Sei x die nächste Position des Rovers
2. Ist an x ein Hindernis? Falls ja, ENDE, sonst weiter mit 3
3. Bewege Rover
Erstens sind das keine Wunderwerke und zweitens erwarte nicht ich etwas sondern Dein Prof 🙂


Ich habe Dir doch genau geschrieben, was Du tun musst. Algorithmus:
1. Sei x die nächste Position des Rovers
2. Ist an x ein Hindernis? Falls ja, ENDE, sonst weiter mit 3
3. Bewege Rover
das habe ich doch gemacht denn? ich habe die aktuelle position und dort habe ich auch abgefangen ob das ein hindernis ist?
 
Der Unterschied zwischen "1. Sei x die nächste Position des Rovers" und "ich habe die aktuelle position" fällt dir der schon selbst auf? (Falls nicht: wie bist du im Grundschulalter an eine Uni gekommen??)
 
Gute Frage, wie könnte man wohl verhindern, dass der Rover auf ein Hindernis fährt?

Man muss testen, ob an der Zielposition ein Hindernis ist und wenn ja, den Rover nicht dort hin fahren lassen lassen.

Kommst du selbst drauf?
so wollte ich das ganze zeit machen, aber ich wusste nict wie ich das mit den programmier werkzeugen mache.
ich weiß was ich machen muss aber nicht wie. Das ist das Problem.
ja klar aber wie übergebe ich die da die nächste position
 
Kannst du denn irgendwie die nächste Position zu die er gehen soll bestimmen?
Kannst du irgendwie ermitteln, was an einer Position liegt?
Wenn du weißt, was an einer Position liegt, kannst du irgendwie testen, ob es ein Hindernis ist?
 

Zurück
Oben