# Chinesische Ringe



## Mithron (10. Dez 2011)

Moin, 

ich versuche die Anzahl der Ringe als Konsoleneingabe einzubauen nur lässt sich der Wert nicht wirklich zum berechnen weitergeben.. bzw. steh ich da wohl grade auf der Leitung, wie ich die Eingabe da weiterziehen muss.

```
public class ChineseRings 
{
    public static void main(String [] args){
    
        System.out.println("Anzahl der Ringe?");
        int Ringe = new java.util.Scanner(System.in).nextInt();
        if (Ringe <= 0){
            
            System.err.println(Ringe+ " Ringe geht nicht!");
        } 
  
    } 


}
```


----------



## Marcinek (10. Dez 2011)

Mm und welcher Fehler kommt?

Was passiert nicht so wie du es erwartest?


----------



## pro2 (10. Dez 2011)

Am besten schreibst du dir dafür eine richtige Klasse mit entsprechenden Funktionen! 

z.B.


```
public class ChineseRings 
{
    private int rings;

    public void readRings(){    
        System.out.println("Anzahl der Ringe?");
        rings = new java.util.Scanner(System.in).nextInt();
        if (rings <= 0){
            System.err.println(rings + " Ringe geht nicht!");  
    } 
   
   public int getRings(){
        return rings;
   }
}
```


```
public class Test{
{
    ChineseRings test;
    public static void main(String [] args){    
        test = new ChineseRings();
        test.readRings();
        System.out.println(test.getRings());
    }  
}
}
```

Wenn du gar nicht weißt, was ich damit meine, kannst du aber auch in deinem Beispiel einfach mit der Variable "Ringe" weiterarbeiten. Nur halt nur innerhalb der main. Du könntest sie auch außerhalb der main, in der Klasse, definieren.


----------



## Fab1 (10. Dez 2011)

habe es gerade getestet bei mir klappt alles 

die Variablen würde ich klein schreiben, dies dient der Einheitlichkeit.

Ansonsten kannst du natürlich noch eine Ausgabe schreiben, für die Anzahl der Ringe die eingegeben wurde, ansonsten passiert ja nichts, wenn der User etwas eingibt.


----------



## Mithron (10. Dez 2011)

Es soll an eine Methode übergeben werden, die nach folgendem Muster arbeitet:

Baguenaudier Chinese Rings Desperado Centipede puzzles solution and tutorial - YouTube


----------



## Marcinek (10. Dez 2011)

Und wenn du nun schreibst was da nicht geht können wir helfen


----------



## Mithron (10. Dez 2011)

Es soll ja rekursiv berechnet werden, nur kriege ich den in Normalsprache verfassten Algorithmus nicht in eine Java-fähiges Programm umgewandelt.


----------



## Marcinek (10. Dez 2011)

Sorry ich stehe wohlhl auf dem Schlauch.

Was hast du schon an Code?


----------



## Fab1 (11. Dez 2011)

Du kannst ja deinen in "normale Sprache" verfassten Algorithmus mal posten, dann könnte man zusammen klären was du nicht verstehst.


----------



## Mithron (11. Dez 2011)

Ich habe mir folgendes überlegt:

Damit ich alle Ringe mit einer endlichen Zahl 'n' von dem "Loop" runterkriege sollte das Programm prüfen, ob für alle n-Ringe gilt: "1" = Ring auf dem "Loop" oder "0" = kein ring auf dem "Loop" 

Bsp.:

Wenn ich in der Konsole 4 eingebe, dass mir das Programm dann 4 "Ringe" mit dem Wert 1 kreiirt.

1 1 1 1 = "loop voll" nun sollen alle 1en durch 0en getauscht werden mit der Regel wenn n = 1 und n-1 = 1 und alles danach bis n-(n-1)=0 tausche n durch 0 usw. bis alle 0en weg sind.


----------

