Divertimento con Java - Disegna un diamante
Recentemente ho trovato un'interessante richiesta di uno studente Java su uno dei forum che ho letto. Alla sua classe era stato chiesto di usare un ciclo for per estrarre un diamante dagli asterischi (*). Aveva una soluzione corretta e funzionante, ma era stato segnato perché era eccessivamente complicato e presentava diversi anelli. Lo studente ha chiesto suggerimenti su modi più semplici per ottenere lo stesso risultato. Ho pensato che fosse un problema interessante e ho deciso di provarci. Il mio programma è sotto (o puoi scaricare una copia qui.) Questo chiaramente non è un codice di produzione - per prima cosa, mentre adoro la semplicità dell'operatore?:, Provo a non usarlo nel codice di produzione perché molti i programmatori scoprono che rende più difficile leggere e comprendere. Per non parlare, questo codice si interromperà se larghezza massima viene modificato in un numero maggiore di 46. Ma è un esempio di un metodo abbastanza compatto e logico per ottenere il risultato desiderato. Puoi fare di meglio? Segnala di nuovo nel nostro forum.

/*
 * diamonds.java
 *
 * Creato il 4 giugno 2007, alle 23:39
 */

/**
 *
 * @author Julie Baumler
 */
diamanti di classe pubblica {

/ ** Crea una nuova istanza di diamanti * /
diamanti pubblici () {
}

/**
* @param sostiene gli argomenti della riga di comando
*/
public static void main (String [] args) {
int max_width = 9; // Numero di caratteri larghi per fare il diamante
int width = max_width% 2 == 0? max_width / 2: max_width / 2 +1;
Stelle stringa = "************************************************ ";
Spazi stringa = "";
per (int i = 1; i <(larghezza * 2); i ++) {
System.out.print (spaces.substring (0, (i System.out.println (stars.substring (0,2 * (i <= larghezza? I: larghezza- (i% larghezza)) - 1));
}

}

}

La richiesta originale:
Pinimo. "Aiutami con java (sic)." Pubblicazione online. Settimana del 13 maggio 2007. Discussione Java (Forum). 4 giugno 2007.

Istruzioni Video: LA MAPPA PIÙ BELLA DI MINECRAFT + DOWNLOAD (Potrebbe 2024).