如何解决在java图形JFrame中使用for循环反转“楼梯”
我有下面的代码,它在 java 中用 for 循环制作了一个楼梯:
for (int i = 0; i < 10; i++) {
g.drawRect(5,5 + 10 * i,10 + 10 * i,10);
}
但我想要同样的东西,但是倒过来,倒过来,倒过来,如下图:
关于实现这一目标的最佳方法有什么想法吗?
解决方法
您可以将楼梯表示为位于其某些角落的 0
和 1
二维数组。然后你可以迭代这个数组,并为每个数字打印一个填充或空心方块。
例如,一个在右下角带有楼梯的二维数组:
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 举报,一经查实,本站将立刻删除。