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
Inhaltsverzeichnis 1. Übersicht 1.1 Verwendung vo...
Inhaltsverzeichnis 1. Grundlegende Theorie 1.1 Tr...
Windows: Unterstützt NTFS, FAT Linux unterstützt ...
Inhaltsverzeichnis 1 Systemeinführung 2 Systemver...
Beim Schreiben eines Webprojekts stieß ich auf ei...
DNS (Domain Name Server) ist ein Server, der Domä...
Was wäre, wenn Ihre Designer die folgende Schrift...
Inhaltsverzeichnis 1. Was ist eine Veranstaltung?...
Ich habe vor Kurzem Docker gelernt und stoße dabe...
In diesem Artikel finden Sie das ausführliche Ins...
Problembeschreibung: Beim Ausführen eines Befehls...
MySQL ist ein relationales Datenbankverwaltungssy...
Inhaltsverzeichnis Vorwort 1. Einfügen von ignore...
Wenn Sie Alibaba Cloud Server verwenden, müssen S...
Inhaltsverzeichnis 1. Maven-Abhängigkeit 2. Menüb...