Sunday, 20 May 2012

Legolab, code, PCDraw

import java.awt.*;
import java.util.ArrayList;

import javax.swing.*;

public class PCDraw extends JPanel{

    private ChainCalculator c;
    private int scale = 5;
    public PCDraw(){
   super();
     c = new ChainCalculator();
      c.calculateChains();
      c.removeSingleEntryChains();
 }

    public void paintComponent(Graphics g){
      
      ArrayList<ArrayList<Integer>> chainArray = c.getChainArray();
      int red = 0;
      int green = 0;
      int blue = 0;
      
      
      for (int i = 0; i < chainArray.size(); i++) {
          int[] lastPos = {chainArray.get(i).get(0),chainArray.get(i).get(1)};
          int[] nextPos = {chainArray.get(i).get(0),chainArray.get(i).get(1)};
          
          red = (i*45)%250;
          green = (i*45)%250;
          blue = (i*45)%250;
          g.setColor(new Color(100,100,100,250));
          for (int j = 3; j < chainArray.get(i).size(); j++) {
              
              if (chainArray.get(i).get(j) == 1) {
                  nextPos[0] += -1;
                  nextPos[1] += -1;      
              }
              
              else if (chainArray.get(i).get(j) == 2) {
                  nextPos[0] += 0;  
                  nextPos[1] += -1;  
              }
              
              else if (chainArray.get(i).get(j) == 3) {
                  nextPos[0] += 1;  
                  nextPos[1] += -1;       
              }
              
              else if (chainArray.get(i).get(j) == 4) {
                  nextPos[0] += -1;  
                  nextPos[1] += 0;      
              }
              
              else if (chainArray.get(i).get(j) == 5) {
                  nextPos[0] += 1;
                  nextPos[1] += 0;       
              }
              
              else if (chainArray.get(i).get(j) == 6) {
                  nextPos[0] += -1;
                  nextPos[1] += 1;       
              }
              else if (chainArray.get(i).get(j) == 7) {
                  nextPos[0] += 0;  
                  nextPos[1] += 1;      
              }
              
              else if (chainArray.get(i).get(j) == 8) {
                  nextPos[0] += 1;  
                  nextPos[1] += 1;      
              }
              
              System.out.println(""+ lastPos[0]*scale +" " + lastPos[1]*scale +" "+ nextPos[0]*scale +" "+ nextPos[1]*scale);
              g.drawLine(lastPos[0]*scale, lastPos[1]*scale, nextPos[0]*scale, nextPos[1]*scale);
              
              lastPos[0] = nextPos[0];
              lastPos[1] = nextPos[1];
          }
      }
 }

 public static void main(String arg[]){
      JFrame frame = new JFrame("BasicJPanel");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(400,400);
      PCDraw panel = new PCDraw();
      frame.setContentPane(panel);
      frame.setVisible(true);
 }
}

No comments:

Post a Comment