@@ -79,6 +79,7 @@ public class Game extends JPanel implements MouseListener, MouseMotionListener {
7979 private long elapsedTimeAfterAnimation ;
8080 private String elapsedTimeStringAfterAnimation ;
8181 private boolean antReached ;
82+ protected boolean startTimer ;
8283
8384 public Game (JFrame frame ) {
8485
@@ -119,6 +120,7 @@ public Game(JFrame frame) {
119120 add (buttonPanel , BorderLayout .NORTH );
120121 setPreferredSize (new Dimension (getPreferredSize ().width + 200 , getPreferredSize ().height ));
121122
123+ startTimer = false ;
122124 startClicked = false ;
123125 startTile = null ;
124126 goalTile = null ;
@@ -131,7 +133,7 @@ public Game(JFrame frame) {
131133 elapsedTimeStringAfterAnimation = "0:00:000" ;
132134 timerX = 100 ;
133135 timerY = frame .getHeight () - 100 ;
134- startTimeBeforeSearch = System . currentTimeMillis ();
136+
135137 setTimerMageCreation ();
136138 setTimerSolving ();
137139 }
@@ -143,12 +145,15 @@ private void resetButton() {
143145 result .addActionListener (new ActionListener () {
144146 @ Override
145147 public void actionPerformed (ActionEvent e ) {
148+ startTimer = false ;
146149 startTile = null ;
147150 goalTile = null ;
148151 ant = null ;
149152 noPath = false ;
150153 startMovingAnt = false ;
151154 tobeDrawn = new LinkedList <Tile >();
155+
156+ startClicked = false ;
152157 startTimeBeforeSearch = System .currentTimeMillis ();
153158 elapsedTimeAfterSearch = 0 ;
154159 elapsedTimeStringBeforeSearch = "0:00:000" ;
@@ -367,7 +372,12 @@ public void mouseReleased(MouseEvent e) {
367372 }
368373
369374 @ Override
370- public void mouseClicked (MouseEvent e ) {}
375+ public void mouseClicked (MouseEvent e ) {
376+ if (!startTimer ){
377+ startTimeBeforeSearch = System .currentTimeMillis ();
378+ startTimer = true ;
379+ }
380+ }
371381
372382 @ Override
373383 public void mouseMoved (MouseEvent e ) {}
@@ -582,17 +592,20 @@ private void setTimerMageCreation() {
582592 Timer timer = new Timer (delay , new ActionListener () {
583593 @ Override
584594 public void actionPerformed (ActionEvent e ) {
585- elapsedTimeAfterSearch = System .currentTimeMillis () - startTimeBeforeSearch ;
586- long minutes = (elapsedTimeAfterSearch / 1000 ) / 60 ;
587- long seconds = (elapsedTimeAfterSearch / 1000 ) % 60 ;
588- long milliseconds = elapsedTimeAfterSearch % 1000 ;
595+ if (startTimer ){
596+ elapsedTimeAfterSearch = System .currentTimeMillis () - startTimeBeforeSearch ;
597+ long minutes = (elapsedTimeAfterSearch / 1000 ) / 60 ;
598+ long seconds = (elapsedTimeAfterSearch / 1000 ) % 60 ;
599+ long milliseconds = elapsedTimeAfterSearch % 1000 ;
589600
590- elapsedTimeStringBeforeSearch = String .format ("%d:%02d:%03d" , minutes , seconds , milliseconds );
591- repaint ();
601+ elapsedTimeStringBeforeSearch = String .format ("%d:%02d:%03d" , minutes , seconds , milliseconds );
602+ repaint ();
592603
593- if (startClicked ){
594- ((Timer ) e .getSource ()).stop ();
604+ if (startClicked ){
605+ ((Timer ) e .getSource ()).stop ();
606+ }
595607 }
608+
596609 }
597610 });
598611 timer .start ();
0 commit comments