public void run() {

        int[][] scores;
        int pollBlocker = 0;

        /* We starten de game ook, de vlaggen moeten dit weten */
        this.port.roundStart();
        this.port.setScoreObject(this.score);

        /* We starten de timers om af te tellen, dit gaat in een aparte thread */
        this.time.start();

        /* De game timers moeten iets voor lopen */
        try {
            this.sleep(10);
        } catch (Exception e) {}

        /* Zolang de game bezig is draait deze while */
        while (this.gameActive) {

            remainingCountdownTime = time.getRemainingCountdownTime();
            remainingRoundTime = time.getRemainingRoundTime();
            remainingRespawnTime = time.getRemainingRespawnTime();

            /* Zodra de tijd om is, stoppen we de endless loop */
            if (remainingRoundTime == 0) {
                this.gameActive = false;
            } else {
                /* Hier bepalen we hoe veel we slapen tussen elke update */
                try {
                    this.sleep(800);
                } catch (InterruptedException e) {
                    break;
                } catch (Exception e) {}
            }

            /* Pas als de countdown voorbij is gaan we vlaggen pollen */
            if (remainingCountdownTime == 0) {
                /*
                Poll de vlaggen voor hun data
                Hierbij moeten we voorkomen dat we de vlaggen overspoelen met data,
                daarom niet elke 800ms pollen
                 */
                if (pollBlocker == 0) {
                    this.port.poll();
                    this.score.pingRequest();
                    pollBlocker = 3;
                }
                pollBlocker--;
            }
        }

        /*
            We stoppen de timers, halen nog ����n maal de vlaggen scores
            op en stoppen daarna de vlaggen
         */
        this.time.end();
        this.port.poll();
        this.port.roundEnd();
    }