java erstes projekt

  • Themenstarter Themenstarter Heyoka955
  • Beginndatum Beginndatum
Weil ich mehr zusammenreißen werde
Lass dir einen Rat geben: die ersten Aufgaben nicht machen, weil man sich bei den späteren „zusammenreißt“, geht IMMER schief.
JETZT sind die Aufgaben am leichtesten, die späteren werden schwerer.
JETZT hast du am meisten Zeit, später bedingt durch die anderen Fächer nahezu immer weniger.
JETZT werden die Grundlagen für spätere Aufgaben gelegt, die werden Dir bei späteren Aufgaben fehlen.
 
Kriege neues Projekt, aber denke da packe ich das
Dir ist klar, dass die erste Aufgabe die zum Aufwärmen ist?

Jetzt schlaf' mal eine Nacht drüber, dann schaust Du Dir morgen mal die Sache nochmal an. Wenn Du willst, dann beantwortest Du #250 und dann wirst Du die paar Zeilen wohl auch noch hinbekommen.

Irgendwie müssen wir den Thread ja am Laufen halten, unter 500 Kommentare gebe ich mich nicht zufrieden 😛
 
Verdammt, schlechte Aussichten für mich 🙁
Ne
Dir ist klar, dass die erste Aufgabe die zum Aufwärmen ist?

Jetzt schlaf' mal eine Nacht drüber, dann schaust Du Dir morgen mal die Sache nochmal an. Wenn Du willst, dann beantwortest Du #250 und dann wirst Du die paar Zeilen wohl auch noch hinbekommen.

Irgendwie müssen wir den Thread ja am Laufen halten, unter 500 Kommentare gebe ich mich nicht zufrieden 😛
Ja mache ich, hast ja richtig Spaß
 
So Leute bin back,
Am besten fangen wir von neu an.

Also ich möchte einen Code schreiben der dafür sorgt dass der Rover voher abfragt ob der nächste schritt notwendig auf ein Rover landet, aber leider weiß ich nicht wie ich das machen soll?
Ich hatte überlegt abzufragen was übergeben wird also ob f oder b übergeben je dann wollte ich von der move Methode die Bedingungen kopieren und einen weiteren booleschen Ausdruck hinzuzufügen das besagt aktuekleposition++ == „#“
 
Fang nochmal einen Schritt früher an.
Was bedeutet i++, wenn i eine integer-Variable mit Wert 0 ist? Welchen Wert hat der Ausdruck i++ und welchen Wert hat i danach?
 
Fang nochmal einen Schritt früher an.
Was bedeutet i++, wenn i eine integer-Variable mit Wert 0 ist? Welchen Wert hat der Ausdruck i++ und welchen Wert hat i danach?
Dass der Wert danach diesen Wert beinhaltet so daas i danach i = i+ 1 ist,
Das heißt ich muss es so machen dass i sich nicht verändert aber wie
 
Dass der Wert danach diesen Wert beinhaltet so daas i danach i = i+ 1 ist,
Das heißt ich muss es so machen dass i sich nicht verändert aber wie

Mal ein Beispiel, du musst die Erkenntnis daraus, danach auf dein Problem abstrahieren umsetzen:

Java:
boolean istDieZahlVier(int zahl) {
    return zahl == 4; // Das Ergebnis wird wahr, wenn die Zahl im Parameter gleich 4 ist
}

// Nehmen wir jetzt an, dass du später prüfen möchtest, ob eine Zahl = 4 ist, dann:

int zahl = 3;
istDieZahlVier(zahl); // ergibt false

// Möchtest du prüfen, ob die nächst größere Zahl = 4 ist, dann könntest du machen:

istDieZahlVier(zahl++); // ergibt true, aber jetzt ist die zahl nicht mehr 3 sondern 4, dass wolltest du nicht

// Du könntest es auch so machen:

