Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.awt.geom.*;
- import javax.swing.*;
- public class Difficult extends Canvas{
- protected static int[] buffer;
- protected static final int width = 70;
- protected static final int height = 70;
- public Difficult() {
- setSize(700,725);
- setBackground(Color.white);
- setForeground(Color.black);
- do_spiral();
- }
- private void draw_line(int x, int y, int xx, int yy) {
- for(int sy = y; sy <= yy; sy++) {
- for(int sx = x; sx <= xx; sx++) {
- buffer[sy * height + sx] = 1;
- }
- }
- }
- private void do_spiral() {
- int speed = 1;
- int x = width / 2;
- int y = height / 2;
- buffer = new int[width*height];
- for(int i = 0; i < height-4; i++) {
- int dir = i % 4;
- switch(dir) {
- // up
- case 0:
- draw_line(x, y-speed, x, y);
- y -= speed;
- break;
- // left
- case 1:
- speed += 2;
- draw_line(x-speed, y, x, y);
- x -= speed;
- break;
- // down
- case 2:
- draw_line(x, y, x, y+speed);
- y += speed;
- break;
- // right
- case 3:
- speed += 2;
- draw_line(x, y, x+speed, y);
- x += speed;
- break;
- }
- }
- }
- public void paint(Graphics g) {
- for(int sy = 0; sy < height; sy++) {
- for(int sx = 0; sx < width; sx++) {
- if (buffer[sy*height+sx] == 1)
- g.fillRect(sx*10, sy*10, 10, 10);
- }
- }
- }
- public static void main(String [] args) {
- Difficult d = new Difficult();
- Difficult dtwo = new Difficult();
- JFrame f = new JFrame("Challenge #18");
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- f.setSize(700,725);
- f.add(d);
- f.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement