import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.stage.Stage;
import javafx.scene.paint.Color;

public class Othello extends Application {
    private final int scale = 40;
    private final int space = 3;

    public void start(Stage stage) {
        stage.setTitle("IZ");

        final Canvas canvas = new Canvas(scale * 8 + 1, scale * 8 + 1);
        GraphicsContext gc = canvas.getGraphicsContext2D();

        int[][] state = {{0,1,2,0,1,2,0,1}, {2,0,1,2,0,1,2,0}, {1,2,0,1,2,0,1,2},
                {0,1,2,0,1,2,0,1}, {2,0,1,2,0,1,2,0}, {1,2,0,1,2,0,1,2},
                {0,1,2,0,1,2,0,1}, {2,0,1,2,0,1,2,0}};
        int i,j;

        for (i = 0; i < 8; i++) {
            for (j = 0; j < 8; j++) {
                gc.setFill(Color.GREEN);
                gc.fillRect(i * scale, j * scale, scale, scale);
                gc.setStroke(Color.BLACK);
                gc.strokeRect(i * scale, j * scale, scale, scale);
                if (state[i][j] == 1) {
                    gc.setFill(Color.WHITE);
                    gc.fillOval(i * scale + space, j * scale + space, scale - space * 2, scale - space * 2);
                } else if (state[i][j] == 2) {
                    gc.setFill(Color.BLACK);
                    gc.fillOval(i * scale + space, j * scale + space, scale - space * 2, scale - space * 2);
                }
            }
        }

        Group root = new Group();
        root.getChildren().addAll(canvas);
        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String... args) {
        launch(args);
    }
}