istDieZahlVier(zahl + 1); // ergibt true, aber die zahl bleibt auf den alten Wert. Es wird 1 zur Zahl addiert und dieser neue Wert an die Methode übergeben.
 
Zuletzt bearbeitet:
Mal ein Beispiel, du musst die Erkenntnis daraus, danach auf dein Problem abstrahieren:

Java:
boolean istDieZahlVier(int zahl) {
    return zahl == 4; // Das Ergebnis wird wahr, wenn die Zahl im Parameter gleich 4 ist
}

// Nehmen wir jetzt an, dass du später prüfen möchtest, ob eine Zahl = 4 ist, dann:

int zahl = 3;
istDieZahlVier(zahl); // ergibt false

// Möchtest du prüfen, ob die nächst größere Zahl = 4 ist, dann könntest du machen:

istDieZahlVier(zahl++); // ergibt true, aber jetzt ist die zahl nicht mehr 3 sondern 4, dass wolltest du nicht

// Du könntest es auch so machen:

istDieZahlVier(zahl + 1); // ergibt true, aber die zahl bleibt auf den alten Wert. Es wird 1 zur Zahl addiert und dieser neue Wert an die Methode übergeben.
Womit soll ich das subtrahieren
 
Das steht doch in dem Beispiel: zahl++ verändert die Variable zahl, zahl+1 verändert die Variable zahl nicht. Ersetze zahl durch i und Du hast die Antwort auf die Frage, wie du "es so machen" kannst, dass sich i nicht verändert.
 
Das steht doch in dem Beispiel: zahl++ verändert die Variable zahl, zahl+1 verändert die Variable zahl nicht. Ersetze zahl durch i und Du hast die Antwort auf die Frage, wie du "es so machen" kannst, dass sich i nicht verändert.
Ja das meinte ich ja aber dann kam bei meiner of abfrage Fehlermeldung !!!
 
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.
So sieht er aus, wenn ich das Minus weg mache dann klappt das nicht.
 
So sieht er aus, wenn ich das Minus weg mache dann klappt das nicht.

Schau dir mal dies an: int[] aktuellePosition = findeRover();

Bei der Position handelt es sich um ein Array mit zwei Elementen (sozusagen X/Y-Koordinaten). Auch die Methode "getRoverUndHindernisse" erwartet als Parameter ein Array. Du übergibst zwar ein Array, aber nur mit einem Element.

Schau dir noch mal Beitrag #265 weiter oben an, es fehlt eigentlich nur die zweite Hälfte der Koordinate.

In Beitrag #237 steht, wie du auf die beiden Teile der Koordinate zugreifen kannst.
 
Ist das dann fer
Schau dir mal dies an: int[] aktuellePosition = findeRover();

Bei der Position handelt es sich um ein Array mit zwei Elementen (sozusagen X/Y-Koordinaten). Auch die Methode "getRoverUndHindernisse" erwartet als Parameter ein Array. Du übergibst zwar ein Array, aber nur mit einem Element.

Schau dir noch mal Beitrag #265 weiter oben an, es fehlt eigentlich nur die zweite Hälfte der Koordinate.

In Beitrag #237 steht, wie du auf die beiden Teile der Koordinate zugreifen kannst.
thab ich es dann fertig ☺️
 
Schau dir mal dies an: int[] aktuellePosition = findeRover();

Bei der Position handelt es sich um ein Array mit zwei Elementen (sozusagen X/Y-Koordinaten). Auch die Methode "getRoverUndHindernisse" erwartet als Parameter ein Array. Du übergibst zwar ein Array, aber nur mit einem Element.

Schau dir noch mal Beitrag #265 weiter oben an, es fehlt eigentlich nur die zweite Hälfte der Koordinate.

In Beitrag #237 steht, wie du auf die beiden Teile der Koordinate zugreifen kannst.
Die beiden muss ich in mekne of Bedingung einfügen oder wie ?
 
