Skip to content
Snippets Groups Projects
ScoreCounter.java 2.2 KiB
Newer Older
Kovax's avatar
Kovax committed
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package GUI.game;

/**
 *
 * @author Kovax
 */
public class ScoreCounter extends Thread
{
    Controller controller;
    int score;
    Boolean enabled;
    
    public ScoreCounter(Controller controller)
    {
        this.controller = controller;
        this.enabled = false;
    }
    
    public void resetCounter()
    {
        this.score = 0;
    }
    public void startCounter()
    {
        this.enabled = true;
    }
    @Override
    public void run()
    {
        synchronized(this)
        {
            while( true )
            {            
                try 
                {
                    int time = controller.model.getTimeLeft();
                    int mines = controller.model.getMines();
                    
                    int uncovered = controller.model.getUncoveredFields();
                    int covered = ( this.controller.settings.size * this.controller.settings.size ) - uncovered; 
                    
                    if( this.controller.settings.level == 0 )
                    {
                        //this.score += this.score*1.5;
                    }
                    else if( this.controller.settings.level == 1 )
                    {
                        this.score = ( covered * mines * 8 ) / (time+1) + covered;
                    }
                    else if( this.controller.settings.level == 2 )
                    {
                        this.score = ( mines * 10 ) / time+1 + covered;
                    }
                    else if( this.controller.settings.level == 3 )
                    {
                        this.score = ( mines * 15 ) / time+1 + covered;
                    }
                    
                    this.controller.setScore(score);
                    
                    sleep(1000);
                } catch (InterruptedException ex) 
                {
                    System.out.println("int error");
                }
            }
        }
    }   
         
}