2016-02-05 2 views
3

В качестве класса мы создавали шашки в затмении. Я придумал этот код, но вместо того, чтобы отображать шашки, у него есть только три белых ящика, а остальные черные. вот мой код:Шашки в Java

import acm.program.*; 
import acm.graphics.*; 
import java.awt.*; 

public class checkgame extends GraphicsProgram 
{ 
    private static final int ROWS = 8; 

    private static final int COLUMS = 8; 

    public void run() 
    { 
     int sqSize = getHeight()/ROWS; 
     for (int i = 0; i<ROWS; i++) 
     { 
      for (int j = 0; j<COLUMS; j++) 
      { 
       int x = j*sqSize; 
       int y = i*sqSize; 
       GRect sq = new GRect (x,y,sqSize,sqSize); 
       sq.setFilled(((i+j)/2)!=0); 
       add(sq); 
      } 
     } 
    } 
} 

Любые идеи, где я пошло не так? Спасибо!

+1

Просто догадайтесь, но измените свой setFilled ((i + j)% 2! = 0) – getbuckts

ответ

1

Вместо

((i+j)/2)!=0 

вы хотите использовать

((i+j)%2)!=0 

Ваше исходное выражение ровно в три раза верно (0,0/0,1/1,0), поэтому вам см. три белых ящика. Исправленная версия зависит от того, является ли (i + j)/2 нечетным или четным - в таких случаях по модулю используется общий оператор.

+0

он сработал! большое спасибо – Alex

Смежные вопросы