Java :: Aufgabe #353 :: Lösung #1
1 Lösung

#353
Figur zurück zum Ausgangspunkt
Anfänger - Java
von JKooP
- 02.04.2021 um 08:45 Uhr
Eine Figur bewegt sich auf einer 2D- Spielfläche (Koordinatensysteme). Dabei startet sie an der Position (0, 0).
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
#1

von CyoSplatoon (160 Punkte)
- 18.05.2021 um 08:27 Uhr

import javax.swing.JOptionPane; public class Task353 { public static void main(String[] args) { int posX = 0; int posY = 0; char[] a; do { a = JOptionPane.showInputDialog("Bitte geben Sie eine Abfolge von Bewegungszügen an: ").toUpperCase().toCharArray(); } while (!validate(a)); for (int i = 0; i < a.length; i++) { switch (a[i]) { case 'U': posY++; break; case 'D': posY--; break; case 'L': posX--; break; case 'R': posX++; break; } } if (posX == 0 && posY == 0) { JOptionPane.showMessageDialog(null, "Nullpunkt erreicht."); System.out.println(posX == 0 && posY == 0); // Konsolenoutput sollte in diesem Falle "true" sein. } else { JOptionPane.showMessageDialog(null, "Nullpunkt nicht erreicht."); System.out.println(posX == 0 && posY == 0); // Konsolenoutput sollte in diesem Falle "false" sein. } } private static boolean validate(char[] charArray) { for (int i = 0; i < charArray.length; i++) { switch (charArray[i]) { case 'U': break; case 'D': break; case 'L': break; case 'R': break; default: JOptionPane.showMessageDialog(null, "Validation fehlgeschlagen. Bitte nochmal versuchen.", "Fehler", 0); return false; } } return true; } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1