2017-04-17 2 views
1

숙제를 위해 자체 클래스로 구축 된 간단한 이미지를 인쇄 할 10x10 "비트 맵"을 만들어야합니다. 생성자는 int[]이 값 1 , 1 , 1 , 2이 좌표 점 (1,1) 및 2 차원 비트 맵이 잘못된 위치에있는 개체로 채워짐 [숙제]

(1,2)

에 상응되는 방식으로, 각각의 점의 좌표를 가득하지만 것과 같이 배플하고 필요 배열을 인쇄하려고 할 때 일어납니다. 내 포인트 중 일부는 잘못된 지점에 있으며 일부는 누락되었지만 대다수는 올바른 위치에 있습니다. 인구 및 인쇄 후, 비트 맵은

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++; 
    } 
    } 

여기 내 지점입니다 ... 다음

---------      ---------- 
-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--- 
---------      ---------- 

내 생성자가 다워야한다.

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) (,) (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) 

같은 다른 한편으로는,

(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) 

내 결과, 인쇄 어디서부터 시작해야할지 알고 있습니다. 내 코드의 결함에 대해 몇 가지 포인터 나 의견을 얻을 수 있다면 좋을 것입니다.

+0

우선 변수 이름을 'int x'와'int y'로 지정하는 것이 좋습니다. 그리고 왜'c % 2 == 0'이'if (c % 2! = 0)'을 테스트 할 때 Bitmap-point를'o'로 설정하는지 궁금합니다. –

+0

@ SchokokuchenBäcker 감사합니다. 귀하의 제안을 읽은 후에, 나는 다시 코드를 추적하고 귀하의 대답이 정확한지 깨달았습니다. 'c % 2 == 0 && c! = 0'을 테스트했다면 _second_ 반복 대신 _third_ 반복에서'o'를 출력하기 시작할 것입니다. 두 번째 반복은 처음으로 전체 집합이 만들어지고 세 번째 반복은 전체 집합이 만들어진 후 하나의 숫자가됩니다. 이렇게하면'if! '문에서'c! = 0'을 제외시킬 수도 있습니다. –

답변

0

먼저 변수 이름을 지정하는 것이 좋습니다 (int xint y). 그리고 왜 일 경우 c % 2 == 0 테스트를하지 말아야하는지 비트 맵 포인트를 o으로 설정하는 이유가 궁금합니다. -Schokokuchen Bäcker

이 의견은 Schokokuchen Bäcker에 의해 해결되었습니다. 상기 루프

는 라인 if(c % 2 == 0 && c != 0) 한 포인트 코드의 시작에서 제외되는 것을 초래 반복보다는 반복에 [temp1][temp2] = "o"을 설정하기 시작한다.