/************************************************************ * Classe per disegnare rombi sullo schermo. * Il rombo e` determinato dalla sola sua diagonale. * Eredita getOffset, setOffset e drawAt dalla classe Figure. ************************************************************/ public class Diamond extends Figure { private int diameter; public Diamond() { super(); diameter = 0; } public Diamond(int theOffset, int theDiameter) { super(theOffset); diameter = theDiameter; } public void reset(int newOffset, int newDiameter) { setOffset(newOffset); diameter = newDiameter; } /************************************* * Disegna la figura alla riga corrente. *************************************/ private void drawHere() { drawTop(); drawBottom(); } private void drawTop() { int startOfLine = getOffset() + (diameter/2); spaces(startOfLine); System.out.println('*'); int count; int lineCount = (diameter/2) - 1; int insideWidth = 1; for (count = 0; count < lineCount; count++) { startOfLine--; spaces(startOfLine); System.out.print('*'); spaces(insideWidth); System.out.println('*'); insideWidth = insideWidth + 2; } } private void drawBottom() { int startOfLine = getOffset(); int count; int lineCount = (diameter/2); int insideWidth = 2*lineCount - 1; for (count = 0; count < lineCount; count++) { spaces(startOfLine); System.out.print('*'); spaces(insideWidth); System.out.println('*'); insideWidth = insideWidth - 2; startOfLine++; } spaces(startOfLine); System.out.println('*'); } // Scrive lo specificato numero di caratteri blank. private static void spaces(int number) { int count; for (count = 0; count < number; count++) System.out.print(' '); } public static void main(String[] args) { int indent = 5, diagonale = 5; System.out.println("Test di Diamond"); Diamond x = new Diamond(indent, diagonale); x.drawAt(0); x.reset (4, 7); x.drawAt(0); } }