2048 Minispiel, zu Ihrer Information, der spezifische Inhalt ist wie folgt Zunächst einmal kann das Spiel 2048 nicht von 16 Gittern getrennt werden. Wir erstellen die entsprechenden Tags und Stile über HTML und CSS und starten dann die JS-Logik <div id="box">//16 kleine Divs in einer Box <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> <div id="Sohn"></div> </div> Stellen Sie den entsprechenden Stil ein: (nur als Referenz) #Kasten{ Breite: 450px; Höhe: 450px; Hintergrundfarbe: braun; Anzeige: Flex; Flex-Wrap: Umwickeln; Inhalt ausrichten: gleichmäßiger Abstand; Rand: 1px durchgezogen #000; Rand: 100px automatisch; Rahmenradius: 10px; } div>div{ Rand oben: 5px; Breite: 100px; Höhe: 100px; Rahmenradius: 5px; Hintergrundfarbe: Biskuit; Textausrichtung: zentriert; Zeilenhöhe: 100px; Schriftgröße: 40px; } Die Wirkung ist wie folgt: Dann beginnt der eigentliche JS-Teil. Verwenden Sie zunächst den CSS-Selektor, um alle kleinen Raster-Divs abzurufen. var divs = document.querySelectorAll('[id == Sohn]'); Erstellen Sie dann ein zweidimensionales Array, um die DOM-Objekte dieser 16 kleinen Raster-Divs zu empfangen var arr = [[],[],[],[]]; var a = 0; für(var i=0;i < 4; i++){ für(var j=0; j < 4; j++){ arr[i][j] = divs[a]; ein++; } } Dies bildet die i- und j-Achse: Dies erleichtert unseren späteren mobilen Einsatz Nun schreiben wir ein Programm, dass aus den 16 Zellen per Zufallsprinzip eine Zufallszahl 2 und 4 generiert und diese in eine leere Zelle einträgt. Wir rufen es später auf! function sj(){ //Zufallszahlen generieren var a = Math.floor(Math.random() * 4); var b = Math.floor(Math.random() * 4); wenn(arr[a][b].innerHTML == ""){ wenn(Math.random()>0.5){ arr[a][b].innerHTML = 2; }anders{ arr[a][b].innerHTML = 4; } }else{ //Wenn das Raster nicht leer ist, führen wir die Funktion sj() aus; } } Die Zweite ist die Funktion, um festzustellen, ob das Spiel vorbei ist: Das Spiel endet, wenn alle Werte des Rasters nicht leer sind! (Später aufgerufen) function js(){ //Ist das Spiel vorbei? var bool = true; für(var i=0;i < 4; i++){ für(var j=0; j < 4; j++){ wenn(arr[i][j].innerHTML == ""){ bool = falsch; }anders{ } } } wenn(bool){ Alarm("Spiel vorbei"); für(var i=0;i < 4; i++){ für(var j=0; j < 4; j++){ arr[i][j] = null; } } } } Dann schreiben wir Funktionen, die durch Drücken der Auf-, Ab-, Links- und Rechts-Tasten ausgeführt werden sollen: Nehmen wir als Beispiel das Drücken der Aufwärtstaste: ①Wenn die obere Zahl leer und die untere Zahl nicht leer ist, werden die oberen und unteren Werte vertauscht. function downtop(){ //Funktion wird durch Drücken der Taste „nach oben“ ausgeführt for(var i=0;i < 4; i++){ für(var j=0; j < 4; j++){ wenn(arr[i][j].innerHTML == "" && i<3 &&arr[i+1][j].innerHTML != ""){ arr[i][j].innerHTML = arr[i+1][j].innerHTML ; arr[i+1][j].innerHTML = ""; downtop(); // Ausführen, wenn die Bedingung erfüllt ist // Wenn sie nicht erfüllt ist, wird die if-Anweisung nicht ausgeführt }else if(i<3&&arr[i][j].innerHTML !="" && arr[i+1][j].innerHTML !="" &&arr[i][j].innerHTML == arr[i+1][j].innerHTML){ arr[i][j].innerHTML = 2*arr[i+1][j].innerHTML; arr[i+1][j].innerHTML = ""; }anders{ } } } } Ebenso müssen Sie nur (einige Parameter) ändern, um die Logik der anderen 3 Schlüssel zu vervollständigen: Funktion downbottom(){ für(var i=3 ;i > 0 ; i--){ für(var j=0; j < 4; j++){ wenn(arr[i-1][j].innerHTML != "" && i>0 &&arr[i][j].innerHTML == "" ){ arr[i][j].innerHTML = arr[i-1][j].innerHTML ; arr[i-1][j].innerHTML = ""; unten unten(); } sonst wenn (arr[i-1][j].innerHTML !=""&& arr[i][j].innerHTML !="" && i>0 &&arr[i-1][j].innerHTML == arr[i][j].innerHTML){ arr[i][j].innerHTML = 2*arr[i-1][j].innerHTML; arr[i-1][j].innerHTML = ""; } } } } Funktion untenlinks(){ für(var i=0;i < 4; i++){ für(var j=0; j < 4; j++){ wenn(arr[i][j].innerHTML == "" && j<3 &&arr[i][j+1].innerHTML != ""){ arr[i][j].innerHTML = arr[i][j+1].innerHTML ; arr[i][j+1].innerHTML = ""; unten links(); }sonst wenn( j<3&& arr[i][j].innerHTML !=""&& arr[i][j+1].innerHTML !="" &&arr[i][j].innerHTML == arr[i][j+1].innerHTML){ arr[i][j].innerHTML = 2*arr[i][j+1].innerHTML; arr[i][j+1].innerHTML = ""; } } } } Funktion geradeheraus(){ für(var i=0;i < 4; i++){ für(var j = 3 ;j > 0; j--){ wenn(j > 0 && arr[i][j].innerHTML == ""&&arr[i][j-1].innerHTML != ""){ arr[i][j].innerHTML = arr[i][j-1].innerHTML ; arr[i][j-1].innerHTML = ""; geradezu(); }sonst wenn( j>0 && arr[i][j].innerHTML !=""&& arr[i][j-1].innerHTML !="" &&arr[i][j].innerHTML == arr[i][j-1].innerHTML){ arr[i][j].innerHTML = 2*arr[i][j-1].innerHTML; arr[i][j-1].innerHTML = ""; } } } } Fügen Sie für unterschiedliche Werte unterschiedliche Hintergrundfarben hinzu: (optional) Funktion Farbe(){ für(var i=0;i < 4; i++){ für(var j=0; j < 4; j++){ Schalter(arr[i][j].innerHTML){ Fall "": arr[i][j].style.backgroundColor = "bisque";Pause; Fall "2": arr[i][j].style.backgroundColor = "rot";break; Fall "4": arr[i][j].style.backgroundColor = "orange";unterbrechen; Fall "8": arr[i][j].style.backgroundColor = "gelb";unterbrechen; Fall "16": arr[i][j].style.backgroundColor = "grün";break; Fall "32": arr[i][j].style.backgroundColor = "blau";unterbrechen; Fall "64": arr[i][j].style.backgroundColor = "#000";unterbrechen; Fall "128": arr[i][j].style.backgroundColor = "aqua";unterbrechen; Fall "256": arr[i][j].style.backgroundColor = "pink";unterbrechen; } } } } Richten Sie dann Tastaturüberwachungsereignisse für das gesamte Fenster ein: Schlüsselcode: 38 Fenster.onkeydown = Funktion(e){ Schalter(e.Schlüsselcode){ Fall 37: downleft(); sj(); color(); js(); break; //links Fall 38: downtop(); sj(); color(); js(); break; //groß Fall 39: downright(); sj(); color(); js(); break; //rechts Fall 40: downbottom(); sj(); color(); js(); break; //unten} } sj(); //Das Spiel beginnt mit zwei Standardzahlen sj(); Das einfache 2048-Spiel ist fertig! Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So konfigurieren Sie SSH/SFTP und legen Berechtigungen unter dem Linux-Betriebssystem fest
>>: Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort vergessen?
Hier sind 30 Best Practices für HTML-Anfänger. 1....
Zabbix Server-Umgebungsplattform Version: ZABBIX ...
Inhaltsverzeichnis 1. Im Hintergrund laufende Job...
Umgebungsvorbereitung Docker-Umgebung MySQL 5.7 (...
Als ich kürzlich an Überwachungsgeräten arbeitete...
Die Frage wird hier zitiert: https://www.zhihu.co...
Was ist HTTP? Wenn wir eine Website durchsuchen m...
Inhaltsverzeichnis Definition Die Rolle des Curso...
SpringBoot ist wie eine riesige Python, die sich ...
Inhaltsverzeichnis Vorwort Installieren Einführun...
Nachfrage: Diese Nachfrage ist ein dringender Bed...
Die goldene Regel Unabhängig davon, wie viele Per...
Linux ist ein offenes System. Im Internet sind vi...
In diesem Artikel wird der spezifische Code von j...
Es gibt zwei gängige Möglichkeiten, den Div-Hinte...