Die beiden muss ich in mekne of Bedingung einfügen oder wie ?
OMG. Wenn Du eine 2-dimensionale Koordinate angibst, brauchst Du halt zwei 1-dimensionale Koordinaten. Das hat nichts mit Java zu tun. In Deinem Programm wird eine 2-dimensionale Koordinate durch ein 2-elementiges Array dargestellt. Jedes Element entspricht damit einer 1-dimensionalen Koordinate. Folglich musst Du überall, wo Du eine 2-dimensionale Koordinate angeben willst, ein 2-elementiges Array verwenden.
 
OMG. Wenn Du eine 2-dimensionale Koordinate angibst, brauchst Du halt zwei 1-dimensionale Koordinaten. Das hat nichts mit Java zu tun. In Deinem Programm wird eine 2-dimensionale Koordinate durch ein 2-elementiges Array dargestellt. Jedes Element entspricht damit einer 1-dimensionalen Koordinate. Folglich musst Du überall, wo Du eine 2-dimensionale Koordinate angeben willst, ein 2-elementiges Array verwenden.
A
OMG. Wenn Du eine 2-dimensionale Koordinate angibst, brauchst Du halt zwei 1-dimensionale Koordinaten. Das hat nichts mit Java zu tun. In Deinem Programm wird eine 2-dimensionale Koordinate durch ein 2-elementiges Array dargestellt. Jedes Element entspricht damit einer 1-dimensionalen Koordinate. Folglich musst Du überall, wo Du eine 2-dimensionale Koordinate angeben willst, ein 2-elementiges Array verwenden.
Verstehe also muss ich schreiben

New int[] {aktuelle Position[0], aktuelle Position[1]}
 
Wenn Du damit new int[]{aktuellePosition[0], aktuellePosition[1]} meinst, wäre das eine vollständige Koordinate. In diesem Fall würde es sich um eine Kopie der Koordinate aktuellePosition handeln.
 
getRoverUndHindernisse(marsKarte, aktuellePosition)

und

getRoverUndHindernisse(marsKarte, new int[]{aktuellePosition[0], aktuellePosition[1]})

sind gleichwertig. Im ersten Fall nimmst du direkt ein Array mit zwei Elementen und im zweiten Fall erzeugst du ein neues Array mit zwei Elementen mit den gleichen Werten wie in "aktuellePosition"
 
A

Verstehe also muss ich schreiben

New int[][] = new int[] {aktuelle Position[0], aktuelle Position[1]+}
Wenn Du damit new int[]{aktuellePosition[0], aktuellePosition[1]} meinst, wäre das eine vollständige Koordinate. In diesem Fall würde es sich um eine Kopie der Koordinate aktuellePosition handeln.
also dann müsste ich es für den Fall falls c „f“ ost so schreiben.

new int[]{aktuellePosition[0], aktuellePosition[1]-1} und das in die bedinung rein ?
 
Wieso helft ihr ihm eigentlich immer noch?
Würde man irgendeine Eigeninitiative erkennen fände ich das ja noch verständlich. Allerdings geht der TE auf keine Hinweise (vernünftig) ein, formuliert noch immer keine korrekten Sätze, schreibt einfach nicht verständlich und zeigt mit jedem Posting, dass er von Programmieren einfach absolut keine Ahnung hat. Ich glaube, dass das Problem mittlerweile jemand lösen könnte, der noch nie programmiert hat und als Hilfestellung NUR diesen Thread hat.
 
Allerdings geht der TE auf keine Hinweise (vernünftig) ein, formuliert noch immer keine korrekten Sätze, schreibt einfach nicht verständlich und zeigt mit jedem Posting, dass er von Programmieren einfach absolut keine Ahnung hat.
Der Witz kommt ja am Schluss, wenn er dann die Lösung hat. Ich werde zu gegebener Zeit hierauf verweisen 🙂
 
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[0],aktuellePosition[1]-1}).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && getRoverUndHindernisse(marsKarte, new int[][] {aktuellePosition[0],aktuellePosition[1]+1}).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e") && getRoverUndHindernisse(marsKarte, new int[][] {aktuellePosition[0]+1,aktuellePosition[1]}).equals("#"))
                return false;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w") && getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0]-1}.aktuellePosition[1]).equals("#"))
                    return false;
 
        }
         
       .. //so ungefähr ?
     
     
     
    }
 
