# ""fahrendes Auto""



## Baboon1986 (26. Apr 2012)

Hallo erstmal,  bin der Baboon

habe mich vor kurzem entschlossen, mal in die programmier Welt reinzuschnuppern und dachte ich fang mal mit java an.

mein wissens Stand  ...wenn man von einer Skala von 0 bis 10 geht , ist = 0,1

So warum ich euch jetzt mit meiner anwesenheit Nerve ist folgende ! um Java schneller zu verstehen,  hab ich mir alte -übungsaufgaben besorgt , das problem ist, ich finde nirgendswo lösungen oder wenigstens kleine andenkstöschen, die mir zur lösung behilflich sein könnten 

Jetzt wollte ich euch Fragen ? Ob ihr mir bei dieser aufgabe behilflich sein könntet? Oder wenigstens kleine Schokostückchen zuwerfen könntet, das ich denn Kuchen selbst zuende Backe 

Hab hier eine aufgabe, in der ich ein "fahrendes Auto " interakrtiv in Java Simulieren soll.....

Die Frage Stellung ist wie folgt = Schreiben Sie ein Java-Programm, dass ein „fahrendes Auto“ auf einer Straße am Bildschirm darstellt. Das Auto soll durch a Zeichen dargestellt werden. Ein Auto mit einer Länge von a=3 Zeichen kann z.B. durch „0-0“ dargestellt werden. Die Straße soll eine Länge von s Zeichen haben. Der Straßenbelag kann z.B. durch das Zeichen „_“ dargestellt werden. An der Stelle, an der sich das Auto befindet, wird das Auto, ansonsten der Straßenbelag dargestellt. Zu Beginn soll das Auto auf der linken Seite der Straße wie folgt dargestellt werden:
0-0_________________

Anschließend soll die Straße mit dem Auto iteraktiv, d.h. wiederholend, dargestellt werden. In jeder Iteraktion (Wiederholung) soll sich die Position des Autos um den Wert Eins nach rechts verschieben, bis das Auto das rechte Ende der Straße erreicht hat. Es soll sich also folgende Ausgabe ergeben:
0-0_________________
_0-0________________
__0-0_______________
___0-0______________
____0-0_____________
_____0-0____________
______0-0___________
_______0-0__________
________0-0_________
_________0-0________
__________0-0_______
___________0-0______
____________0-0_____
_____________0-0____
______________0-0___
_______________0-0__
________________0-0_
_________________0-0

So hab ich angefangen mit Eclipse= 

public class FahrendesAuto {


	public static void main(String[] args) {

  for (int i=0; i<=1; i++){
  for (int j=1; j=i; j++)

System.out.print("0-0__________");
System.out.println();{
		}}}

mein ergebnis ist =   0-0__________ ,


......jetzt fehlen mir aber einige zeilen und ich weiss wirklich net wie ich weiter machen soll?:noe:

Über Hilfe würde ich mich sehr Freuen


MfG Baboon


----------



## Gast2 (26. Apr 2012)

Hi erstmal

1) Das was du da versuchst ist viel zu komplex für die erste Aufgabe 
2) Mache ein Tutorial durch. Da gibts jede Menge oder kauf dir ein Buch (z.B: Java von Kopf bis Fuß) denn dort werden Grundlagen auch erklärt und man fängt wirklich bei 0 an. Stück für Stück erweitert sich dann der Kenntnisstand und man ha tauch schnell Erfolge. 
3) Wenn du hier Fragen postest dann bitte mit dem Quellcode (Idealerweise kompilierfähig) und in Java Tags! 

Gruß Florian


----------



## Baboon1986 (26. Apr 2012)

> 1) Das was du da versuchst ist viel zu komplex für die erste Aufgabe



Ist net ganz meine erste Aufgabe , hab schon ein paar erledigt , da gint es aber eher um Addiern multiplizieren usw....aber gut, ich sehe schon, die Aufgabe scheint wirklich ein wenig zu komplex für mein wissenstand zu sein 



> 2) Mache ein Tutorial durch. Da gibts jede Menge oder kauf dir ein Buch (z.B: Java von Kopf bis Fuß) denn dort werden Grundlagen auch erklärt und man fängt wirklich bei 0 an. Stück für Stück erweitert sich dann der Kenntnisstand und man ha tauch schnell Erfolge.



Danke für den Tipp



> 3) Wenn du hier Fragen postest dann bitte mit dem Quellcode (Idealerweise kompilierfähig) und in Java Tags!



Quellcode ? ???:L   .... Java Tags!???:L ...Das sagt mir jetzt nicht wirklich was, aber beim nächsten mal werd ich es beachten 


gruß Baboon


----------



## nieselfriem (26. Apr 2012)

Hi hi, 
damit ist folgendes gemeint

```
[code=Java]System.out.println("Hallo");
```
[/CODE]

ergibt dann:

```
System.out.println("Hallo");
```
Somit kann man im Forum deinen Quelltext besser lesen.

Grüße niesel


----------



## Nodiraa (26. Apr 2012)

Die Java Tags sind der rote Hinweis, wenn Du einen Beitrag verfasst.

