Teilen des JS-nativen Quellcodes des Spiels 2048 (das Neueste im Internet)

Teilen des JS-nativen Quellcodes des Spiels 2048 (das Neueste im Internet)

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:
  • Natives JS zur Implementierung des Spiels 2048
  • AngularJS-Implementierung der 2048-Spielfunktion [mit Quellcode-Download]
  • 2048-Minispiel mit nativem JS schreiben
  • 2048-Spiel in Javascript geschrieben
  • 2048-Spiel mit Javascript schreiben
  • Javascript-Version des Spiels 2048

<<:  Detaillierte Erläuterung der ActiveMQ-Bereitstellungsmethode in der Linux-Umgebung

>>:  Optimieren Sie MySQL mit 3 einfachen Tricks

Artikel empfehlen

So halten Sie eine lange Verbindung aufrecht, wenn Sie den Nginx-Reverse-Proxy verwenden

· 【Szenenbeschreibung】 Nach HTTP1.1 unterstützt d...

Detaillierter Prozess der NTP-Serverkonfiguration unter Linux

Inhaltsverzeichnis 1. Umgebungskonfiguration 1.NT...

Vue realisiert einen dynamischen Fortschrittsbalkeneffekt

In diesem Artikelbeispiel wird der spezifische Co...

Verstehen Sie die Prinzipien und Anwendungen von JSONP in einem Artikel

Inhaltsverzeichnis Was ist JSONP JSONP-Prinzip JS...

So verwenden Sie worker_threads zum Erstellen neuer Threads in nodejs

Einführung Wie im vorherigen Artikel erwähnt, gib...

4 flexible SCSS-Kompilierungsausgabestile

Vielen Leuten wird das Kompilieren erklärt, sobal...

border-radius-Methode zum Hinzufügen abgerundeter Ränder zu Elementen

border-radius:10px; /* Alle Ecken sind mit einem ...

Analyse des Consul-Konfigurationsprozesses für die Docker-Bereitstellung

Befehl ausführen docker run -d --name consul -p 8...