2D位图在不正确的位置中充满了对象[作业]



对于家庭作业,我必须构建一个10x10"位图",该"位图"将打印出作为自己类别的房屋的简单图像。构造函数需要一个 int[]填充每个点的坐标,以使值 1 , 1 , 1 , 2等于坐标点(1,1(和(1,2(

但是,当我尝试打印阵列时,我对正在发生的事情感到困惑。我的某些观点位于错误的位置,有些是缺少的,但是大多数位于正确的位置。被填充和打印后,位图看起来像

---------                      ----------
-o-oo----                      -o-o------
-oo--o---                      -oo-o-----
-o----o--                      -o---o----
oo----oo-                      oo----o---
-o-o--o--   but my result is   -o-o---o--
-o-o--o--                      -o-o--o---
-o-o--o--                      -o-o--o---
-oooooo--                      -oooooo---
---------                      ----------

以下是我的构造函数...

String image[][] = new String[10][10];
Bitmap(int a[]) {
    //CONSTRUCTOR
    for (int i = 0; i < 10; i++) { //set all to '-'
      for (int j = 0; j < 10; j++) {
        image[i][j] = "-";
      }
    }
    int c = 0; // because it takes too long to type out a proper for loop
    for (int i : a) { //read data and plot points
      if(c % 2 == 1)  temp2 = a[c];
      else temp1 = a[c];

      if(c % 2 == 0 && c != 0)
        image[temp1][temp2] = "o";
      c++;
    }
  }

这是我的观点。

int points[] = { 1, 1, 1, 3, 1, 4, 2, 1, 2, 2, 2, 5, 3, 1, 3, 6, 4, 0, 4, 1, 4, 6, 4, 7, 5,
                 1, 5, 3, 5, 6, 6, 1, 6, 3, 6, 6, 7, 1, 7, 3, 7, 6, 8, 1, 8, 2, 8, 3, 8, 4, 
                 8, 5, 8, 6

转化为:

(1,1) (1,3) (1,4) (2,1) (2,2) (2,5) (3,1) (3,6) (4,0) (4,1) (4,6) (4,7) (5,1) (5,3) (5,6)
(6,1) (6,3) (6,6) (7,1) (7,3) (7,6) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6)

我的结果,另一方面,将其打印为

(1,1) (1,3) ( , ) (2,1) (2,2) (2,4) (3,1) (3,5) (4,0) (4,1) (4,6) ( , ) (5,1) (5,3) (5,7)
(6,1) (6,3) (6,6) (7,1) (7,3) (7,6) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6)

我无法说出我在做什么错,也不知道从哪里开始。如果我能得到一些指针或对我的代码中的缺陷发表评论,那就太好了。

首先,我建议命名您的变量,也许是int xint y。而且我想知道为什么当c % 2 == 0不应该测试(c % 2 != 0)时,您为什么将位图点设置为o? - SchokokuchenBäcker

SchokokuchenBäcker的这一评论解决了这个问题。

在上面的循环中,线if(c % 2 == 0 && c != 0)开始在>第三迭代中设置[temp1][temp2] = "o",而不是 second 迭代,这导致一个点被排除在非常排除代码的开始。

最新更新