diff --git a/.idea/modules.xml b/.idea/modules.xml
index 80946f5..2506f2c 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -6,10 +6,11 @@
+
-
+
\ No newline at end of file
diff --git a/ATM-Machine/src/Operator.java b/ATM-Machine/src/Operator.java
index 4ccd846..5a7750a 100644
--- a/ATM-Machine/src/Operator.java
+++ b/ATM-Machine/src/Operator.java
@@ -1,3 +1,5 @@
+package src;
+
import java.util.Scanner;
public class Operator {
diff --git a/DemoProjects/src/animation/swingTimer/Board.java b/DemoProjects/src/animation/swingTimer/Board.java
new file mode 100644
index 0000000..777bbb5
--- /dev/null
+++ b/DemoProjects/src/animation/swingTimer/Board.java
@@ -0,0 +1,79 @@
+package animation.swingTimer;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+import javax.swing.Timer;
+
+public class Board extends JPanel
+ implements ActionListener {
+
+ private final int B_WIDTH = 700;
+ private final int B_HEIGHT = 700;
+ private final int INITIAL_X = -40;
+ private final int INITIAL_Y = -40;
+ private final int DELAY = 5;
+
+ private Image star;
+ private Timer timer;
+ private int x, y;
+
+ public Board() {
+
+ initBoard();
+ }
+
+ private void loadImage() {
+
+ ImageIcon ii = new ImageIcon("/home/bitecoding/Pictures/star.png");
+ star = ii.getImage().getScaledInstance(50,50,Image.SCALE_DEFAULT);
+ }
+
+ private void initBoard() {
+
+ setBackground(Color.BLACK);
+ setPreferredSize(new Dimension(B_WIDTH, B_HEIGHT));
+
+ loadImage();
+
+ x = INITIAL_X;
+ y = INITIAL_Y;
+
+ timer = new Timer(DELAY, this);
+ timer.start();
+ }
+
+ @Override
+ public void paintComponent(Graphics g) {
+ super.paintComponent(g);
+
+ drawStar(g);
+ }
+
+ private void drawStar(Graphics g) {
+
+ g.drawImage(star, x, y, this);
+ Toolkit.getDefaultToolkit().sync();
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ x += 10;
+ y += 10;
+
+ if (y > B_HEIGHT) {
+
+ y = INITIAL_Y;
+ x = INITIAL_X;
+ }
+
+ repaint();
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/animation/swingTimer/SwingTimer.java b/DemoProjects/src/animation/swingTimer/SwingTimer.java
new file mode 100644
index 0000000..0e51007
--- /dev/null
+++ b/DemoProjects/src/animation/swingTimer/SwingTimer.java
@@ -0,0 +1,32 @@
+package animation.swingTimer;
+
+import java.awt.EventQueue;
+import javax.swing.JFrame;
+
+public class SwingTimer extends JFrame {
+
+ public SwingTimer() {
+
+ initUI();
+ }
+
+ private void initUI() {
+
+ add(new Board());
+
+ setResizable(false);
+ pack();
+
+ setTitle("Star");
+ setLocationRelativeTo(null);
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+ public static void main(String[] args) {
+
+ EventQueue.invokeLater(() -> {
+ SwingTimer ex = new SwingTimer();
+ ex.setVisible(true);
+ });
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/animation/thread/Board.java b/DemoProjects/src/animation/thread/Board.java
new file mode 100644
index 0000000..2b3a1cd
--- /dev/null
+++ b/DemoProjects/src/animation/thread/Board.java
@@ -0,0 +1,112 @@
+package animation.thread;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Toolkit;
+import javax.swing.ImageIcon;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+public class Board extends JPanel
+ implements Runnable {
+
+ private final int B_WIDTH = 350;
+ private final int B_HEIGHT = 350;
+ private final int INITIAL_X = -40;
+ private final int INITIAL_Y = -40;
+ private final int DELAY = 25;
+
+ private Image star;
+ private Thread animator;
+ private int x, y;
+
+ public Board() {
+
+ initBoard();
+ }
+
+ private void loadImage() {
+
+ ImageIcon ii = new ImageIcon("/home/bitecoding/Pictures/star.png");
+ star = ii.getImage().getScaledInstance(50,50, Image.SCALE_DEFAULT);
+ }
+
+ private void initBoard() {
+
+ setBackground(Color.BLACK);
+ setPreferredSize(new Dimension(B_WIDTH, B_HEIGHT));
+
+ loadImage();
+
+ x = INITIAL_X;
+ y = INITIAL_Y;
+ }
+
+ @Override
+ public void addNotify() {
+ super.addNotify();
+
+ animator = new Thread(this);
+ animator.start();
+ }
+
+ @Override
+ public void paintComponent(Graphics g) {
+ super.paintComponent(g);
+
+ drawStar(g);
+ }
+
+ private void drawStar(Graphics g) {
+
+ g.drawImage(star, x, y, this);
+ Toolkit.getDefaultToolkit().sync();
+ }
+
+ private void cycle() {
+
+ x += 1;
+ y += 1;
+
+ if (y > B_HEIGHT) {
+
+ y = INITIAL_Y;
+ x = INITIAL_X;
+ }
+ }
+
+ @Override
+ public void run() {
+
+ long beforeTime, timeDiff, sleep;
+
+ beforeTime = System.currentTimeMillis();
+
+ while (true) {
+
+ cycle();
+ repaint();
+
+ timeDiff = System.currentTimeMillis() - beforeTime;
+ sleep = DELAY - timeDiff;
+
+ if (sleep < 0) {
+ sleep = 2;
+ }
+
+ try {
+ Thread.sleep(sleep);
+ } catch (InterruptedException e) {
+
+ String msg = String.format("Thread interrupted: %s", e.getMessage());
+
+ JOptionPane.showMessageDialog(this, msg, "Error",
+ JOptionPane.ERROR_MESSAGE);
+ }
+
+ beforeTime = System.currentTimeMillis();
+ }
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/animation/thread/ThreadAnimation.java b/DemoProjects/src/animation/thread/ThreadAnimation.java
new file mode 100644
index 0000000..ed49049
--- /dev/null
+++ b/DemoProjects/src/animation/thread/ThreadAnimation.java
@@ -0,0 +1,32 @@
+package animation.thread;
+
+import java.awt.EventQueue;
+import javax.swing.JFrame;
+
+public class ThreadAnimation extends JFrame {
+
+ public ThreadAnimation() {
+
+ initUI();
+ }
+
+ private void initUI() {
+
+ add(new Board());
+
+ setResizable(false);
+ pack();
+
+ setTitle("Star");
+ setLocationRelativeTo(null);
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+ public static void main(String[] args) {
+
+ EventQueue.invokeLater(() -> {
+ JFrame ex = new ThreadAnimation();
+ ex.setVisible(true);
+ });
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/animation/utilityTimer/Board.java b/DemoProjects/src/animation/utilityTimer/Board.java
new file mode 100644
index 0000000..807bff1
--- /dev/null
+++ b/DemoProjects/src/animation/utilityTimer/Board.java
@@ -0,0 +1,81 @@
+package animation.utilityTimer;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Toolkit;
+import java.util.Timer;
+import java.util.TimerTask;
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+
+public class Board extends JPanel {
+
+ private final int B_WIDTH = 350;
+ private final int B_HEIGHT = 350;
+ private final int INITIAL_X = -40;
+ private final int INITIAL_Y = -40;
+ private final int INITIAL_DELAY = 0;
+ private final int PERIOD_INTERVAL = 25;
+
+ private Image star;
+ private Timer timer;
+ private int x, y;
+
+ public Board() {
+
+ initBoard();
+ }
+
+ private void loadImage() {
+
+ ImageIcon ii = new ImageIcon("/home/bitecoding/Pictures/star.png");
+ star = ii.getImage().getScaledInstance(50,50,Image.SCALE_DEFAULT);
+ }
+
+ private void initBoard() {
+
+ setBackground(Color.BLACK);
+ setPreferredSize(new Dimension(B_WIDTH, B_HEIGHT));
+
+ loadImage();
+
+ x = INITIAL_X;
+ y = INITIAL_Y;
+
+ timer = new Timer();
+ timer.scheduleAtFixedRate(new ScheduleTask(),
+ INITIAL_DELAY, PERIOD_INTERVAL);
+ }
+
+ @Override
+ public void paintComponent(Graphics g) {
+ super.paintComponent(g);
+
+ drawStar(g);
+ }
+
+ private void drawStar(Graphics g) {
+
+ g.drawImage(star, x, y, this);
+ Toolkit.getDefaultToolkit().sync();
+ }
+
+ private class ScheduleTask extends TimerTask {
+
+ @Override
+ public void run() {
+
+ x += 1;
+ y += 1;
+
+ if (y > B_HEIGHT) {
+ y = INITIAL_Y;
+ x = INITIAL_X;
+ }
+
+ repaint();
+ }
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/animation/utilityTimer/UtilityTimer.java b/DemoProjects/src/animation/utilityTimer/UtilityTimer.java
new file mode 100644
index 0000000..705ce67
--- /dev/null
+++ b/DemoProjects/src/animation/utilityTimer/UtilityTimer.java
@@ -0,0 +1,32 @@
+package animation.utilityTimer;
+
+import java.awt.EventQueue;
+import javax.swing.JFrame;
+
+public class UtilityTimer extends JFrame {
+
+ public UtilityTimer() {
+
+ initUI();
+ }
+
+ private void initUI() {
+
+ add(new Board());
+
+ setResizable(false);
+ pack();
+
+ setTitle("Star");
+ setLocationRelativeTo(null);
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+ public static void main(String[] args) {
+
+ EventQueue.invokeLater(() -> {
+ JFrame ex = new UtilityTimer();
+ ex.setVisible(true);
+ });
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/game/minitennis1/Game2.java b/DemoProjects/src/game/minitennis1/Game2.java
deleted file mode 100644
index fe6fd26..0000000
--- a/DemoProjects/src/game/minitennis1/Game2.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package minitennis1;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Ellipse2D;
-
-public class Game2 extends JPanel {
-
- @Override
- public void paint(Graphics g) {
- Graphics2D g2d = (Graphics2D) g;
- g2d.setColor(Color.RED);
- g2d.fillOval(0, 0, 30, 30);
- g2d.drawOval(0, 50, 30, 30);
- g2d.fillRect(50, 0, 30, 30);
- g2d.drawRect(50, 50, 30, 30);
-
- g2d.draw(new Ellipse2D.Double(0, 100, 30, 30));
- }
-
- public static void main(String[] args) {
- JFrame frame = new JFrame("Mini Tennis");
- frame.add(new Game2());
- frame.setSize(300, 300);
- frame.setVisible(true);
- frame.setLocationRelativeTo(null);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
- }
-}
\ No newline at end of file
diff --git a/DemoProjects/src/game/minitennis2/Game.java b/DemoProjects/src/game/minitennis2/Game.java
deleted file mode 100644
index e8f7b60..0000000
--- a/DemoProjects/src/game/minitennis2/Game.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package game.minitennis2;
-
-public class Game {
-}
diff --git a/DemoProjects/src/painting/SwingPaintDemo1.java b/DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo1.java
similarity index 94%
rename from DemoProjects/src/painting/SwingPaintDemo1.java
rename to DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo1.java
index 7a254ea..369044b 100644
--- a/DemoProjects/src/painting/SwingPaintDemo1.java
+++ b/DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo1.java
@@ -1,4 +1,4 @@
-package painting;
+package painting.SwingPaintDemo;
import javax.swing.SwingUtilities;
import javax.swing.JFrame;
diff --git a/DemoProjects/src/painting/SwingPaintDemo2.java b/DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo2.java
similarity index 97%
rename from DemoProjects/src/painting/SwingPaintDemo2.java
rename to DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo2.java
index 3b4dbd6..6efa0ef 100644
--- a/DemoProjects/src/painting/SwingPaintDemo2.java
+++ b/DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo2.java
@@ -1,4 +1,4 @@
-package painting;
+package painting.SwingPaintDemo;
import javax.swing.SwingUtilities;
import javax.swing.JFrame;
diff --git a/DemoProjects/src/painting/SwingPaintDemo3.java b/DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo3.java
similarity index 93%
rename from DemoProjects/src/painting/SwingPaintDemo3.java
rename to DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo3.java
index 82da620..6310645 100644
--- a/DemoProjects/src/painting/SwingPaintDemo3.java
+++ b/DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo3.java
@@ -1,4 +1,4 @@
-package painting;
+package painting.SwingPaintDemo;
import javax.swing.SwingUtilities;
import javax.swing.JFrame;
@@ -8,10 +8,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
import java.awt.event.MouseAdapter;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseMotionAdapter;
public class SwingPaintDemo3 {
diff --git a/DemoProjects/src/painting/SwingPaintDemo4.java b/DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo4.java
similarity index 99%
rename from DemoProjects/src/painting/SwingPaintDemo4.java
rename to DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo4.java
index f6dd572..cd0e140 100644
--- a/DemoProjects/src/painting/SwingPaintDemo4.java
+++ b/DemoProjects/src/painting/SwingPaintDemo/SwingPaintDemo4.java
@@ -1,4 +1,4 @@
-package painting;
+package painting.SwingPaintDemo;
import javax.swing.SwingUtilities;
import javax.swing.JFrame;
diff --git a/DemoProjects/src/painting/donut/Board.java b/DemoProjects/src/painting/donut/Board.java
new file mode 100644
index 0000000..a404f2b
--- /dev/null
+++ b/DemoProjects/src/painting/donut/Board.java
@@ -0,0 +1,50 @@
+package painting.donut;
+
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Ellipse2D;
+import javax.swing.JPanel;
+
+public class Board extends JPanel {
+
+ @Override
+ public void paintComponent(Graphics g) {
+ super.paintComponent(g);
+
+ drawDonut(g);
+ }
+
+ private void drawDonut(Graphics g) {
+
+ Graphics2D g2d = (Graphics2D) g;
+
+ RenderingHints rh
+ = new RenderingHints(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
+
+ rh.put(RenderingHints.KEY_RENDERING,
+ RenderingHints.VALUE_RENDER_QUALITY);
+
+ g2d.setRenderingHints(rh);
+
+ Dimension size = getSize();
+ double w = size.getWidth();
+ double h = size.getHeight();
+
+ Ellipse2D e = new Ellipse2D.Double(0, 0, 80, 130);
+ g2d.setStroke(new BasicStroke(1));
+ g2d.setColor(Color.gray);
+
+ for (double deg = 0; deg < 360; deg += 10) {
+ AffineTransform at
+ = AffineTransform.getTranslateInstance(w/2, h/2);
+ at.rotate(Math.toRadians(deg));
+ g2d.draw(at.createTransformedShape(e));
+ }
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/painting/donut/Donut.java b/DemoProjects/src/painting/donut/Donut.java
new file mode 100644
index 0000000..7ba6ef5
--- /dev/null
+++ b/DemoProjects/src/painting/donut/Donut.java
@@ -0,0 +1,31 @@
+package painting.donut;
+
+import java.awt.EventQueue;
+import javax.swing.JFrame;
+
+public class Donut extends JFrame {
+
+ public Donut() {
+
+ initUI();
+ }
+
+ private void initUI() {
+
+ add(new Board());
+
+ setSize(330, 330);
+
+ setTitle("Donut");
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ setLocationRelativeTo(null);
+ }
+
+ public static void main(String[] args) {
+
+ EventQueue.invokeLater(() -> {
+ Donut ex = new Donut();
+ ex.setVisible(true);
+ });
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/painting/image/Board.java b/DemoProjects/src/painting/image/Board.java
new file mode 100644
index 0000000..8c9c8e8
--- /dev/null
+++ b/DemoProjects/src/painting/image/Board.java
@@ -0,0 +1,38 @@
+package painting.image;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Image;
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+
+public class Board extends JPanel {
+
+ private Image bardejov;
+
+ public Board() {
+
+ initBoard();
+ }
+
+ private void initBoard() {
+
+ loadImage();
+
+ int w = bardejov.getWidth(this);
+ int h = bardejov.getHeight(this);
+ setPreferredSize(new Dimension(w, h));
+ }
+
+ private void loadImage() {
+
+ ImageIcon ii = new ImageIcon("/home/bitecoding/Pictures/1182657.jpg");
+ bardejov = ii.getImage();
+ }
+
+ @Override
+ public void paintComponent(Graphics g) {
+
+ g.drawImage(bardejov, 0, 0, null);
+ }
+}
diff --git a/DemoProjects/src/painting/image/Image.java b/DemoProjects/src/painting/image/Image.java
new file mode 100644
index 0000000..0b851bb
--- /dev/null
+++ b/DemoProjects/src/painting/image/Image.java
@@ -0,0 +1,27 @@
+package painting.image;
+
+import java.awt.EventQueue;
+import javax.swing.JFrame;
+
+public class Image extends JFrame {
+
+ public Image() {
+ initUI();
+ }
+
+ private void initUI() {
+ add(new Board());
+ pack();
+ setTitle("Bardejov");
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ setLocationRelativeTo(null);
+ }
+
+ public static void main(String[] args) {
+
+ EventQueue.invokeLater(() -> {
+ Image ex = new Image();
+ ex.setVisible(true);
+ });
+ }
+}
diff --git a/DemoProjects/src/sprites/shootingMissles/Board.java b/DemoProjects/src/sprites/shootingMissles/Board.java
new file mode 100644
index 0000000..ed7038b
--- /dev/null
+++ b/DemoProjects/src/sprites/shootingMissles/Board.java
@@ -0,0 +1,109 @@
+package sprites.shootingMissles;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.util.List;
+import javax.swing.JPanel;
+import javax.swing.Timer;
+
+public class Board extends JPanel implements ActionListener {
+
+ private final int ICRAFT_X = 40;
+ private final int ICRAFT_Y = 60;
+ private final int DELAY = 10;
+ private Timer timer;
+ private SpaceShip spaceShip;
+
+ public Board() {
+
+ initBoard();
+ }
+
+ private void initBoard() {
+
+ addKeyListener(new TAdapter());
+ setBackground(Color.BLACK);
+ setFocusable(true);
+
+ spaceShip = new SpaceShip(ICRAFT_X, ICRAFT_Y);
+
+ timer = new Timer(DELAY, this);
+ timer.start();
+ }
+
+ @Override
+ public void paintComponent(Graphics g) {
+ super.paintComponent(g);
+
+ doDrawing(g);
+
+ Toolkit.getDefaultToolkit().sync();
+ }
+
+ private void doDrawing(Graphics g) {
+
+ Graphics2D g2d = (Graphics2D) g;
+
+ g2d.drawImage(spaceShip.getImage(), spaceShip.getX(),
+ spaceShip.getY(), this);
+
+ List missiles = spaceShip.getMissiles();
+
+ for (Missile missile : missiles) {
+
+ g2d.drawImage(missile.getImage(), missile.getX(),
+ missile.getY(), this);
+ }
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ updateMissiles();
+ updateSpaceShip();
+
+ repaint();
+ }
+
+ private void updateMissiles() {
+
+ List missiles = spaceShip.getMissiles();
+
+ for (int i = 0; i < missiles.size(); i++) {
+
+ Missile missile = missiles.get(i);
+
+ if (missile.isVisible()) {
+
+ missile.move();
+ } else {
+
+ missiles.remove(i);
+ }
+ }
+ }
+
+ private void updateSpaceShip() {
+
+ spaceShip.move();
+ }
+
+ private class TAdapter extends KeyAdapter {
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+ spaceShip.keyReleased(e);
+ }
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ spaceShip.keyPressed(e);
+ }
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/sprites/shootingMissles/Executor.java b/DemoProjects/src/sprites/shootingMissles/Executor.java
new file mode 100644
index 0000000..d115fbb
--- /dev/null
+++ b/DemoProjects/src/sprites/shootingMissles/Executor.java
@@ -0,0 +1,32 @@
+package sprites.shootingMissles;
+
+import java.awt.EventQueue;
+import javax.swing.JFrame;
+
+public class Executor extends JFrame {
+
+ public Executor() {
+
+ initUI();
+ }
+
+ private void initUI() {
+
+ add(new Board());
+
+ setSize(400, 300);
+ setResizable(false);
+
+ setTitle("Shooting missiles");
+ setLocationRelativeTo(null);
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+ public static void main(String[] args) {
+
+ EventQueue.invokeLater(() -> {
+ Executor ex = new Executor();
+ ex.setVisible(true);
+ });
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/sprites/shootingMissles/Missile.java b/DemoProjects/src/sprites/shootingMissles/Missile.java
new file mode 100644
index 0000000..a85451e
--- /dev/null
+++ b/DemoProjects/src/sprites/shootingMissles/Missile.java
@@ -0,0 +1,27 @@
+package sprites.shootingMissles;
+
+public class Missile extends Sprite {
+
+ private final int BOARD_WIDTH = 390;
+ private final int MISSILE_SPEED = 2;
+
+ public Missile(int x, int y) {
+ super(x, y);
+
+ initMissile();
+ }
+
+ private void initMissile() {
+ loadImage("/home/bitecoding/Pictures/laser.png",35,35);
+ getImageDimensions();
+ }
+
+ public void move() {
+
+ y -= MISSILE_SPEED;
+
+ if (y < 0) {
+ visible = false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/sprites/shootingMissles/SpaceShip.java b/DemoProjects/src/sprites/shootingMissles/SpaceShip.java
new file mode 100644
index 0000000..9bebb56
--- /dev/null
+++ b/DemoProjects/src/sprites/shootingMissles/SpaceShip.java
@@ -0,0 +1,85 @@
+package sprites.shootingMissles;
+
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+import java.util.List;
+
+public class SpaceShip extends Sprite {
+
+ private int dx;
+ private int dy;
+ private List missiles;
+
+ public SpaceShip(int x, int y) {
+ super(x, y);
+
+ initSpaceShip();
+ }
+
+ private void initSpaceShip() {
+
+ missiles = new ArrayList<>();
+
+ loadImage("/home/bitecoding/Pictures/spaceship.png",50,50);
+ getImageDimensions();
+ }
+
+ public void move() {
+ x += dx;
+ y += dy;
+ }
+
+ public List getMissiles() {
+ return missiles;
+ }
+
+ public void keyPressed(KeyEvent e) {
+
+ int key = e.getKeyCode();
+
+ if (key == KeyEvent.VK_SPACE) {
+ fire();
+ }
+
+ if (key == KeyEvent.VK_LEFT) {
+ dx = -1;
+ }
+
+ if (key == KeyEvent.VK_RIGHT) {
+ dx = 1;
+ }
+
+ if (key == KeyEvent.VK_UP) {
+ dy = -1;
+ }
+
+ if (key == KeyEvent.VK_DOWN) {
+ dy = 1;
+ }
+ }
+
+ public void fire() {
+ missiles.add(new Missile(x + width, y + height / 2));
+ }
+
+ public void keyReleased(KeyEvent e) {
+
+ int key = e.getKeyCode();
+
+ if (key == KeyEvent.VK_LEFT) {
+ dx = 0;
+ }
+
+ if (key == KeyEvent.VK_RIGHT) {
+ dx = 0;
+ }
+
+ if (key == KeyEvent.VK_UP) {
+ dy = 0;
+ }
+
+ if (key == KeyEvent.VK_DOWN) {
+ dy = 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/sprites/shootingMissles/Sprite.java b/DemoProjects/src/sprites/shootingMissles/Sprite.java
new file mode 100644
index 0000000..b017879
--- /dev/null
+++ b/DemoProjects/src/sprites/shootingMissles/Sprite.java
@@ -0,0 +1,52 @@
+package sprites.shootingMissles;
+
+import java.awt.*;
+import javax.swing.ImageIcon;
+
+public class Sprite {
+
+ protected int x;
+ protected int y;
+ protected int width;
+ protected int height;
+ protected boolean visible;
+ protected Image image;
+
+ public Sprite(int x, int y) {
+
+ this.x = x;
+ this.y = y;
+ visible = true;
+ }
+
+ protected void loadImage(String imageName, int width, int height) {
+
+ ImageIcon ii = new ImageIcon(imageName);
+ image = ii.getImage().getScaledInstance(width, height, Image.SCALE_DEFAULT);
+ }
+
+ protected void getImageDimensions() {
+ width = image.getWidth(null);
+ height = image.getHeight(null);
+ }
+
+ public Image getImage() {
+ return image;
+ }
+
+ public int getX() {
+ return x;
+ }
+
+ public int getY() {
+ return y;
+ }
+
+ public boolean isVisible() {
+ return visible;
+ }
+
+ public void setVisible(Boolean visible) {
+ this.visible = visible;
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/sprites/spaceship/Board.java b/DemoProjects/src/sprites/spaceship/Board.java
new file mode 100644
index 0000000..db5b303
--- /dev/null
+++ b/DemoProjects/src/sprites/spaceship/Board.java
@@ -0,0 +1,79 @@
+package sprites.spaceship;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import javax.swing.JPanel;
+import javax.swing.Timer;
+
+public class Board extends JPanel implements ActionListener {
+
+ private Timer timer;
+ private SpaceShip spaceShip;
+ private final int DELAY = 10;
+
+ public Board() {
+
+ initBoard();
+ }
+
+ private void initBoard() {
+
+ addKeyListener(new TAdapter());
+ setBackground(Color.black);
+ setFocusable(true);
+
+ spaceShip = new SpaceShip();
+
+ timer = new Timer(DELAY, this);
+ timer.start();
+ }
+
+ @Override
+ public void paintComponent(Graphics g) {
+ super.paintComponent(g);
+
+ doDrawing(g);
+
+ Toolkit.getDefaultToolkit().sync();
+ }
+
+ private void doDrawing(Graphics g) {
+
+ Graphics2D g2d = (Graphics2D) g;
+
+ g2d.drawImage(spaceShip.getImage(), spaceShip.getX(),
+ spaceShip.getY(), this);
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ step();
+ }
+
+ private void step() {
+
+ spaceShip.move();
+
+ repaint();
+ }
+
+ private class TAdapter extends KeyAdapter {
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+ spaceShip.keyReleased(e);
+ }
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ spaceShip.keyPressed(e);
+ }
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/sprites/spaceship/MovingSprite.java b/DemoProjects/src/sprites/spaceship/MovingSprite.java
new file mode 100644
index 0000000..ad55218
--- /dev/null
+++ b/DemoProjects/src/sprites/spaceship/MovingSprite.java
@@ -0,0 +1,32 @@
+package sprites.spaceship;
+
+import java.awt.EventQueue;
+import javax.swing.JFrame;
+
+public class MovingSprite extends JFrame {
+
+ public MovingSprite() {
+
+ initUI();
+ }
+
+ private void initUI() {
+
+ add(new Board());
+
+ setTitle("Moving sprite");
+ setSize(400, 300);
+
+ setLocationRelativeTo(null);
+ setResizable(false);
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+
+ public static void main(String[] args) {
+
+ EventQueue.invokeLater(() -> {
+ MovingSprite ex = new MovingSprite();
+ ex.setVisible(true);
+ });
+ }
+}
\ No newline at end of file
diff --git a/DemoProjects/src/sprites/spaceship/SpaceShip.java b/DemoProjects/src/sprites/spaceship/SpaceShip.java
new file mode 100644
index 0000000..302e35b
--- /dev/null
+++ b/DemoProjects/src/sprites/spaceship/SpaceShip.java
@@ -0,0 +1,105 @@
+package sprites.spaceship;
+
+import java.awt.Image;
+import java.awt.event.KeyEvent;
+import javax.swing.ImageIcon;
+
+public class SpaceShip {
+
+ private int dx;
+ private int dy;
+ private int x = 40;
+ private int y = 60;
+ private int w;
+ private int h;
+ private Image image;
+
+ public SpaceShip() {
+
+ loadImage();
+ }
+
+ private void loadImage() {
+
+ ImageIcon ii = new ImageIcon("/home/bitecoding/Pictures/spaceship.png");
+ image = ii.getImage().getScaledInstance(50,50,1);
+
+ w = image.getWidth(null);
+ h = image.getHeight(null);
+ }
+
+ public void move() {
+
+ x += dx;
+ y += dy;
+ }
+
+ public int getX() {
+
+ return x;
+ }
+
+ public int getY() {
+
+ return y;
+ }
+
+ public int getWidth() {
+
+ return w;
+ }
+
+ public int getHeight() {
+
+ return h;
+ }
+
+ public Image getImage() {
+
+ return image;
+ }
+
+ public void keyPressed(KeyEvent e) {
+
+ int key = e.getKeyCode();
+
+ switch(key){
+ case KeyEvent.VK_A:
+ dx = -2;
+ break;
+ case KeyEvent.VK_D:
+ dx = 2;
+ break;
+ case KeyEvent.VK_W:
+ dy = -2;
+ break;
+ case KeyEvent.VK_S:
+ dy = 2;
+ break;
+ default:
+ break;
+ }
+ }
+
+ public void keyReleased(KeyEvent e) {
+
+ int key = e.getKeyCode();
+
+ switch(key){
+ case KeyEvent.VK_A:
+ dx = 0;
+ break;
+ case KeyEvent.VK_D:
+ dx = 0;
+ break;
+ case KeyEvent.VK_W:
+ dy = 0;
+ break;
+ case KeyEvent.VK_S:
+ dy = 0;
+ break;
+ default:
+ break;
+ }
+ }
+}
\ No newline at end of file
diff --git a/TicTacToe_MinMax/TicTacToe_MinMax.iml b/Doodles/Doodles.iml
similarity index 100%
rename from TicTacToe_MinMax/TicTacToe_MinMax.iml
rename to Doodles/Doodles.iml
diff --git a/Doodles/src/Template.java b/Doodles/src/Template.java
new file mode 100644
index 0000000..e79beb3
--- /dev/null
+++ b/Doodles/src/Template.java
@@ -0,0 +1,23 @@
+import java.util.Arrays;
+
+public class Template {
+
+ /*
+ 1 2 3 4 5
+ 12 13 14 15 6
+ 11 10 9 8 7
+
+ */
+
+ public static void main(String[] args) {
+ int num = 1000;
+ for (int j = 0; j < 50; j++) {
+ for (int i = 0; i < 59; i++) {
+ System.out.print(num+" ");
+ num++;
+ }
+ System.out.println();
+ }
+ }
+
+}
diff --git a/TicTacToe - MinMax/TicTacToe - MinMax.iml b/TicTacToe - MinMax/TicTacToe - MinMax.iml
new file mode 100644
index 0000000..c90834f
--- /dev/null
+++ b/TicTacToe - MinMax/TicTacToe - MinMax.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TicTacToe_MinMax/src/Game.java b/TicTacToe_MinMax/src/Game.java
deleted file mode 100644
index 42d8361..0000000
--- a/TicTacToe_MinMax/src/Game.java
+++ /dev/null
@@ -1,41 +0,0 @@
-import javax.swing.*;
-
-public class Game {
-
- public void place(int player, int position, int[] playfield){
- if (playfield[position] == -1){
- playfield[position] = player;
- } else {
- JOptionPane.showConfirmDialog(null,"Tile is already taken");
- }
- }
-
- private boolean checkWin(int[] playfield){
- for (int i = 0; i < 3; i++){
- if ((playfield[i] == playfield[i+3]) && (playfield[i] == playfield[i+6])){
- System.out.println("vertical");
- return true;
- } else if ((playfield[i*3] == playfield[i*3+1]) && (playfield[i*3] == playfield[i*3+2])){
- System.out.println("horizontal");
- return true;
- }
- }
- return (playfield[2] == playfield[4]) && (playfield[2] == playfield[6]) || (playfield[0] == playfield[4]) && (playfield[0] == playfield[8]);
- }
-
-
- public static void main(String[] args) {
- Game game = new Game();
- Render render = new Render();
-
- int[] playfield = {1,0,-1,1,1,0,-1,0,1};
-
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- render.createUI(playfield);
- }
- });
-
- System.out.println(game.checkWin(playfield));
- }
-}
diff --git a/TicTacToe_MinMax/src/Player.java b/TicTacToe_MinMax/src/Player.java
deleted file mode 100644
index d01f6ed..0000000
--- a/TicTacToe_MinMax/src/Player.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package PACKAGE_NAME;
-
-public class Player {
-}
diff --git a/TicTacToe_MinMax/src/Render.java b/TicTacToe_MinMax/src/Render.java
deleted file mode 100644
index f7825f2..0000000
--- a/TicTacToe_MinMax/src/Render.java
+++ /dev/null
@@ -1,134 +0,0 @@
-import javax.swing.*;
-import java.awt.*;
-
-public class Render {
-
- public static void createUI(int[] playfield){
- JFrame f = new JFrame("Swing Paint Demo");
- MyPanel myPanel = new MyPanel(playfield);
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- f.add(myPanel);
- f.pack();
- f.setLocationRelativeTo(null);
- f.setVisible(true);
- }
-
-}
-
-class MyPanel extends JPanel {
- Grid grid;
- GameCharacters gameCharacters;
-
- public MyPanel() {
- setBorder(BorderFactory.createLineBorder(Color.BLACK));
- grid = new Grid();
- }
-
- public MyPanel(int[] playfield){
- setBorder(BorderFactory.createLineBorder(Color.BLACK));
- grid = new Grid();
- gameCharacters = new GameCharacters(playfield);
- }
-
- public Dimension getPreferredSize() {
- return new Dimension(900,900);
- }
-
- public void paintComponent(Graphics g) {
- super.paintComponent(g);
- grid.paintGrid(g);
- gameCharacters.paintGameCharacters(g);
- }
-}
-
-class Grid{
- private final int TILE_X = 300;
- private final int TILE_Y = 300;
-
- public void paintGrid(Graphics g){
- g.setColor(Color.BLACK);
- //horizontal
- for (int i = 1; i < 3; i++) {
- Graphics2D g2d = (Graphics2D)g;
- g2d.setStroke(new BasicStroke(5));
- g2d.drawLine(0, TILE_Y*i, TILE_X*3, TILE_Y*i);
- }
- //vertical
- for (int i = 1; i < 3; i++){
- Graphics2D g2d = (Graphics2D)g;
- g2d.setStroke(new BasicStroke(5));
- g2d.drawLine(TILE_X*i, 0, TILE_X*i, TILE_Y*3);
- }
- }
-}
-
-class GameCharacters {
- CharacterX characterX = new CharacterX();
- CharacterO characterO = new CharacterO();
-
- private final int TILE_X = 300;
- private final int TILE_Y = 300;
-
- int[] playfield;
-
- public GameCharacters(int[] playfield) {
- this.playfield = playfield;
- }
-
- public void paintGameCharacters(Graphics g) {
- int actions = 0;
- for (int column = 0; column < 3; column++) {
- for (int row = 0; row < 3; row++) {
- if (playfield[actions] == 1) {
- characterX.setX(TILE_X * row);
- characterX.setY(TILE_Y * column);
- characterX.paintX(g);
- } else if (playfield[actions] == -1) {
- characterO.setX(TILE_X * row);
- characterO.setY(TILE_Y * column);
- characterO.paintO(g);
- }
- actions++;
- }
- }
- }
-
- class CharacterX {
- private int x;
- private int y;
-
- public void paintX(Graphics g) {
- Graphics2D g2d = (Graphics2D)g;
- g2d.setStroke(new BasicStroke(10));
- g2d.drawLine(x+25, y+25, x+275, y+275);
- g2d.drawLine(x+25, y +275, x+275, y+25);
- }
-
- public void setX(int x) {
- this.x = x;
- }
-
- public void setY(int y) {
- this.y = y;
- }
- }
-
- class CharacterO {
- private int x;
- private int y;
-
- public void paintO(Graphics g) {
- Graphics2D g2d = (Graphics2D)g;
- g2d.setStroke(new BasicStroke(10));
- g2d.drawOval(x + 25, y + 25, 250, 250);
- }
-
- public void setX(int x) {
- this.x = x;
- }
-
- public void setY(int y) {
- this.y = y;
- }
- }
-}
diff --git a/out/production/ATM-Machine/ATM-Machine.iml b/out/production/ATM-Machine/ATM-Machine.iml
new file mode 100644
index 0000000..b107a2d
--- /dev/null
+++ b/out/production/ATM-Machine/ATM-Machine.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/ATM-Machine/src/META-INF/MANIFEST.MF b/out/production/ATM-Machine/src/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5c4afaa
--- /dev/null
+++ b/out/production/ATM-Machine/src/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: Operator
+
diff --git a/out/production/ATM-Machine/src/Operator.class b/out/production/ATM-Machine/src/Operator.class
new file mode 100644
index 0000000..e4eb053
Binary files /dev/null and b/out/production/ATM-Machine/src/Operator.class differ
diff --git a/out/production/DemoProjects/animation/swingTimer/Board.class b/out/production/DemoProjects/animation/swingTimer/Board.class
new file mode 100644
index 0000000..03da757
Binary files /dev/null and b/out/production/DemoProjects/animation/swingTimer/Board.class differ
diff --git a/out/production/DemoProjects/animation/swingTimer/SwingTimer.class b/out/production/DemoProjects/animation/swingTimer/SwingTimer.class
new file mode 100644
index 0000000..3fbdbcf
Binary files /dev/null and b/out/production/DemoProjects/animation/swingTimer/SwingTimer.class differ
diff --git a/out/production/DemoProjects/animation/thread/Board.class b/out/production/DemoProjects/animation/thread/Board.class
new file mode 100644
index 0000000..44a6baf
Binary files /dev/null and b/out/production/DemoProjects/animation/thread/Board.class differ
diff --git a/out/production/DemoProjects/animation/thread/ThreadAnimation.class b/out/production/DemoProjects/animation/thread/ThreadAnimation.class
new file mode 100644
index 0000000..5e65519
Binary files /dev/null and b/out/production/DemoProjects/animation/thread/ThreadAnimation.class differ
diff --git a/out/production/DemoProjects/animation/utilityTimer/Board$ScheduleTask.class b/out/production/DemoProjects/animation/utilityTimer/Board$ScheduleTask.class
new file mode 100644
index 0000000..b685d17
Binary files /dev/null and b/out/production/DemoProjects/animation/utilityTimer/Board$ScheduleTask.class differ
diff --git a/out/production/DemoProjects/animation/utilityTimer/Board.class b/out/production/DemoProjects/animation/utilityTimer/Board.class
new file mode 100644
index 0000000..ab1fb29
Binary files /dev/null and b/out/production/DemoProjects/animation/utilityTimer/Board.class differ
diff --git a/out/production/DemoProjects/animation/utilityTimer/UtilityTimer.class b/out/production/DemoProjects/animation/utilityTimer/UtilityTimer.class
new file mode 100644
index 0000000..266b79b
Binary files /dev/null and b/out/production/DemoProjects/animation/utilityTimer/UtilityTimer.class differ
diff --git a/out/production/DemoProjects/painting/MyPanel2$1.class b/out/production/DemoProjects/painting/MyPanel2$1.class
deleted file mode 100644
index 0736679..0000000
Binary files a/out/production/DemoProjects/painting/MyPanel2$1.class and /dev/null differ
diff --git a/out/production/DemoProjects/painting/MyPanel2$2.class b/out/production/DemoProjects/painting/MyPanel2$2.class
deleted file mode 100644
index 04b4fbf..0000000
Binary files a/out/production/DemoProjects/painting/MyPanel2$2.class and /dev/null differ
diff --git a/out/production/DemoProjects/painting/MyPanel1.class b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel1.class
similarity index 78%
rename from out/production/DemoProjects/painting/MyPanel1.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/MyPanel1.class
index 6c4fdd4..4551fab 100644
Binary files a/out/production/DemoProjects/painting/MyPanel1.class and b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel1.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2$1.class b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2$1.class
new file mode 100644
index 0000000..58ead79
Binary files /dev/null and b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2$1.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2$2.class b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2$2.class
new file mode 100644
index 0000000..3aefd42
Binary files /dev/null and b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2$2.class differ
diff --git a/out/production/DemoProjects/painting/MyPanel2.class b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2.class
similarity index 65%
rename from out/production/DemoProjects/painting/MyPanel2.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2.class
index 25a3e92..baa1d1c 100644
Binary files a/out/production/DemoProjects/painting/MyPanel2.class and b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel2.class differ
diff --git a/out/production/DemoProjects/painting/MyPanel3$1.class b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3$1.class
similarity index 52%
rename from out/production/DemoProjects/painting/MyPanel3$1.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3$1.class
index 5a25783..f974135 100644
Binary files a/out/production/DemoProjects/painting/MyPanel3$1.class and b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3$1.class differ
diff --git a/out/production/DemoProjects/painting/MyPanel3$2.class b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3$2.class
similarity index 52%
rename from out/production/DemoProjects/painting/MyPanel3$2.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3$2.class
index 48de853..0f6fb6b 100644
Binary files a/out/production/DemoProjects/painting/MyPanel3$2.class and b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3$2.class differ
diff --git a/out/production/DemoProjects/painting/MyPanel3.class b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3.class
similarity index 80%
rename from out/production/DemoProjects/painting/MyPanel3.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3.class
index 7549ca4..d41f660 100644
Binary files a/out/production/DemoProjects/painting/MyPanel3.class and b/out/production/DemoProjects/painting/SwingPaintDemo/MyPanel3.class differ
diff --git a/out/production/DemoProjects/painting/RedSquare.class b/out/production/DemoProjects/painting/SwingPaintDemo/RedSquare.class
similarity index 73%
rename from out/production/DemoProjects/painting/RedSquare.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/RedSquare.class
index ec99768..34be94e 100644
Binary files a/out/production/DemoProjects/painting/RedSquare.class and b/out/production/DemoProjects/painting/SwingPaintDemo/RedSquare.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo1$1.class b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo1$1.class
similarity index 59%
rename from out/production/DemoProjects/painting/SwingPaintDemo1$1.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo1$1.class
index 3bb91db..b9eff3d 100644
Binary files a/out/production/DemoProjects/painting/SwingPaintDemo1$1.class and b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo1$1.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo1.class b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo1.class
similarity index 76%
rename from out/production/DemoProjects/painting/SwingPaintDemo1.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo1.class
index c914c81..d7287de 100644
Binary files a/out/production/DemoProjects/painting/SwingPaintDemo1.class and b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo1.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo2$1.class b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo2$1.class
similarity index 59%
rename from out/production/DemoProjects/painting/SwingPaintDemo2$1.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo2$1.class
index d7ec8a6..e131d26 100644
Binary files a/out/production/DemoProjects/painting/SwingPaintDemo2$1.class and b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo2$1.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo2.class b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo2.class
similarity index 73%
rename from out/production/DemoProjects/painting/SwingPaintDemo2.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo2.class
index 535a4e2..85636c2 100644
Binary files a/out/production/DemoProjects/painting/SwingPaintDemo2.class and b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo2.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo3$1.class b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo3$1.class
new file mode 100644
index 0000000..dd1ceb5
Binary files /dev/null and b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo3$1.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo3.class b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo3.class
similarity index 64%
rename from out/production/DemoProjects/painting/SwingPaintDemo3.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo3.class
index 954c05e..e214b88 100644
Binary files a/out/production/DemoProjects/painting/SwingPaintDemo3.class and b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo3.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo4$1.class b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo4$1.class
similarity index 59%
rename from out/production/DemoProjects/painting/SwingPaintDemo4$1.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo4$1.class
index 3c902d3..8385c6c 100644
Binary files a/out/production/DemoProjects/painting/SwingPaintDemo4$1.class and b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo4$1.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo4.class b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo4.class
similarity index 73%
rename from out/production/DemoProjects/painting/SwingPaintDemo4.class
rename to out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo4.class
index 479288c..1d452d5 100644
Binary files a/out/production/DemoProjects/painting/SwingPaintDemo4.class and b/out/production/DemoProjects/painting/SwingPaintDemo/SwingPaintDemo4.class differ
diff --git a/out/production/DemoProjects/painting/SwingPaintDemo3$1.class b/out/production/DemoProjects/painting/SwingPaintDemo3$1.class
deleted file mode 100644
index 1e6d04b..0000000
Binary files a/out/production/DemoProjects/painting/SwingPaintDemo3$1.class and /dev/null differ
diff --git a/out/production/DemoProjects/painting/donut/Board.class b/out/production/DemoProjects/painting/donut/Board.class
new file mode 100644
index 0000000..81eb33b
Binary files /dev/null and b/out/production/DemoProjects/painting/donut/Board.class differ
diff --git a/out/production/DemoProjects/painting/donut/Donut.class b/out/production/DemoProjects/painting/donut/Donut.class
new file mode 100644
index 0000000..b6603ef
Binary files /dev/null and b/out/production/DemoProjects/painting/donut/Donut.class differ
diff --git a/out/production/DemoProjects/painting/image/Board.class b/out/production/DemoProjects/painting/image/Board.class
new file mode 100644
index 0000000..e2b397d
Binary files /dev/null and b/out/production/DemoProjects/painting/image/Board.class differ
diff --git a/out/production/DemoProjects/painting/image/Image.class b/out/production/DemoProjects/painting/image/Image.class
new file mode 100644
index 0000000..0f230fb
Binary files /dev/null and b/out/production/DemoProjects/painting/image/Image.class differ
diff --git a/out/production/DemoProjects/sprites/shootingMissles/Board$TAdapter.class b/out/production/DemoProjects/sprites/shootingMissles/Board$TAdapter.class
new file mode 100644
index 0000000..f727f89
Binary files /dev/null and b/out/production/DemoProjects/sprites/shootingMissles/Board$TAdapter.class differ
diff --git a/out/production/DemoProjects/sprites/shootingMissles/Board.class b/out/production/DemoProjects/sprites/shootingMissles/Board.class
new file mode 100644
index 0000000..6e9c408
Binary files /dev/null and b/out/production/DemoProjects/sprites/shootingMissles/Board.class differ
diff --git a/out/production/DemoProjects/sprites/shootingMissles/Executor.class b/out/production/DemoProjects/sprites/shootingMissles/Executor.class
new file mode 100644
index 0000000..fc94052
Binary files /dev/null and b/out/production/DemoProjects/sprites/shootingMissles/Executor.class differ
diff --git a/out/production/DemoProjects/sprites/shootingMissles/Missile.class b/out/production/DemoProjects/sprites/shootingMissles/Missile.class
new file mode 100644
index 0000000..c3b8bc0
Binary files /dev/null and b/out/production/DemoProjects/sprites/shootingMissles/Missile.class differ
diff --git a/out/production/DemoProjects/sprites/shootingMissles/SpaceShip.class b/out/production/DemoProjects/sprites/shootingMissles/SpaceShip.class
new file mode 100644
index 0000000..adad6c0
Binary files /dev/null and b/out/production/DemoProjects/sprites/shootingMissles/SpaceShip.class differ
diff --git a/out/production/DemoProjects/sprites/shootingMissles/Sprite.class b/out/production/DemoProjects/sprites/shootingMissles/Sprite.class
new file mode 100644
index 0000000..b6aa4e9
Binary files /dev/null and b/out/production/DemoProjects/sprites/shootingMissles/Sprite.class differ
diff --git a/out/production/DemoProjects/sprites/spaceship/Board$TAdapter.class b/out/production/DemoProjects/sprites/spaceship/Board$TAdapter.class
new file mode 100644
index 0000000..e419587
Binary files /dev/null and b/out/production/DemoProjects/sprites/spaceship/Board$TAdapter.class differ
diff --git a/out/production/DemoProjects/sprites/spaceship/Board.class b/out/production/DemoProjects/sprites/spaceship/Board.class
new file mode 100644
index 0000000..b172a17
Binary files /dev/null and b/out/production/DemoProjects/sprites/spaceship/Board.class differ
diff --git a/out/production/DemoProjects/sprites/spaceship/MovingSprite.class b/out/production/DemoProjects/sprites/spaceship/MovingSprite.class
new file mode 100644
index 0000000..b192cf7
Binary files /dev/null and b/out/production/DemoProjects/sprites/spaceship/MovingSprite.class differ
diff --git a/out/production/DemoProjects/sprites/spaceship/SpaceShip.class b/out/production/DemoProjects/sprites/spaceship/SpaceShip.class
new file mode 100644
index 0000000..fe63c4c
Binary files /dev/null and b/out/production/DemoProjects/sprites/spaceship/SpaceShip.class differ
diff --git a/out/production/Doodles/Template.class b/out/production/Doodles/Template.class
new file mode 100644
index 0000000..190a585
Binary files /dev/null and b/out/production/Doodles/Template.class differ
diff --git a/out/production/TicTacToe_MinMax/Game$1.class b/out/production/TicTacToe_MinMax/Game$1.class
deleted file mode 100644
index 2e92e5c..0000000
Binary files a/out/production/TicTacToe_MinMax/Game$1.class and /dev/null differ
diff --git a/out/production/TicTacToe_MinMax/Game.class b/out/production/TicTacToe_MinMax/Game.class
deleted file mode 100644
index 9e3c030..0000000
Binary files a/out/production/TicTacToe_MinMax/Game.class and /dev/null differ
diff --git a/out/production/TicTacToe_MinMax/GameCharacters$CharacterO.class b/out/production/TicTacToe_MinMax/GameCharacters$CharacterO.class
deleted file mode 100644
index b3a43bf..0000000
Binary files a/out/production/TicTacToe_MinMax/GameCharacters$CharacterO.class and /dev/null differ
diff --git a/out/production/TicTacToe_MinMax/GameCharacters$CharacterX.class b/out/production/TicTacToe_MinMax/GameCharacters$CharacterX.class
deleted file mode 100644
index 3dca011..0000000
Binary files a/out/production/TicTacToe_MinMax/GameCharacters$CharacterX.class and /dev/null differ
diff --git a/out/production/TicTacToe_MinMax/GameCharacters.class b/out/production/TicTacToe_MinMax/GameCharacters.class
deleted file mode 100644
index baa9097..0000000
Binary files a/out/production/TicTacToe_MinMax/GameCharacters.class and /dev/null differ
diff --git a/out/production/TicTacToe_MinMax/Grid.class b/out/production/TicTacToe_MinMax/Grid.class
deleted file mode 100644
index 6a487c9..0000000
Binary files a/out/production/TicTacToe_MinMax/Grid.class and /dev/null differ
diff --git a/out/production/TicTacToe_MinMax/MyPanel.class b/out/production/TicTacToe_MinMax/MyPanel.class
deleted file mode 100644
index cb92247..0000000
Binary files a/out/production/TicTacToe_MinMax/MyPanel.class and /dev/null differ
diff --git a/out/production/TicTacToe_MinMax/Render.class b/out/production/TicTacToe_MinMax/Render.class
deleted file mode 100644
index 5d5fafd..0000000
Binary files a/out/production/TicTacToe_MinMax/Render.class and /dev/null differ