boxes (NXJ-Project)

Post your NXJ projects, project ideas, etc here!

Moderators: 99jonathan, roger, imaqine

boxes (NXJ-Project)

Postby rubberduck » Fri Oct 18, 2013 6:22 am

this is my first real project
(it is a small one, nothing special)
Code: Select all
package boxes;

import lejos.nxt.Button;
import lejos.nxt.LCD;

class addBoxes
{
   int startx;
   int endx;
   int starty;
   int endy;
   int sizex;
   int sizey;
   int posx;
   int posy;
   

   addBoxes()
   {
      
   }
   
   void test()
   {
      LCD.setPixel(9, 9,1);
   }
   
   
   public void invertBox(int sx, int ex, int sy, int ey)
   {
   startx = sx;
   endx = ex;
   starty = sy;
   endy = ey;
   int px = startx + posx;
   int py = starty + posy;

   sizex = endx - startx;
   sizey = endy - starty;
   
   
   if (startx < endx && starty < endy)
      {
      
      for (int i = sizex; i > 0; i = i - 1)
         {
         
         px = px + 1;

         
         for (int j = sizey; j > 0; j = j - 1)
            {
// --         
            if (LCD.getPixel(px, py) == 1)
            {
               LCD.setPixel(px, py,0);
            }
            
            else
            {
               LCD.setPixel(px, py,1);   
            }
            


// --            
            py = py + 1;
            if (j == 1)
               {
               py = starty;
               }
            }

         }   
      }
   }
   
   public void addBox(int sx, int ex, int sy, int ey)
   {
   startx = sx;
   endx = ex;
   starty = sy;
   endy = ey;
   int px = startx + posx;
   int py = starty + posy;

   sizex = endx - startx;
   sizey = endy - starty;
   
   
   if (startx < endx && starty < endy)
      {
      
      for (int i = sizex; i > 0; i = i - 1)
         {
         
         px = px + 1;

         
         for (int j = sizey; j > 0; j = j - 1)
            {
            LCD.setPixel(px, py,1);

            
            py = py + 1;
            if (j == 1)
               {
               py = starty;
               }
            }

         }   
      }
   }
   
   public void deleteBox(int sx, int ex, int sy, int ey)
   {
   startx = sx;
   endx = ex;
   starty = sy;
   endy = ey;
   int px = startx + posx;
   int py = starty + posy;

   sizex = endx - startx;
   sizey = endy - starty;
   
   
   if (startx < endx && starty < endy)
      {
      
      for (int i = sizex; i > 0; i = i - 1)
         {
         
         px = px + 1;

         
         for (int j = sizey; j > 0; j = j - 1)
            {
            LCD.setPixel(px, py,0);

            
            py = py + 1;
            if (j == 1)
               {
               py = starty;
               }
            }

         }   
      }
   }
}




 
public class boxes
{
   
   
   

   
   public static void main(String[] args)
   
   {

      {
         Button.waitForAnyPress();
         addBoxes box1 = new addBoxes();
         box1.addBox(12, 33, 18, 56);
         Button.waitForAnyPress();
         box1.invertBox(14, 45, 33, 39);
         Button.waitForAnyPress();
         box1.invertBox(19, 55, 7, 26);
         Button.waitForAnyPress();
         box1.invertBox(24, 76, 11, 45);
         Button.waitForAnyPress();
         box1.addBox(28, 72, 15, 49);
         Button.waitForAnyPress();
         box1.deleteBox(2, 99, 29, 37);
         Button.waitForAnyPress();
         box1.invertBox(7, 45, 12, 25);
         Button.waitForAnyPress();
         box1.addBox(40, 49, 22, 38);
         Button.waitForAnyPress();
         
         
         

         LCD.clear();
         Button.waitForAnyPress();
      }
   }
}


sorry, but at the moment i have no comments.
have you tips and tricks how to make this good

this programm prints boxes on the screen of the nxt.
you can use box1.addBox(x1, x2, y1, y2); to add a box somewhere on the screen
you also can delete a box (all pixels are white)
and you can invert it.

i added a package called "boxes" and i called the file boxes.java.
rubberduck
New User
 
Posts: 17
Joined: Sun Aug 18, 2013 12:22 pm

Re: boxes (NXJ-Project)

Postby rubberduck » Sat Oct 19, 2013 4:57 pm

i have a new one, it has an extra feature


Code: Select all
package boxes;

import lejos.nxt.Button;
import lejos.nxt.LCD;

class addBoxes
{
   int startx;
   int endx;
   int starty;
   int endy;
   int sizex;
   int sizey;
   int posx;
   int posy;
   

   addBoxes()
   {
      
   }
   