Es wird langsam. Beziehe mal deinen Gedanken, den d
Java:
public static void move(char c) {
        if (c == 'f') {
            int[] aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n") && !getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0],aktuellePosition[1]-1}).equals("#"))
                aktuellePosition[1]--;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && !getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0],aktuellePosition[1]+1}).equals("#"))
                aktuellePosition[1]++;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e") && !getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0]+1,aktuellePosition[1]}).equals("#"))
                aktuellePosition[0]++;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w") && !getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0]-1,aktuellePosition[1]}).equals("#"))
                aktuellePosition[0]--;
        } else if (c == 'b') {
            //hier weiter noch
u gestern gehabt hast, in deine Überlegungen ein. Der war gut.
i
 
Es wird langsam. Beziehe mal deinen Gedanken, den d
Java:
public static void move(char c) {
        if (c == 'f') {
            int[] aktuellePosition = findeRover();
            if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("n") && !getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0],aktuellePosition[1]-1}).equals("#"))
                aktuellePosition[1]--;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("s") && !getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0],aktuellePosition[1]+1}).equals("#"))
                aktuellePosition[1]++;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("e") && !getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0]+1,aktuellePosition[1]}).equals("#"))
                aktuellePosition[0]++;
            else if (getRoverUndHindernisse(marsKarte, aktuellePosition).equals("w") && !getRoverUndHindernisse(marsKarte, new int[][]{aktuellePosition[0]-1,aktuellePosition[1]}).equals("#"))
                aktuellePosition[0]--;
        } else if (c == 'b') {
            //hier weiter noch
u gestern gehabt hast, in deine Überlegungen ein. Der war gut.
i

Wie bekommst du solche "kaputten" Beiträge hin? Es ist schon fast ne Beleidigung, Leuten die dir helfen, mit solchen Beiträgen zu antworten...
 
ich tippe zu schnell, ist die jetzt richtig?
Kommt drauf an, wen zu mit "die" meinst. Bezieht sich das auf diesen Beitrag, oder auf den Code, oder auf irgendwas anderes?

Kleiner Tipp am Rande: wenn beim "zu schnell tippen" nur Müll raus kommt, tipp langsamer. Tippgeschwindigkeit ist wirklich nicht das wichtigste für Informatiker...
 
Kommt drauf an, wen zu mit "die" meinst. Bezieht sich das auf diesen Beitrag, oder auf den Code, oder auf irgendwas anderes?

Kleiner Tipp am Rande: wenn beim "zu schnell tippen" nur Müll raus kommt, tipp langsamer. Tippgeschwindigkeit ist wirklich nicht das wichtigste für Informatiker...
mein aktueller beitrag, jo nehme ich mir als tipp
 
Würde ich so nicht unterschreiben, aber gut.
Gibt da zB diesen Zitat zum Programmieren:
Robert C. Martin hat gesagt.:
Indeed, the ratio of time spent reading versus writing is well over 10 to 1.
Programmieren macht aber meist auch nur einen Teil der Arbeit aus, kommt durchaus vor, dass man nen Tag lang keine einzige Zeile Code schreibt. Und selbst beim Programmieren ist die Schreibzeit keineswegs ein durchgängig tippen...

Wenn man mal optimistisch wirklich 1/10 ansetzt, braucht man grad mal doppelt so lange für irgendwas, wenn man nur ein Zehntel der Zeichen tippt, da machen andere Sachen doch deutlich mehr aus (wofür dieser Thread ja wohl das beste Beispiel ist 😉 )
 

Zurück
Oben