在控制台上绘制一个圣诞树,使用java.util.Scanner输入大小,询问空格的位置

我一直在尝试使用用户输入的大小绘制圣诞树(打印到控制台)。

我也一直在试图找出逻辑,比如空间会占用。对我来说,任何一个都会很棒。此外,此实验室只需要一个循环,并且必须调用我在下面提供的方法写入模式。非常感谢。hintfor

抱歉,如果代码太长。这只是为了确保你们能够理解它。

以下是我应该使用输入4显示的输出:

http://img1.mukewang.com/631861340001991520611283.jpg

for (int i=0; i <=size; i++) {

        writePattern (' ','*',' ', ' ',' ',size -i,i,0,0,0,size+2);

        writePattern (' ','*','*',' ',' ',size -i,i,i,0,0,size+2);

    }

这就是我上面提到的wrirePattern。


private void writePattern(char ch1, char ch2, char ch3, char ch4, char ch5, int n1, int n2, int n3, int n4, int n5, int length)  

{


while ((n1 > 0) && (length > 0)) {

    System.out.print(ch1);

    n1--;

    length--;

     }


 while ((n2 > 0) && (length > 0)) {

    System.out.print(ch2);

    n2--;

    length--;

 }


 while ((n3 > 0) && (length > 0)) {

    System.out.print(ch3);

    n3--;

    length--;

 }


 while ((n4 > 0) && (length > 0)) {

    System.out.print(ch4);

    n4--;

    length--;

 }


 while ((n5 > 0) && (length > 0)) {

    System.out.print(ch5);

    n5--;

    length--;

}


System.out.println();   

}

这是来自另一个用于提供输出的类:


drawer.drawXmasTree();

            System.out.println("\n");;


萧十郎
浏览 76回答 1
1回答

慕莱坞森

输出有&nbsp;2&nbsp;个部分。有树的(顶部),用? 字符。leavestrunknewline叶:从顶部开始,您会注意到第一个星号之前有空格。上面的行将有 ,然后是下一行,依此类推,直到空格数变为 。sizesize-1size-20但是,此模式是不完整的。它只会给你每行的第一个星号。请注意(再次从顶部开始)第一个星号后面有 0 个空格,第二个星号后面有 1 个空格(没有第二个星号),依此类推,直到最后一行。使用此模式和叶子可能是一个简单/容易(希望)的任务。树干:每个星号后面没有空格。从顶部开始,它打印出空格,然后打印出包含星号的行。然后它打印出空格,紧接着,每个星号行。size-111size-223这种模式继续,每次空格数减少时,用这种宽度打印的行数增加(两个方向多一个宽度),并且那里的行数增加一倍。121如果我犯了错误,请纠正我。这个答案纯粹是关于如何打印它的逻辑;这当然需要翻译成适当的代码才能运行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java