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

Bereinigungsmethode für das Docker-Verzeichnis /var/lib/docker/aufs/mnt

Der Dienst des Unternehmens verwendet Docker und ...

Tutorial und Praxis zu den virtuellen Speichereinstellungen unter Linux

Was ist virtueller Speicher? Zunächst werde ich e...

el-table in vue realisiert automatischen Deckeneffekt (unterstützt feste)

Inhaltsverzeichnis Vorwort Umsetzungsideen Wirkun...

Die Magie des tr-Befehls beim Zählen der Häufigkeit englischer Wörter

Wir alle kennen den Befehl tr, mit dem Ersetzunge...

Verwenden von Zabbix zum Überwachen des Ogg-Prozesses (Windows-Plattform)

Dieser Artikel stellt vor, wie man das Ogg-Progra...

So verhindern Sie das Flashen von Vue in kleinen Projekten

Zusammenfassung HTML: Element plus V-Umhang CSS: ...

XHTML-Tutorial für die ersten Schritte: XHTML-Webseiten-Bildanwendung

<br />Das sinnvolle Hinzufügen von Bildern k...