private int testaaPisteXAkselilla(int nopeus) {

        // Iteraattori
        int xTestattava = 0;
        
        // Suunnan apumuuttuja
        int suunta;
        
        // Koodia selkeyttävä apumuuttuja
        int absNopeus = xNopeus;

        if (xNopeus > 0) {
            /* Emme käytä xSuuntaa, koska jos pelaaja haluaa liikkua oikealle
             * ja törmää vasemmalta puolelta seinään ennen kuin vauhti on nolla,
             * hahmo uppoaisi seinään. Sen sijaan kehitämme hahmon inertian 
             * suunnalle oman näppärän apumuuttujan.
             */
            suunta = 1;
        } else if (xNopeus < 0) {
            // Suunnan määrittämisen takia emme käyttäneet math.absia            
            absNopeus = Math.abs(xNopeus);
            suunta = -1;
        } else {
            // Hahmon ollessa paikallaan palautamme nollan. duh!
            return 0;
        }

        /* Koska kivitaulussa lukee, että hahmon leveys on 24 pixeliä, ja
         * meitä ei kiinnosta hahmon sisällä mahdollisesti majailevat esteet,
         */
        Piste p0 = new Piste(this.getX() + 12 * suunta, this.getY());

        int esteenKorkeus = 0;

        while (xTestattava < absNopeus) {
            esteenKorkeus = testaaPystyrivi(p0);
            if (esteenKorkeus > 0) {
                break;
            }
            p0.siirra(suunta, 0);
            xTestattava++;
        }
        p0.setX(this.getX() + 12 * suunta);
        if (esteenKorkeus > 0) {
            /* Erikoistapaus jossa hahmon kohtaama este on 2px korkea.
             * Eli pelaaja pääsee yli matalista esteistä hyppäämättä.
             */
            if (esteenKorkeus < 3) {
                this.yNopeus = -2;
            } else {
                /* Jos este löytyy ja on korkea, hahmo pysähtyy kuin
                 *              ...seinään
                 */

                xNopeus = 0;
            }
        }
        return (xTestattava - 1) * suunta;
    }