【问题标题】:Creating a checkerboard in Java using a while loop [closed]使用while循环在Java中创建棋盘[关闭]
【发布时间】:2013-04-17 14:32:49
【问题描述】:

目标是使用以下模式创建一个 ASCII 棋盘:

+--+
|  |
+--+

我在 Java 中使用以下代码创建了一个带有 n 个盒子的板,但问题是当我传递 n 个参数时,生成的盒子像一条线一样垂直堆叠:

+--+
|  |
+--+
+--+
|  |
+--+

我希望这些框可以跨行迭代,这样它就形成了一个类似棋盘格的图案 这个:

+--+--+
|  |  |
+--+--+
|  |  |
+--+--+

Java 代码是:

public class Checkerboard {
public static void main(String[] args) {
    int x = Integer.parseInt(args[0]);
    printBoard(x);
}


public static void printBox(int numOfBoxes) {

    int i = 0;
    while(i < numOfBoxes)
    i++;    
     System.out.print("+--+");
     System.out.println("|  |");
     System.out.println("+--+");
}

}

任何意见将不胜感激。提前致谢!

【问题讨论】:

  • 您的问题是什么?这对你来说可能很明显,但对其他人来说不太明显。
  • 也许你应该让用户输入两个数字,一个高度和一个宽度,这样你就知道如何绘制框了?
  • 嗯,我想知道如何修改循环中的代码,这样我就可以让它们跨行迭代,而不是垂直堆叠。
  • 这将是一个实质性的修改。您必须生成字符串,然后打印它们。您当前的问题是打印一个框使用 println,这意味着您已经移动到下一行。
  • 我投了反对票,因为我没有看到任何证据表明您实际上试图自己解决问题。感觉有点像我们被要求解决你的作业:-)

标签: java loops


【解决方案1】:

你可以沿着这个伪代码构建一些东西:

for y=0 to 3 * ysize
   for x=0 to 3 * xsize
      if x even and y even
        print +
      if x even and y odd
        print |
      if x odd  and y even
        print --
      if x odd  and y odd
        print space space

我认为单个 while 循环无法满足您的需求。

如果您以后想在棋盘上放棋子,最好将棋盘保存到 StringBuffer 并“渲染”到屏幕上;)

【讨论】:

  • 嗯,这很有意义。是的,我意识到我需要使用多个循环。非常感谢^_^
猜你喜欢
  • 2015-05-23
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-27
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多