Mathematik – die neusten Beiträge

Dringend Hilfe: Java Code?

Kann jemand mir diese Java-Code erklären? Ich komme mit dem Code nicht zurecht. Wie kann man noch einfacher schreiben?

Die Aufgabenstellung: Verwenden Sie die Bit-Operationen von Java, um den Zustand einer Zelle des Spielfeldes in jeweils zwei Bits der int-Variablen abzulegen (warum gerade zwei?). 

/**
 * Write a description of class SpielfeldInteger here.
 */

public class SpielfeldInteger implements Spielfeld
{
    private int spielInt;


    /**
     * Initialisiert ein neues, leeres Spielfeld.
     */

    public SpielfeldInteger() {
        spielInt = 0x00000;//2AAAA
        // 0000 0000 0000 0000 0000;
    }


    /**
     * Gibt den Besitzer der angegebenen Position auf dem Spielfeld.
     *
     * @param zeile  vertikale Position (0-2)
     * @param spalte horizontale Position (0-2)
     * @return 0 (unbesetzt), 1 (Spieler 1), 2 (Spieler 2)
     */

    public int gibBesitzer(int zeile, int spalte) {
        int schiebung = (zeile*3*2)+(spalte*2);
        int geschobenerInt = spielInt>>>schiebung;

        //System.out.println(Integer.toBinaryString(geschobenerInt));     
        //System.out.println((geschobenerInt&3));

        if((geschobenerInt&3) == 2) {
            return 1;

        } else if((geschobenerInt&3) == 3) {
            return 2;

        } else {
            return 0;
        }
    }

 

    /**
     * Besetzt die angegebene Position auf dem Spielfeld fuer einen Spieler.
     *
     * @param zeile   vertikale Position (0-2)
     * @param spalte  horizontale Position (0-2)
     * @param spieler 0 (leer), 1 (Spieler 1), 2 (Spieler 2)
     */

    public void besetzePosition(int zeile, int spalte, int spieler) {

        int setzung;

        if(spieler == 1 || spieler == 2) {
            setzung = (spieler+1)<<(zeile*3*2)+(spalte*2);
            spielInt = spielInt|setzung;
        }

        else if(spieler == 0) {
            setzung = ~(3<<(zeile*3*2)+(spalte*2));
            spielInt = spielInt&setzung;
        }    
    }

 

    /**
     * Gibt an, ob das Spielfeld an allen Positionen belegt ist.
     */

    public boolean istVoll() {
        return ((spielInt&0x2AAAA) == 0x2AAAA);
    }
}
Mathematik, programmieren, Java, Informatik, Softwareentwicklung, Wirtschaftsinformatik

Meistgelesene Beiträge zum Thema Mathematik