diff --git a/build/built-jar.properties b/build/built-jar.properties index f96bf99..12df1c4 100644 --- a/build/built-jar.properties +++ b/build/built-jar.properties @@ -1,4 +1,4 @@ -#Mon, 04 Feb 2019 21:13:01 -0600 +#Tue, 05 Feb 2019 17:51:51 -0600 C\:\\Users\\cd109\\Desktop\\CancerGrowth= diff --git a/build/classes/cancergrowth/Cell.class b/build/classes/cancergrowth/Cell.class index e1729c1..730b964 100644 Binary files a/build/classes/cancergrowth/Cell.class and b/build/classes/cancergrowth/Cell.class differ diff --git a/build/classes/cancergrowth/CellPanel$1.class b/build/classes/cancergrowth/CellPanel$1.class index 77dfacf..45c253d 100644 Binary files a/build/classes/cancergrowth/CellPanel$1.class and b/build/classes/cancergrowth/CellPanel$1.class differ diff --git a/build/classes/cancergrowth/CellPanel$2.class b/build/classes/cancergrowth/CellPanel$2.class index b722c58..a16230d 100644 Binary files a/build/classes/cancergrowth/CellPanel$2.class and b/build/classes/cancergrowth/CellPanel$2.class differ diff --git a/build/classes/cancergrowth/CellPanel$3.class b/build/classes/cancergrowth/CellPanel$3.class new file mode 100644 index 0000000..70c144f Binary files /dev/null and b/build/classes/cancergrowth/CellPanel$3.class differ diff --git a/build/classes/cancergrowth/CellPanel.class b/build/classes/cancergrowth/CellPanel.class index 6a0c43f..b437a0a 100644 Binary files a/build/classes/cancergrowth/CellPanel.class and b/build/classes/cancergrowth/CellPanel.class differ diff --git a/build/classes/data/pacman.mp3 b/build/classes/data/pacman.mp3 new file mode 100644 index 0000000..aeceaa5 Binary files /dev/null and b/build/classes/data/pacman.mp3 differ diff --git a/build/classes/data/pacman.wav b/build/classes/data/pacman.wav new file mode 100644 index 0000000..9d7fd47 Binary files /dev/null and b/build/classes/data/pacman.wav differ diff --git a/build/classes/pacman.mp3 b/build/classes/pacman.mp3 new file mode 100644 index 0000000..aeceaa5 Binary files /dev/null and b/build/classes/pacman.mp3 differ diff --git a/src/cancergrowth/Cell.java b/src/cancergrowth/Cell.java index e6179b5..9233e0c 100644 --- a/src/cancergrowth/Cell.java +++ b/src/cancergrowth/Cell.java @@ -15,7 +15,6 @@ import java.util.Scanner; * Created: Nov 7, 2018 * Author: */ - public class Cell extends Object { @@ -24,6 +23,7 @@ public class Cell extends Object private ArrayList stages = new ArrayList(); private int currentStage; private int currentTime; + private static final BufferedImage p0; private static BufferedImage[] p1 = new BufferedImage[12]; private static final BufferedImage p2; private static final BufferedImage p3; @@ -36,8 +36,14 @@ public class Cell extends Object { BufferedImage g1 = new BufferedImage(50, 50, BufferedImage.TYPE_INT_ARGB); Graphics gg1 = g1.getGraphics(); - if (transparent) gg1.setColor(new Color(255, 0, 0, 127)); - else gg1.setColor(new Color(255, 0, 0)); + if (transparent) + { + gg1.setColor(new Color(255, 0, 0, 127)); + } + else + { + gg1.setColor(new Color(255, 0, 0)); + } int width; int pos; width = (int) ((count + 1) * 2 + 22.5); @@ -51,8 +57,14 @@ public class Cell extends Object BufferedImage s = new BufferedImage(50, 50, BufferedImage.TYPE_INT_ARGB); Graphics gs = s.getGraphics(); - if (transparent) gs.setColor(new Color(255, 255, 0, 127)); - else gs.setColor(new Color(255, 255, 0)); + if (transparent) + { + gs.setColor(new Color(255, 255, 0, 127)); + } + else + { + gs.setColor(new Color(255, 255, 0)); + } gs.fillOval(0, 0, 50, 50); gs.setColor(Color.BLACK); gs.drawOval(0, 0, 50, 50); @@ -60,8 +72,14 @@ public class Cell extends Object p2 = s; BufferedImage g2 = new BufferedImage(50, 50, BufferedImage.TYPE_INT_ARGB); Graphics gg2 = g2.getGraphics(); - if (transparent) gg2.setColor(new Color(0, 255, 0, 127)); - else gg2.setColor(new Color(0, 255, 0)); + if (transparent) + { + gg2.setColor(new Color(0, 255, 0, 127)); + } + else + { + gg2.setColor(new Color(0, 255, 0)); + } gg2.fillOval(0, 0, 50, 50); gg2.setColor(Color.BLACK); gg2.drawOval(0, 0, 50, 50); @@ -69,13 +87,34 @@ public class Cell extends Object p3 = g2; BufferedImage m = new BufferedImage(50, 50, BufferedImage.TYPE_INT_ARGB); Graphics gm = m.getGraphics(); - if (transparent) gm.setColor(new Color(0, 0, 255, 127)); - else gm.setColor(new Color(0, 0, 255)); + if (transparent) + { + gm.setColor(new Color(0, 0, 255, 127)); + } + else + { + gm.setColor(new Color(0, 0, 255)); + } gm.fillOval(0, 0, 50, 50); gm.setColor(Color.BLACK); gm.drawOval(0, 0, 50, 50); gm.drawString("M", 22, 30); p4 = m; + BufferedImage g0 = new BufferedImage(50, 50, BufferedImage.TYPE_INT_ARGB); + Graphics gg0 = g0.getGraphics(); + if (transparent) + { + gg0.setColor(new Color(80, 80, 80, 127)); + } + else + { + gm.setColor(new Color(80, 80, 80)); + } + gg0.fillOval(0, 0, 50, 50); + gg0.setColor(Color.BLACK); + gg0.drawOval(0, 0, 50, 50); + gg0.drawString("G0", 18, 30); + p0 = g0; } public Cell(int x, int y) @@ -104,8 +143,24 @@ public class Cell extends Object { return myColor; }*/ - public Cell performTime() + public Cell performTime(boolean run) { + if (!run || currentStage == 4) + { + if (run) + { + currentStage = 0; + } + else + { + int random = (int) (Math.random() * 10); + if (random == 0) + { + currentStage = 4; + } + return this; + } + } this.currentTime++; Cell newcell = this; //System.out.println("Increased Current Time to:" + this.currentTime); @@ -162,8 +217,11 @@ public class Cell extends Object { return p3; } - return p4; - + if (currentStage == 3) + { + return p4; + } + return p0; } } diff --git a/src/cancergrowth/CellPanel.form b/src/cancergrowth/CellPanel.form index 4de91e3..3e509b4 100644 --- a/src/cancergrowth/CellPanel.form +++ b/src/cancergrowth/CellPanel.form @@ -21,7 +21,9 @@ - + + + @@ -35,10 +37,11 @@ + - + @@ -75,5 +78,16 @@ + + + + + + + + + + + diff --git a/src/cancergrowth/CellPanel.java b/src/cancergrowth/CellPanel.java index a72318c..83c5499 100644 --- a/src/cancergrowth/CellPanel.java +++ b/src/cancergrowth/CellPanel.java @@ -8,12 +8,8 @@ package cancergrowth; import java.util.*; import java.awt.Color; import java.awt.Graphics; -import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.image.BufferedImage; -import java.util.concurrent.Executor; -import java.util.concurrent.Executors; import javax.swing.Timer; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -24,12 +20,12 @@ public class CellPanel extends javax.swing.JPanel implements ActionListener, Cha private int delay; private boolean growing = false; private int count = 0; - private boolean draw = false; + private boolean kill = false; + private int pacmanx, pacmany; + private int cycle; + private boolean cycledir = true; - ArrayList cells = new ArrayList(10000000); - - Graphics g2; - Image canvas; + ArrayList cells = new ArrayList(100000000); public CellPanel() { @@ -51,6 +47,8 @@ public class CellPanel extends javax.swing.JPanel implements ActionListener, Cha delay = speed.getValue(); swingTimer = new Timer(delay, this); //swingTimer.start(); + pacmanx = 1050; + pacmany = -20; } @Override @@ -73,14 +71,14 @@ public class CellPanel extends javax.swing.JPanel implements ActionListener, Cha for (int k = 0; k < cells.size(); k++) { Cell t = cells.get(k); - Cell rec = t.performTime(); + Cell rec = t.performTime(!kill); if (t != rec) { cells.add(rec); } //g2.drawImage(t.getImage(), t.getX(), t.getY(), this); } - growing = true; - count ++; + //growing = true; + if(!kill) count ++; //System.out.println("ACTION PERFORMED"); super.repaint(); @@ -107,15 +105,39 @@ public class CellPanel extends javax.swing.JPanel implements ActionListener, Cha //g.setColor(t.getColor()); g.fillOval(t.getX(), t.getY(), 50, 50); } else*/ - //if (draw || cells.size() > 10000000) { - g.drawImage(t.getImage(), t.getX(), t.getY(), this); + //if (cells.size() > 10000000) { + if(kill && (Math.abs(pacmanx + 40 - t.getX()) < 50) && (Math.abs(pacmany + 25 - t.getY()) < 75)) { + cells.remove(t); + } + else g.drawImage(t.getImage(), t.getX(), t.getY(), this); + //swingTimer.stop(); //} } - + if(kill) { + //swingTimer.setDelay(100); + g.setColor(Color.YELLOW); + g.fillArc(pacmanx, pacmany, 100, 100, 220 - cycle * 2, 280 + cycle * 4); + if (pacmanx > -100) { + pacmanx -= 10; + } else { + pacmanx = 1050; + pacmany += 100; + } + if (cycledir) cycle ++; + else cycle --; + if (cycle == 21) cycledir = false; + if (cycle == 0) cycledir = true; + } + if(pacmany > 1050) { + while (!cells.isEmpty()) { + cells.remove(0); + } + kill = false; + } jLabel1.setText("Delay: " + delay + "ms. Hours since start: " + count + ". Cell Count: " + cells.size()); System.out.println("Cell Count: " + cells.size()); - growing = false; + //growing = false; } @@ -126,13 +148,14 @@ public class CellPanel extends javax.swing.JPanel implements ActionListener, Cha * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") - // + // //GEN-BEGIN:initComponents private void initComponents() { speed = new javax.swing.JSlider(); jLabel1 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); + jButton2 = new javax.swing.JButton(); speed.setMaximum(1000); speed.setMinimum(1); @@ -160,6 +183,16 @@ public class CellPanel extends javax.swing.JPanel implements ActionListener, Cha } }); + jButton2.setFont(new java.awt.Font("Dialog", 1, 14)); // NOI18N + jButton2.setText("Kill"); + jButton2.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(java.awt.event.ActionEvent evt) + { + jButton2ActionPerformed(evt); + } + }); + org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -169,7 +202,9 @@ public class CellPanel extends javax.swing.JPanel implements ActionListener, Cha .add(speed, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabel1) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 662, Short.MAX_VALUE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 593, Short.MAX_VALUE) + .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 63, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jButton1) .add(18, 18, 18)) ); @@ -180,33 +215,47 @@ public class CellPanel extends javax.swing.JPanel implements ActionListener, Cha .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) - .add(jLabel1)) + .add(jLabel1) + .add(jButton2)) .add(org.jdesktop.layout.GroupLayout.LEADING, speed, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(967, Short.MAX_VALUE)) + .addContainerGap(959, Short.MAX_VALUE)) ); - }// + }// //GEN-END:initComponents - private void speedMouseReleased(java.awt.event.MouseEvent evt) - { + private void speedMouseReleased(java.awt.event.MouseEvent evt)//GEN-FIRST:event_speedMouseReleased + {//GEN-HEADEREND:event_speedMouseReleased // TODO add your handling code here: delay = speed.getValue(); //swingTimer.setDelay(1000); super.repaint(); - } + }//GEN-LAST:event_speedMouseReleased - private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) - { + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton1ActionPerformed + {//GEN-HEADEREND:event_jButton1ActionPerformed // TODO add your handling code here: swingTimer.setDelay(delay); swingTimer.start(); - - } + }//GEN-LAST:event_jButton1ActionPerformed + + private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton2ActionPerformed + {//GEN-HEADEREND:event_jButton2ActionPerformed + // TODO add your handling code here: + if(kill) { + kill = false; + swingTimer.setDelay(delay); + } + else { + kill = true; + swingTimer.setDelay(25); + } + }//GEN-LAST:event_jButton2ActionPerformed - // Variables declaration - do not modify + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; + private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JSlider speed; - // End of variables declaration + // End of variables declaration//GEN-END:variables } diff --git a/src/data/pacman.mp3 b/src/data/pacman.mp3 new file mode 100644 index 0000000..aeceaa5 Binary files /dev/null and b/src/data/pacman.mp3 differ