java - 我正在尝试用 java 制作一个沙漏作为 ASCII 艺术,其高度由我可以更改的变量控制

标签 java

我的代码如下所示:

public class HourGlass{
public static final int x = 5;
   public static void wall(){
   System.out.println("|\"\"\"\"\"\"\"\"\"|");
   }
   public static void top(){
   for (int i = 1;i<=x;i++){
     for (int j =1; j<=i; j++){
     System.out.print(" ");
     }
     System.out.print("\\");
     for (int k = 1; k <= 9-2*i ;k++){
     System.out.print(":");
     }
     System.out.print("/\n");
   }
}

public static void bottom(){
  for (int i = 1;i <= x; i++){
     for (int j = 1; j<= 5-i; j++){
        System.out.print(" ");
        }
     System.out.print("/");
     for (int k = 1; k <= 2*i-1; k++){
     System.out.print(":");
     }
     System.out.print("\\\n");
     }
}

 public static void main(String[] args){
wall();
top();
bottom();
wall();
}
}

我明白了:

|"""""""""|
 \:::::::/
  \:::::/
   \:::/
    \:/
     \/
    /:\
   /:::\
  /:::::\
 /:::::::\
/:::::::::\
|"""""""""|

我将如何解决这个问题并制作底部和顶部比例?我试图找出如何解决这个问题,但我很困惑,没有找到任何东西。

最佳答案

这段代码可以变得不那么严格,但是,这不是你的问题。为了使顶部和底部匹配,您需要忽略不出现冒号的顶行。

我将你的 x 变量更改为大写的 X,因为它是一个常量,并对你的 top() 和 wall() 代码进行了几周的修改。

public static final int X = 5;

public static void wall() {
    System.out.println("|\"\"\"\"\"\"\"\"\"\"\"|");
}

public static void top() {
    for (int i = 1; i <= X + 1; i++) {
        for (int j = 1; j <= i; j++) {
            System.out.print(" ");
        }
        System.out.print("\\");
        for (int k = 1; k <= 9 - 2 * (i - 1); k++) {
            System.out.print(":");
        }
        System.out.print("/\n");
    }
}

希望这有帮助

关于java - 我正在尝试用 java 制作一个沙漏作为 ASCII 艺术,其高度由我可以更改的变量控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712024/

相关文章:

java - java中如何修剪运行时变量的空格?

java - Java 9 也适用于 WAR 文件吗?

java - Spring忽略application.properties中的Mongo设置

java - 为什么我会收到并发修改错误?

Java 捕获带有颜色的过程输出

java - 关于tomcat和jmx的问题

java - 通过使用 'this' 关键字转换类来调用重载方法

java - Spring mvc 无法在表单中使用 post 方法

java - 在 Java/Jython 中更改 BorderLayout 的大小

java - Axon:Eventsourced 聚合无状态更改事件