Ich habe mich kürzlich mit Algorithmen beschäftigt und bin auf ein kleines Spiel gestoßen, das von Algorithmen gesteuert wird. Hier ist der Code für Sie: Wirkung: Code: <Kopf> <meta charset="UTF-8"> <meta name="viewport" content="width=360px,user-scalable=no" /> <title>2048 Minispiel</title> <Stil> Körper, h1, div, Tabelle, tr, td { Rand: 0px; Polsterung: 0px; } Körper{ Hintergrundfarbe: rgb(0,0,0); } h1{ Rand: 36px automatisch; Textausrichtung: zentriert; Farbe: rgba(255,255,255,0,7); Schriftfamilie: „楷体“; Schriftgröße: 48px; Textschatten: 1px 2px 3px rgb(134,134,134); } div{ Rand: 12px automatisch; Zeilenhöhe: 60px; } #Kasten{ Rand oben: -24px; Breite: 240px; Höhe: 60px; Textausrichtung: zentriert; Schriftstärke: fett; Farbe: RGB (255,255,255); } #box Eingabe{ Rand: 3px durchgezogen rgb(255,255,255); Rahmenradius: 4px; Kastenschatten: 1px 2px 3px rgb(234,234,234); } #box Eingabe:Fokus{ Gliederungsstil: keiner; } Tisch{ Rand: 24px automatisch; Rand: 3px durchgezogen rgb(255,255,255); Rahmenradius: 6px; } #zufällig,td{ Breite: 60px; Höhe: 60px; Rand: 2px durchgezogen rgb(255,255,255); Rahmenradius: 18px; Textausrichtung: zentriert; Schriftstärke: fett; Farbe: RGB (255,255,255); } td:hover{ Cursor: Zeiger; } </Stil> </Kopf> <Text> <h1>2 0 4 8</h1> <!-- Punktestand anzeigen und Button „Neues Spiel“ --> <div id="box"> Punktzahl: <span id="span">0</span> <input id="but" type="button" value="Neues Spiel" /> </div> <!-- Zufallszahl anzeigen --> <div id="zufällig"></div> <!-- Hauptlayout des Spiels --> <Tabellengrenze="3px"> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </Tabelle> </body> <Skripttyp="text/javascript"> var span = document.getElementById("span"); var aber = document.getElementById("aber"); var td = document.getElementsByTagName("td"); //Punktzahl definieren var score = 0; //Zufallszahl definieren var random = document.getElementById("random"); var showNums = [2,4,8,16,32,64,128,256,512,1024]; var showNum = 0; //Hintergrundfarben-Array definieren var colors = ["rgb(255, 169, 182)","rgb(108, 251, 104)","rgb(255, 150, 46)","rgb(255, 121, 46)","rgb(255, 217, 46)", "rgb(46, 200, 255)","rgb(46, 113, 255)","rgb(240, 46, 255)","rgb(46, 255, 175)","rgb(153, 134, 255)"]; // Initialisiere das Programm und generiere Zufallszahlen /* start */ Funktion init(){ var max = maxNum(); varnum = 0; für(var i=4;i > 0;i++){ wenn(max < Math.pow(2,i+1)){ num = parseInt(Math.random()*i); brechen; }sonst wenn(max < 2048){ weitermachen; }anders{ num = parseInt(Math.random()*showNums.length); brechen; } } random.innerHTML = zeigeNums[Anzahl]; Farbe (zufällig); showNum = showNums[Anzahl]; } init(); /* Ende */ //Holen Sie sich den maximalen Wert im Schachbrett / * Start * / Funktion maxNum(){ varmax = 0; für(var i=0;i<td.length;i++){ wenn(td[i].innerHTML == ""){ max = max; }anders{ wenn (parseInt(td[i].innerHTML) > max) { : max = parseInt(td[i].innerHTML); }anders{ max = max; } } } Rückgabewert max; } /* Ende */ //Hintergrundfarbe entsprechend der Nummer anzeigen /* start */ Funktion Farbe (Objekt) { für(var i=0;i < Farben.Länge;i++){ wenn(obj.innerHTML == Math.pow(2,i+1)){ obj.style = "Hintergrundfarbe: "+colors[i]+";"; brechen; } } } /* Ende */ //Merge-Algorithmus/* start */ Funktion offsetTop(obj,index){//Zusammenführen wenn(index > 3){ wenn(td[(index-4)].innerHTML == obj.innerHTML){ td[(index-4)].innerHTML = ""; td[(index-4)].style = "Hintergrundfarbe: rgba(0, 0, 0, 0);"; gibt true zurück; } } gibt false zurück; } Funktion offsetBottom(obj,index){//Zusammenführen wenn(index < 12){ wenn(td[(index+4)].innerHTML == obj.innerHTML){ td[(index+4)].innerHTML = ""; td[(index+4)].style = "Hintergrundfarbe: rgba(0, 0, 0, 0);"; gibt true zurück; } } gibt false zurück; } Funktion offsetLeft(obj,index){//Links zusammenführenwenn(index!=0 && index!=4 && index!=8 && index!=12){ wenn(td[(index-1)].innerHTML == obj.innerHTML){ td[(index-1)].innerHTML = ""; td[(index-1)].style = "Hintergrundfarbe: rgba(0, 0, 0, 0);"; gibt true zurück; } } gibt false zurück; } Funktion offsetRight(obj,index){//Rechts zusammenführenwenn(index!=3 && index!=7 && index!=11 && index!=15){ wenn(td[(index+1)].innerHTML == obj.innerHTML){ td[(index+1)].innerHTML = ""; td[(index+1)].style = "Hintergrundfarbe: rgba(0, 0, 0, 0);"; gibt true zurück; } } gibt false zurück; } /* Ende */ //Beurteilen Sie, ob die Zellen zusammengeführt sind/* start */ Funktion merge(Objekt,Index){ wenn(offsetTop(obj,index)){ wenn (offsetBottom(obj,index)) { wenn (OffsetLinks(Objekt,Index)) { wenn(OffsetRechts(Objekt,Index)){ obj.innerHTML = parseInt(obj.innerHTML)*2; //Oben, unten, links und rechts zusammenführen score += 16; zusammenführen(Objekt,Index); }anders{ obj.innerHTML = parseInt(obj.innerHTML)*2; //Nur oben, unten und links zusammenführen score += 8; zusammenführen(Objekt,Index); } }sonst wenn(OffsetRechts(Objekt,Index)){ obj.innerHTML = parseInt(obj.innerHTML)*2; //Nur oben, unten und rechts zusammenführen score += 8; zusammenführen(Objekt,Index); }anders{ obj.innerHTML = parseInt(obj.innerHTML)*2; //Nur die oberen und unteren Punktzahlen zusammenführen += 4; zusammenführen(Objekt,Index); } }sonst wenn(offsetLeft(obj,index)){ wenn(OffsetRechts(Objekt,Index)){ obj.innerHTML = parseInt(obj.innerHTML)*2; //Nur oben, links und rechts zusammenführen score += 8; zusammenführen(Objekt,Index); }anders{ obj.innerHTML = parseInt(obj.innerHTML)*2; // Nur die obere und linke Punktzahl zusammenführen += 4; zusammenführen(Objekt,Index); } }sonst wenn(OffsetRechts(Objekt,Index)){ obj.innerHTML = parseInt(obj.innerHTML)*2; //Nur die obere und rechte Punktzahl zusammenführen += 4; zusammenführen(Objekt,Index); }anders{ obj.innerHTML = parseInt(obj.innerHTML)*2; //Nur Zusammenführungsergebnis += 2; zusammenführen(Objekt,Index); } }sonst wenn(offsetBottom(obj,index)){ wenn (OffsetLinks(Objekt,Index)) { wenn(OffsetRechts(Objekt,Index)){ obj.innerHTML = parseInt(obj.innerHTML)*2; //Nur unten, links und rechts zusammenführen score += 8; zusammenführen(Objekt,Index); }anders{ obj.innerHTML = parseInt(obj.innerHTML)*2; // Nur die untere und linke Punktzahl zusammenführen += 4; zusammenführen(Objekt,Index); } }sonst wenn(OffsetRechts(Objekt,Index)){ obj.innerHTML = parseInt(obj.innerHTML)*2; // Nur die untere und rechte Punktzahl zusammenführen += 4; zusammenführen(Objekt,Index); }anders{ obj.innerHTML = parseInt(obj.innerHTML)*2; // Nur Zusammenführungsergebnis += 2; zusammenführen(Objekt,Index); } }sonst wenn(offsetLeft(obj,index)){ wenn(OffsetRechts(Objekt,Index)){ obj.innerHTML = parseInt(obj.innerHTML)*2; // Nur links und rechts zusammenführen score += 4; zusammenführen(Objekt,Index); }anders{ obj.innerHTML = parseInt(obj.innerHTML)*2; // Nur die linke Punktzahl zusammenführen += 2; zusammenführen(Objekt,Index); } }sonst wenn(OffsetRechts(Objekt,Index)){ obj.innerHTML = parseInt(obj.innerHTML)*2; // Nur die richtige Punktzahl zusammenführen += 2; zusammenführen(Objekt,Index); } } /* Ende */ //hauptsächlich /* Start */ Funktion gameOver(){ für(var i=0;i<td.length;i++){ wenn(td[i].innerHTML == ""){ brechen; } wenn(i == 15){ alert("Leider ist dieses Spiel vorbei …"); } } } /* Ende */ //hauptsächlich /* Start */ (Funktion(){ für(var i=0;i<td.length;i++){ var wähle = td[i]; wähle.index = i; wählen.onclick = function(){ wenn(dieses.innerHTML == ""){ dies.innerHTML = zeigeNum; zusammenführen(dies,dies.index); wenn(dieses.innerHTML >= 2048){ dies.innerHTML = ""; this.style = "Hintergrundfarbe: rgba(0, 0, 0, 0);"; } Farbe (diese); init(); } updateScore(); Spiel vorbei(); } } })(); /* Ende */ //Punktzahl aktualisieren /* start */ Funktion updateScore(){ wenn(Punktzahl > 500){ span.style = "Farbe: rgb(255,0,0)"; }sonst wenn(Punktzahl > 100){ span.style = "Farbe: rgb(255,0,255)"; }sonst wenn(Punktzahl > 50){ span.style = "Farbe: rgb(255,255,0)"; }sonst wenn(Punktzahl > 20){ span.style = "Farbe: rgb(0,0,255)"; }sonst wenn(Punktzahl > 10){ span.style = "Farbe: rgb(0,255,0)"; } span.innerHTML = Punktzahl; } /* Ende */ //Neues Spiel/*starten*/ aber.onclick = function(){ Standort.neu laden(); } /* Ende */ </Skript> </html> Dies ist das Ende dieses Artikels über das Teilen des Quellcodes des JS-nativen Spiels 2048. Weitere relevante Inhalte zum JS-Spiel 2048 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der ActiveMQ-Bereitstellungsmethode in der Linux-Umgebung
>>: Optimieren Sie MySQL mit 3 einfachen Tricks
· 【Szenenbeschreibung】 Nach HTTP1.1 unterstützt d...
Inhaltsverzeichnis 1. Umgebungskonfiguration 1.NT...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Erstellen von OAuth-Apps Holen...
Inhaltsverzeichnis Was ist JSONP JSONP-Prinzip JS...
Einführung Wie im vorherigen Artikel erwähnt, gib...
Bei der Optimierung einer Website müssen wir lern...
Dieser Artikel veranschaulicht anhand von Beispie...
Während der normalen Projektentwicklung, wenn die...
Vielen Leuten wird das Kompilieren erklärt, sobal...
Definition und Verwendung von „deaktiviert“ Das d...
border-radius:10px; /* Alle Ecken sind mit einem ...
Vorwort Aufgrund von Bandbreitenbeschränkungen un...
Befehl ausführen docker run -d --name consul -p 8...