2012-04-25 3 views
0

마침내 주판에서 카운터를 그릴 때 제목에 Java 코드에 문제가 있습니다. 코드가 컴파일되고 실행되지만 카운터는 맨 위 행 대신 첫 번째 행에서 시작하여 그려집니다. 이 카운터 위에는 카운터가 각 열에 쌓이지 않고 하나의 카운터가 나타나고 올바른 단추를 눌렀을 때 열이 위아래로 이동하지만 카운터는 오른쪽 클릭으로 클릭하거나 빼기로 추가해야합니다.Java Abacus, for 루프가 내 카운터를 그리는 데 문제가 있습니다.

나는 이것에 대해 두 시간을 보냈다. 나는 어리석은 것이지만 내 뇌는 작동을 멈췄다. 나는 어떤 해결책을 생각하지 않는다.

어쨌든, 여기 내 코드입니다.

AbacusPanel.java

public void paint(Graphics g) 
{ 
    g.setColor(Color.gray); 
    g.fillRect(0,0,getWidth(), getHeight()); 
    g.setColor(Color.black); 

    Graphics2D g2 = (Graphics2D)g; 
    // we'll use Graphics2D for it's "draw" method - 
    // neater than the Graphics "drawRect" suppled 
    // (which you could also use) 

    for (int i = 0;i<numCols;i++) 
    { 
     for(int j = 0;j<numRows;j++) 
     { 
      g2.draw(getRect(i,j)); 
     } 
    } 

    for(int thisCol= 0; thisCol < numCols; thisCol++) 
    { 
     for(int thisRow = 0; thisRow < numRows; thisRow++) 
     { 
      for(int counters=0; counters<=myAbacus.getNumCounters(thisCol); counters++) 
      { 
       Rectangle r2 = getRect(thisCol,myAbacus.getNumCounters(thisCol)); 
       g2.setColor(Color.red); 
       g2.fillOval(r2.x, r2.y, r2.width, r2.height); 
      } 
     } 
    } 

} 

이의 당신이 원하는 방법 포맷되지 않은 경우 잘하면 거기에 누군가가 올바른 방향으로 날 지점 미안 수 있습니다. 이것은 내 첫 번째 질문 게시물이며 나는 눈을 쉽게 만들려고 노력했다. 내 의견으로 당

+0

각 상자에 새로운 사각형을 그리는 것이 아니라 일련의 가로 및 세로 선으로 그리드를 그리는 것이 더 쉬울 것입니다. – Tharwen

+1

그건 너무 많이 StackOverflow 코드입니다. 정확히 무엇이 잘못되었는지, 예상 한 것과 몇 줄의 코드를 제공해야합니다. 오류 코드와 직접 관련이있는 코드를 사용하는 것이 좋습니다. – MarioDS

+1

또한 왜 main() 함수가 두 개입니까? – Tharwen

답변

1

: 당신은 돌의 자리를 그릴 때

, 당신은 열 다음 행을 반복. 그러나 카운터를 그릴 때 행만 반복하고 행은 반복하지 않습니다. 왜 행도 없습니까? 그리고 getNumCounters()의 결과가 맨틀 보드의 위치 당 카운터 수를 얻으려고하기 때문에 두 열 모두 & 행을 입력으로 사용해서는 안됩니까?

두 번째 질문에 대한 대답으로, 나는 getNumCounters()이 입력으로 행과 열을 모두 가져야한다고 생각합니다. mancala 보드에 두 개의 행이 있고 돌의 수는 열과 첫 번째 또는 두 번째 행에 있는지 여부에 따라 다르므로 그렇지 않으면 의미가 없습니다.

또한 세 번째 사항에 대해 생각해보십시오. 직사각형에서 카운터를 그릴 때 직책을 변경해야 할 것 같습니다. 각 카운터가 서로 위에 쌓여있는 것처럼 보입니다. 따라서 20 개의 카운터는 아무 것도 보지 않습니다.

+0

대단히 고맙습니다. 답변을 읽은 후 거의 다 왔어요. –

관련 문제