   void test()
   {
      LCD.setPixel(9, 9,1);
   }
   
   
   public void invertBox(int sx, int ex, int sy, int ey)
   {
   startx = sx;
   endx = ex;
   starty = sy;
   endy = ey;
   int px = startx + posx;
   int py = starty + posy;

   sizex = endx - startx;
   sizey = endy - starty;
   
   
   if (startx < endx && starty < endy)
      {
      
      for (int i = sizex; i > 0; i = i - 1)
         {
         
         px = px + 1;

         
         for (int j = sizey; j > 0; j = j - 1)
            {
         
            if (LCD.getPixel(px, py) == 1)
            {
               LCD.setPixel(px, py,0);
            }
            
            else
            {
               LCD.setPixel(px, py,1);   
            }
            


         
            py = py + 1;
            if (j == 1)
               {
               py = starty;
               }
            }

         }   
      }
   }
   
   public void addBox(int sx, int ex, int sy, int ey)
   {
   startx = sx;
   endx = ex;
   starty = sy;
   endy = ey;
   int px = startx + posx;
   int py = starty + posy;

   sizex = endx - startx;
   sizey = endy - starty;
   
   
   if (startx < endx && starty < endy)
      {
      
      for (int i = sizex; i > 0; i = i - 1)
         {
         
         px = px + 1;

         
         for (int j = sizey; j > 0; j = j - 1)
            {
            LCD.setPixel(px, py,1);

            
            py = py + 1;
            if (j == 1)
               {
               py = starty;
               }
            }

         }   
      }
   }
   
   
   public void deleteBox(int sx, int ex, int sy, int ey)
   {
   startx = sx;
   endx = ex;
   starty = sy;
   endy = ey;
   int px = startx + posx;
   int py = starty + posy;

   sizex = endx - startx;
   sizey = endy - starty;
   
   
   if (startx < endx && starty < endy)
      {
      
      for (int i = sizex; i > 0; i = i - 1)
         {
         
         px = px + 1;

         
         for (int j = sizey; j > 0; j = j - 1)
            {
            LCD.setPixel(px, py,0);

            
            py = py + 1;
            if (j == 1)
               {
               py = starty;
               }
            }

         }   
      }
   }
   
   public void moreBoxes(int pox, int poy, int size)
   {

      int px;
      int py;
      boolean firstTime = true;
      
      
      for (int h = size; h > 0; h = h - 1)
         {
         startx = pox - size;
         endx = pox + size;
         starty = poy - size;
         endy = poy + size;
 
      
         px = startx + posx;
         py = starty + posy;
      

         sizex = endx - startx;
         sizey = endy - starty;   

         if (startx < endx && starty < endy)
         {
            for (int i = sizex; i > 0; i = i - 1)
            {
            
               px = px + 1;

      
               for (int j = sizey; j > 0; j = j - 1)
               {
               
                  if (firstTime == false)
                  {
                     if (LCD.getPixel(px, py) == 1)
                     {
                        LCD.setPixel(px, py,0);
                     }
                     
                     else
                     {
                        LCD.setPixel(px, py,1);   
                     }   
                  }
                  else
                  {            
                        LCD.setPixel(px, py,1);   
                  }
               

         
                  py = py + 1;
                  if (j == 1)
                  {
                  py = starty;
                  }
               }
            }
         
         }      
      firstTime = false;
      size = size -1;
      }
   
   }
}



 
public class boxes
{
   
   
   

   
   public static void main(String[] args)
   
   {

      {
         Button.waitForAnyPress();
         addBoxes box1 = new addBoxes();
         box1.moreBoxes(22, 12, 2);
         Button.waitForAnyPress();
         box1.moreBoxes(33, 20, 7);
         Button.waitForAnyPress();
         box1.moreBoxes(44, 28, 11);
         Button.waitForAnyPress();
         box1.moreBoxes(55, 36, 18);
         Button.waitForAnyPress();
         box1.invertBox(14, 45, 33, 39);
         Button.waitForAnyPress();
         box1.invertBox(19, 55, 7, 26);
         Button.waitForAnyPress();
         box1.invertBox(24, 76, 11, 45);
         Button.waitForAnyPress();
         box1.addBox(28, 72, 15, 49);
         Button.waitForAnyPress();
         box1.deleteBox(2, 99, 29, 37);
         Button.waitForAnyPress();
         box1.invertBox(7, 45, 12, 25);
         Button.waitForAnyPress();
         box1.addBox(40, 49, 22, 38);
         Button.waitForAnyPress();
         
         
         

         LCD.clear();
         Button.waitForAnyPress();
      }
   }
}
rubberduck
New User
 
Posts: 17
Joined: Sun Aug 18, 2013 12:22 pm


Return to NXJ Projects

Who is online

Users browsing this forum: No registered users and 1 guest

more stuff