public void juokse() {
        /**
         * Ladattavan tason määrittävä iteraattori
         */
        int tasonNumero = 0;

        /**
         * Valmistellaan ikkuna
         */
        alustaIkkuna(tasonNumero);

        /**
         * Luuppi joka tapahtuu niin kauan kuin tasoja riittää
         */
        while (true) {
            /**
             * Luuppi joka tapahtuu niin kauan kuin pelaaja pysyy hengissä tai
             * ei ole läpäissyt tasoa
             */
            while (true) {
                /**
                 * 60fps get
                 */
                try {
                    Thread.sleep(16);
                } catch (InterruptedException ex) {
                    System.out.println("joku meni vituiks :D");
                }
                /**
                 * Pelaajan päivitys
                 */
                pelaaja.eksistoi();
                /**
                 * Kameran päivitys
                 */
                kamera.seuraa(pelaaja);
                /**
                 * Tason lopettamisen määrittävä ehtolause
                 */
                EsteenTyyppi este = pelaaja.getOsuikoJohonkin();
                if (este == EsteenTyyppi.MAALI) {
                    tasonNumero++;
                    tallennaPelaajanTilanne(tasonNumero);
                    break;
                } else if (este == EsteenTyyppi.KUOLO) {
                    break;
                    /**
                     * Tasokohtaiset erityisbehaviour systseemit eli tässä
                     * kohtaa tuleva pelaajan tallennetun tasonNumeron lataus
                     * tiedostosta,
                     */
                } else if (este == EsteenTyyppi.SPECIAL) {
                    if (tasonNumero == 0) {
                        tasonNumero = lataaPelaajanTallennustiedosto();
                        break;
                    }
                }
                if (este == EsteenTyyppi.QUIT) {
                    System.exit(0);
                }
                /**
                 * Grafiikan päivitys
                 */
                this.ikkuna.repaint();
            }
            /**
             * Tason alu-
             */
            alustaTaso(tasonNumero);
        }
    }