微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在java图形JFrame中使用for循环反转“楼梯”

如何解决在java图形JFrame中使用for循环反转“楼梯”

我有下面的代码,它在 java 中用 for 循环制作了一个楼梯:

for (int i = 0; i < 10; i++) {
    g.drawRect(5,5 + 10 * i,10 + 10 * i,10);
}

但我想要同样的东西,但是倒过来,倒过来,倒过来,如下图:

enter image description here

关于实现这一目标的最佳方法有什么想法吗?

解决方法

您可以将楼梯表示为位于其某些角落的 01 二维数组。然后你可以迭代这个数组,并为每个数字打印一个填充空心方块。

例如,一个在右下角带有楼梯的二维数组:

int m = 5;
int[][] staircase = IntStream.range(0,m)
        .mapToObj(i -> IntStream.range(0,m)
                //.map(j -> i >= j ? 1 : 0) // lower left
                //.map(j -> i <= j ? 1 : 0) // upper right
                //.map(j -> i + j < m ? 1 : 0) // upper left
                .map(j -> i + j >= m - 1 ? 1 : 0) // lower right
                .toArray())
        .toArray(int[][]::new);
// output
Arrays.stream(staircase).map(Arrays::toString).forEach(System.out::println);
[0,1]
[0,1,1]
[1,1]

另见:Display squares of asterisks,filled and hollow,side by side

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。