Raute ausgeben in der Console



  • Ich habe folgendes Problem. Ich möchte gerne eine Raute auf der Console ausgeben die immer ungerade Zahlen ausgibt um die Raute auch nach Vorgabe ausgeben zu können. Wird z.B. eine 3 eingegeben (eingelesen) wird eine 33 Raute ausgegeben.
    Bei 5, 5
    5 ...

    Bsp:

    x
    xxx
    xxxxx
    xxx
    x
    Ich komme hier beim Algorithmus nur nicht weiter. Könnte ich Hilfe bekommen? Da wo ein x hinkommt und wo nicht ist über ein boolsches Array definiert.

    Hier der Code:

    public class Legespiel {
    	boolean feld[][];
    
    	Legespiel(int n)
    	{
    		this.feld = new boolean [n][n];
    	}
    
    	void LegeRaute()
    	{
    		// Algorithmus ((i*2)-(i/2)) = Größe Matrix
    		int iLength = (this.feld.length*2)-(this.feld.length/2);
    		int iTemp = 0;
    
    		for(int i = 0; i < iLength;i++) //Zeilen
    		{   
    
    			for(int j = 0; j < iLength;j++) // Spalten
    			{
    				this.feld[i][j] = true;
    			}
    		}
    	}
    
    	public String toString()
    	{
    		String str = "";
    		int iFulllength = (this.feld.length*2)-(this.feld.length/2);
    		int iLineLength = this.feld.length-1;
    
    		for(int i = 0; i < iFulllength;i++) //Zeilen
    		{
    			for(int j = 0; j < iFulllength; j++) // Spalten
    			{
    				if(this.feld[i][j])
    					str += "*";
    				else
    					str += " ";
    			}
    			str += "\n";
    		}
    		return str;
    	}
    }
    


  • Toll, ich kann durch meine Glaskugel die Aufgabe sehen (bin nähmlich nebenberuflich Magier): 🙄

    Gloskogle schrieb:

    Programmieren Sie die Klassen Legespiel und LegespielTest
    1 Die Java-Klasse Legespiel muss folgende Eigenschaften besitzen:
    /11/ Der Konstruktor Legespiel (int n) erzeugt ein zweidimensionales Feld vom
    Typ boolean der Größe nxn
    /12/ Die Methode legeRaute() setzt einzelne Feldkomponenten auf den Wert true,
    so dass alle auf true gesetzten Komponenten zusammen das Muster einer
    Raute ergeben. Die Raute soll jeweils in der Mitte der Feldseiten mit ihrer Spitze
    die Feldseite berühren. (siehe Bild)
    /13/ Die Methode toString() erzeugt einen String aus dem Feld. Sie startet mit
    dem leeren String und hängt für jede Feldkomponente ein Zeichen daran:
    Wenn die Feldkomponente den Wert
    - false hat, dann wird ein Leerzeichen angehängt
    - true hat, dann wird ein '*'-Zeichen angehängt.
    Nach jeder Zeile des Feldes, soll auch im String ein Zeilenvorschub angehängt
    werden (Hinweis: '\n' erzeugt einen Zeilenvorschub).
    2 Die Java-Klasse LegespielTest muss folgende Eigenschaften besitzen:
    /21/ Die main-Methode liest eine ganze Zahl von der Konsole ein, die größer gleich 3
    und ungerade sein muss. Sie sorgt anschließend dafür, dass ein Feld in der geforderten
    Größe erzeugt wird, veranlasst das Legespiel dazu die Raute zu legen
    und gibt das Ergebnis mittels toString() auf der Konsole aus.

    Wo der Fehler ist: Es sind mehere

    • Zeile 12, 28: iLength Berechnung falsch (iLength ist z.Zt. nichts anderes als 1.5 * n) Les dir besser die Aufgabenstellung durch!
    • Zeile 20:
      Eine Raute: Der Mittelpunkt ist !, ein Viertel A-F, die Spiegelungen kleingeschreiben:
    C
       fBE
      edADF
     cba!abc
      fdade
       ebf
        c
    

    Kannst du das makierte Rautenviertel malen? Dann kannst du durch Spiegelung durch den Mittelpunkt auf die anderen drei Rautenviertel kommen. (Außedem Mittelpunkt makieren nicht vergessen).



  • Kannst du die komplette Lösung mal texten?!



  • Hallo,

    ich hab bei mir auch so ähnliche Problem..!

    Kannst du bitte den Fehler zeigen! ich bekomme nur false als ausgabe !!!!!! :((



  • Lol das erzähl ich eurem Prof. das ihr hier die Lösung sucht 😉 🙂 🙂 😃



  • Die Lösung hab ich hinbekommen.

    Ich hätte es aber auch wenn es komplizierter ist über Arrays oder Vergrößerung des Arrays gelöst.

    Der Algorithmus ist mir zu technisch.


Anmelden zum Antworten