1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Schiebepuzzle

  • heartbeat
  • 25. Juli 2012 um 20:06
  • Unerledigt
  • heartbeat
    3
    heartbeat
    Mitglied
    Punkte
    80
    Beiträge
    11
    • 25. Juli 2012 um 20:06
    • #1

    Hallo,

    ich habe eine Zwischenfrage zu folgendem Programm:
    Und zwar möchte ich ein Schiebepuzzle erstellen. Es hat anfangs das Format 4 x 4. In einer Selectbox stehen 3 weitere Formatauswahlen zur Verfügung.
    Ich komm leider nicht darauf wie ich das Format ändern kann, wenn in der Selectbox ein anderes ausgewählt wird.

    Die 2. Frage ist: Während die Seite lädt, sollen die img-Elemente mit einem leeren Bild belegt werden (leer.jpg).
    Nach dem Laden soll dieses leere Bild mit der richtigen Bilddatei ersetzt werden. Also muss natürlich src geändert werden.
    Ich brauche sicher ein globales Array, dass (bei 0.jpg - 14.jpg, leer.jpg) die Nummern der Bilder bzw. 'leer' speichert.
    Leider haben jegliche Versuche bisher nicht funktioniert.

    Ich wäre sehr dankbar für eure Hilfe.

    Ich habe bisher folgenden Code:

    HTML
    <body>
        <div id="puzzle"></div>
        <script language="JavaScript">
            init("puzzle");
        </script>
    </body>

    JavaScript-Code

    PHP
    //Die Größe des Puzzles:
    puzzlegroesse = 4;
    //Anzeigegröße eines Feldes:
    anzeigegroesse = 50;
    id = "";
    var bilder = [];
    
    
    function init(DivID) {
        id = DivID
        genFeld();
        paintFeld();
    }
    
    
    //Funktion, die einem das 2-dimensionale Array baut:
    function genFeld() {
        feld = new Array(puzzlegroesse);
        for (var zeile = 0; zeile < puzzlegroesse; zeile++) {
            feld[zeile] = new Array(puzzlegroesse);
            for (spalte = 0; spalte < puzzlegroesse; spalte++) {
                //Jetzt dem Feld in Zeile 'zeile' und Reihe 'spalte' seine Zahl zuweisen
                // (am Anfang noch sortiert)
                feld[zeile][spalte] = (zeile * puzzlegroesse) + spalte;
            }
        }
        //Das letzt muß natürlich leer sein, sonst machts keinen Spaß (-1 soll für ein leeres Feld stehen)
        feld[puzzlegroesse-1][puzzlegroesse-1] = -1;
    }
    
    
    //Malt das Spielfeld, in dem es die Zahlen aus dem zweidimensionalen Array 'feld' ausliest
    function paintFeld() {
        //Jetzt nach und nach den Text zusammenbauen, der am Ende in die Seite eingefügt werden soll:
        spielfeld = '<p><select id="format" size="1"><option id="format1">3 x 3</option><option value="2">3 x 4</option>';
        spielfeld += '<option value="3">4 x 3</option><option value="4" selected>4 x 4</option>';
        spielfeld += '</select></p>';
        spielfeld  += '<table cellspacing="0px" cellpadding="0px" border="1px">\n';
    
        for (var zeile = 0; zeile < puzzlegroesse; zeile++) {
            //der Anfang einer Tabellenzeile:
            spielfeld += '<tr>';
            for (spalte = 0; spalte < puzzlegroesse; spalte++) {
                //Jetzt wird eine einzelne Tabellenzelle gemalt, also quasi ein Puzzleteil:
                spielfeld += '<td onClick="move(' + zeile + ',' + spalte + ')" align="center" valign="center" width="'+anzeigegroesse + 'px" height="' + anzeigegroesse + 'px">';
                //Die -1 steht ja für das leere Feld, da soll keine Zahl (&nbsp;) im Feld stehen:
                if (feld[zeile][spalte] >= 0) {
                    //bilder[zeile][spalte].src
                    spielfeld += '<img id="bild" src=Puzzleteile/images/' + feld[zeile][spalte] + '.jpg/>'
                } else {
                    spielfeld += '&nbsp;';
                }
                spielfeld += '</td>';
            }
            //Das Ende der Tabellenzeile:
            spielfeld += '</tr>\n';
        }
    
        spielfeld += '</table>';
    
        document.getElementById(id).innerHTML = spielfeld;
    }
    
    
    function move(zeile,spalte) {
    
    }
    Alles anzeigen

    3 Mal editiert, zuletzt von heartbeat (25. Juli 2012 um 22:47)

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung