Ma mission est d'imprimer un mot sous la forme d'un diamant comme ceci:Impression d'un mot dans un format diamant
*****s
****p*p
***i***i
**d*****d
*e*******e
r*********r
*e*******e
**d*****d
***i***i
****p*p
*****s
post-scriptum Les astérisques ne sont là que pour montrer l'espacement, prétendre qu'un astérisque représente un espace.
Jusqu'à présent, j'ai ceci:
public class DiamondWords
{
public static void main(String[] args)
{
Scanner kbReader = new Scanner(System.in);
System.out.print("Enter a word to be printed in diamond format: ");
String word = kbReader.nextLine();
int wordLength = word.length();
for(int i = 0; i<wordLength-1; i++)
{
System.out.print(" ");
}
wordLength = wordLength - 1;
System.out.print(word.charAt(0));
System.out.println();
int x =1;
int d =1;
for(int j =wordLength; j>0; j--)
{
wordLength = j;
for(int a =1; a<wordLength; a++)
{
System.out.print(" ");
}
System.out.print(word.charAt(x));
for(int q =0; q<d; q++)
{
System.out.print(" ");
}
d+=2;
System.out.print(word.charAt(x));
x++;
System.out.println();
}
//r*********r
//*e*******e
//**d*****d
//***i***i
//****p*p
//*****s
}
}
qui imprime la première moitié du diamant parfaitement:
*****s
****p*p
***i***i
**d*****d
*e*******e
r*********r
La seule partie où je suis rester coincé est quand je dois imprimer la dernière moitié du diamant. Est-ce que quelqu'un peut-il me montrer la bonne direction? S'il vous plaît ne pas écrire le code pour moi, essayez simplement de me donner quelques pointeurs basés sur la logique que j'ai montrée. Je vous remercie.
bien si vous avez trouvé la moitié supérieure, alors écrivez une autre pour la boucle mais inversez la logique –
et chaque moitié devra écrire la ligne exactement de la même manière, de sorte que le code est un bon candidat à scinder en un méthode séparée qui peut être appelée dans la boucle supérieure et inférieure. – slipperyseal
@ScaryWombat Le seul problème est que je n'arrive pas à comprendre comment inverser la logique. C'est frustrant moi – jpsizzls