Also java code ohne:

public static void main (String args[]){
}

und mit :


```
public static void main (String args[]){
}
```

Schau auch mal in die Tutorial Sektion: Bücher, Tutorials und Links - java-forum.org

Viel Spaß.


----------



## timbeau (26. Apr 2012)

Was meinst du mit "fehlen einige Zeilen"? Eingabe von der Tastatur?


----------



## MiDniGG (26. Apr 2012)

Um Dir trotz allem mal etwas zu helfen:


```
public static void main(String[] args) {

for (int i=0; i<=1; i++){
for (int j=1; j=i; j++)

System.out.print("0-0__________");
System.out.println();{
}}}
```

Code anständig formatieren, sonst checkt keiner mehr durch. }}} ist unschön:


```
public static void main(String[] args) {
     for (int i=0; i<=1; i++) {
          for (int j=1; j=i; j++) {
               System.out.print("0-0__________");
          }
          System.out.println();{
     }
}
```

So. Was Du momentan machst ist Folgendes:
Du erstellst i mit dem Wert 0. Anschließend erhöhst Du i bei jedem Schleifendurchlauf so lang, wie es kleiner oder gleich 1 ist. Also einmal.
=> Du läufst 2 mal durch die erste Schleife.
Die zweiten Schleife hat keine Abbruchbedingung. Nur eine Zuweisung. Ich bin mir sicher, dass das nicht funktioniert... 

Jetzt überlegen wir mal, was wir brauchen.

1.) Ein Auto mit 3 Zeichen: 0-0
2.) Straße mit Länge S -> int s = 10;
3.) Aktuelle Position des Autos -> int carPos = 0;

So. Jetzt müssen wir die aktuelle Position des Autos bei jedem Schleifendurchlauf um eins erhöhen.


```
for(int carPos = 0; carPos <= s; carPos++) {

}
```

Anschließens müssen wir schauen, an welcher Position das Auto ist.
Bspw. an Position 5.
Dann müssen wir erst 5 Straßenteile ausgeben (for-Schleife) System.out.print("_"); dann das Auto und danach den Rest der Straße (for-Schleife). Also s-carPos oft.
Am Ende noch einen Zeilenumbruch (System.out.println(); reicht hier).

Ich hoffe Du kannst damit was anfangen. Ich könnte Dir natürlich auch die 10 Zeilen Code hier hinschreiben. Aber das ist ja nicht Sinn der Sache! ;-)


----------



## hackenjoe (26. Apr 2012)

Also ich hätte es jetzt auf die Schnelle so gemacht:


```
public class Test {

    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int Straße = 10;
        String Auto = "0-0";
        
        for (int carPosition = 0; carPosition <= Straße; carPosition++)
        {
            switch (carPosition)
            {
                case 0: System.out.println(Auto + "__________");
                case 1: System.out.println("___" + Auto + "________");
                case 2: System.out.println("______" + Auto + "_____");
                    
                    //usw...
            }
        }
    }
}
```


----------



## timbeau (26. Apr 2012)

Und das ist so ziemlich der worst-case.


----------



## Pippl (26. Apr 2012)

hackenjoe hat gesagt.:


> Also ich hätte es jetzt auf die Schnelle so gemacht:
> 
> 
> ```
> ...



variablen gehören klein und beim switch fehlen die breaks ;-)


----------



## MiDniGG (26. Apr 2012)

Pippl hat gesagt.:


> variablen gehören klein und beim switch fehlen die breaks ;-)



Vor allem ist der switch ziemlich sinnlos, wenn eh alles von Hand geschrieben wird.


----------



## hackenjoe (26. Apr 2012)

Ich habe das in weniger als 4 Minuten kurz geschrieben, sicher das Variablen klein gehören und die breaks fehlen 
Dann hätte man aber auch noch eine "Extra" Methode dafür anlegen können, damit es schöner aussieht.


----------



## Gast2 (26. Apr 2012)

Oder gleich ohne switch (ungetestet):


```
public class CarDrivingTest {

    public static void main(String[] args) {
        int street = 10;
        String car = "0-0";
        
        for (int carPosition = 0; carPosition <= street; carPosition++)
        {
            for (int i=0; i<carPosition; i++) {
                System.out.print("_");
            }
            System.out.print(car);
            for (int i=carPosition+1; i<= street; i++) {
                System.out.print("_");
            }
            System.out.println("");
        }
    }
}
```

PS: Variablen auf Englisch und klein!

[EDIT]Doch getestet mit Output: 

```
0-0__________
_0-0_________
__0-0________
___0-0_______
____0-0______
_____0-0_____
______0-0____
_______0-0___
________0-0__
_________0-0_
__________0-0
```
[/EDIT]


----------



## hackenjoe (26. Apr 2012)

Jap optimale Lösung...


----------



## Gast2 (26. Apr 2012)

Gern geschehen ^^ 

@TO: Mach trotzdem besser eins der vielen Tutorials oder Bücher, denn auf Dauer wird das mit Aufgaben ohne Lösung ätzend!


----------

