JavaScript 2048 ゲームサンプルコード(シンプルでわかりやすい)_JavaScript スキル
早速、皆さんに向けてコードを直接投稿しますので、ご満足いただけましたら、そのままご利用ください。
<!DOCTYPE html PUBLIC "-//WC//DTD XHTML . Transitional//EN" "http://www.w.org/TR/xhtml/DTD/xhtml-transitional.dtd"> <html xmlns="http://www.w.org//xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-" /> <title>无标题文档</title> <style> header{display:block; margin: auto; width:%; text-align:center;} header h{font-size:px; font-family:Arial, Helvetica, sans-serif; font-weight:bold;} header #newgamebutton{display:block; margin:px auto; width:px; padding:px px; background-color:#fa; font-family:Arial; color:white; border-radius:px; text-decoration:none;} header #newgamebutton:hover{background-color:#fb;} header p{font-family:Arial; font-size:px; margin:px auto;} #grid-container{width:px; height:px; padding:px; margin:px auto; background-color:#bbada; border-radius:px; position:relative;} .grid-cell{width:px; height:px; border-radius:px; color:white; background-color:#cccb; position:absolute; font-family:Arial; font-weight:bold; font-size:px; line-height:px; text-align:center;} .gameover{display:block; margin: auto; width:px; text-align:center; vertical-align:middle; position:absolute;} .gameover p { font-family: Arial; font-size: px; color: white; margin: px auto; margin-top: px; } .gameover span { font-family: Arial; font-size: px; color: white; margin: px auto; } #restartgamebutton { display: block; margin: px auto; width: px; padding: px px; background-color: #fa; font-family: Arial; font-size: px; color: white; border-radius: px; text-decoration: none; } #restartgamebutton:hover { background-color: #fb; } #showGameover{width:px; padding:px px; background-color:#fa; font-family:Arial; color:white; border-radius:px; text-decoration:none; font-size:px; position:absolute;} </style> <script> window.onload = function (){ //newgame(); var showScore = document.getElementById('score'); score = ; init(); generateOneNumber(); generateOneNumber(); window.onkeydown = function (e){ var e = e || window.event; switch(e.keyCode){ case : if(canMoveLeft(board)){ moveLeft(); generateOneNumber(); isgameover(); } break; case : if(canMoveUp(board)){ moveUp(); generateOneNumber(); isgameover(); } break; case : if(canMoveRight(board)){ moveRight(); generateOneNumber(); isgameover(); } break; case : if(canMoveDown(board)){ moveDown(); generateOneNumber(); isgameover(); } break; default : break; } }; }; function generateOneNumber() { if(!nospace(board)){ var randx = parseInt(Math.floor(Math.random() * )); var randy = parseInt(Math.floor(Math.random() * )); while (true) { if (board[randx][randy] == ) { break; } var randx = parseInt(Math.floor(Math.random() * )); var randy = parseInt(Math.floor(Math.random() * )); } var randNumber = Math.random() < . ? : ; board[randx][randy] = randNumber; var gridCell = document.getElementById('grid-cell-'+randx+'-'+randy); gridCell.innerHTML = randNumber; // } else { gameover(); } } function newgame() { window.location.reload(); } var board = new Array(); function init(){ for(var i=;i<;i++){ board[i] = new Array(); for(var j=;j<;j++){ board[i][j] = ; var gridCell = document.getElementById('grid-cell-'+i+'-'+j); gridCell.style.top = (+i*)+'px'; gridCell.style.left = (+j*)+'px'; } } } function getNumberBackgroundColor(number) { switch (number) { case :return "#eeeda";break; case :return "#edec";break; case :return "#fb";break; case :return "#f";break; case :return "#fcf";break; case :return "#feb";break; case :return "#edcf";break; case :return "#edcc";break; case :return "#c";break; case :return "#be";break; case :return "#c";break; case :return "#ac";break; case :return "#c";break; } } function getNumberColor(number) { if (number <= ) { return "#e" } return "white"; } function nospace(board) { for (var i = ; i < ; i++) { for (var j = ; j < ; j++) { if (board[i][j] == ) { return false; } } } return true; } function canMoveLeft(board) { for (var i = ; i < ; i++) { for (var j = ; j < ; j++) { if (board[i][j] != ) { if (board[i][j - ] == || board[i][j - ] == board[i][j]) {return true; } } } } return false; } function moveLeft() { for (var i = ; i < ; i++) { for (var j = ; j < ; j++) { if (board[i][j] != ) { for (var k = j-; k > -; k--) { if(board[i][k] == || board[i][k] == board[i][j]){ board[i][k] = board[i][k] + board[i][j]; board[i][j] = ; var gridCell = document.getElementById('grid-cell-'+i+'-'+j); gridCell.innerHTML = ''; var gridCellk = document.getElementById('grid-cell-'+i+'-'+k); gridCellk.innerHTML = board[i][k]; gridCellk.style.backgroundColor = getNumberBackgroundColor(board[i][k]); gridCell.style.backgroundColor = '#cccb'; gridCellk.style.color = getNumberColor(board[i][k]); gridCell.style.color = 'white'; score += board[i][k]; var showScore = document.getElementById('score'); showScore.innerHTML = score; j = k; // } else { break; //跳出 var k 的for循环 } } } } } } function canMoveUp(board) { for (var j = ; j < ; j++) { for (var i = ; i < ; i++) { if (board[i][j] != ) { if (board[i - ][j] == || board[i - ][j] == board[i][j]) {return true; } } } } return false; } function moveUp() { for (var j = ; j < ; j++) { for (var i = ; i < ; i++) { if (board[i][j] != ) { for (var k = i-; k > -; k--) { if(board[k][j] == || board[k][j] == board[i][j]){ board[k][j] = board[k][j] + board[i][j]; board[i][j] = ; var gridCell = document.getElementById('grid-cell-'+i+'-'+j); gridCell.innerHTML = ''; var gridCellk = document.getElementById('grid-cell-'+k+'-'+j); gridCellk.innerHTML = board[k][j]; gridCellk.style.backgroundColor = getNumberBackgroundColor(board[k][j]); gridCell.style.backgroundColor = '#cccb'; gridCellk.style.color = getNumberColor(board[i][k]); gridCell.style.color = 'white'; score += board[k][j]; var showScore = document.getElementById('score'); showScore.innerHTML = score; i = k; // } else { break; //跳出 var k 的for循环 } } } } } } function canMoveRight(board) { for (var i = ; i < ; i++) { for (var j = ; j > -; j--) { if (board[i][j] != ) { if (board[i][j + ] == || board[i][j + ] == board[i][j]) {return true; } } } } return false; } function moveRight() { for (var i = ; i < ; i++) { for (var j = ; j > -; j--) { if (board[i][j] != ) { for (var k = j+; k < ; k++) { if(board[i][k] == || board[i][k] == board[i][j]){ board[i][k] = board[i][k] + board[i][j]; board[i][j] = ; var gridCell = document.getElementById('grid-cell-'+i+'-'+j); gridCell.innerHTML = ''; var gridCellk = document.getElementById('grid-cell-'+i+'-'+k); gridCellk.innerHTML = board[i][k]; gridCellk.style.backgroundColor = getNumberBackgroundColor(board[i][k]); gridCell.style.backgroundColor = '#cccb'; gridCellk.style.color = getNumberColor(board[i][k]); gridCell.style.color = 'white'; score += board[i][k]; var showScore = document.getElementById('score'); showScore.innerHTML = score; j = k; // } else { break; //跳出 var k 的for循环 } } } } } } function canMoveDown(board) { for (var j = ; j < ; j++) { for (var i = ; i > -; i--) { if (board[i][j] != ) { if (board[i + ][j] == || board[i + ][j] == board[i][j]) {return true; } } } } return false; } function moveDown() { for (var j = ; j < ; j++) { for (var i = ; i > -; i--) { if (board[i][j] != ) { for (var k = i+; k < ; k++) { if(board[k][j] == || board[k][j] == board[i][j]){ board[k][j] = board[k][j] + board[i][j]; board[i][j] = ; var gridCell = document.getElementById('grid-cell-'+i+'-'+j); gridCell.innerHTML = ''; var gridCellk = document.getElementById('grid-cell-'+k+'-'+j); gridCellk.innerHTML = board[k][j]; gridCellk.style.backgroundColor = getNumberBackgroundColor(board[k][j]); gridCell.style.backgroundColor = '#cccb'; gridCellk.style.color = getNumberColor(board[i][k]); gridCell.style.color = 'white'; score += board[k][j]; var showScore = document.getElementById('score'); showScore.innerHTML = score; i = k; // } else { break; //跳出 var k 的for循环 } } } } } } function isgameover() { if (nospace(board) && nomove(board)) { gameover(); } } function nomove(board) { if (canMoveDown(board) || canMoveLeft(board) || canMoveRight(board) || canMoveUp(board)) { return false; } return true; } function bounce(obj,top){ clearInterval(obj.timer); var nSpeed = ; var acceleration = ; var Flag = ; obj.timer = setInterval(function (){ nSpeed += acceleration; nSpeed *= .; if(obj.offsetTop + nSpeed >= top){ obj.style.top = top + 'px'; nSpeed *= -; }else{ if(Math.abs(nSpeed) < && Math.abs(top-obj.offsetTop)<){ clearInterval(obj.timer); } else{ obj.style.top = obj.offsetTop + nSpeed + 'px'; } } },); } function gameover() { //alert("gameover!"); var gameover = document.createElement('div'); gameover.id = 'showGameover'; gameover.innerHTML = 'GAME OVER'; var gridContainer = document.getElementById('grid-container'); gridContainer.appendChild(gameover); var showGameover = document.getElementById('showGameover'); showGameover.style.left = (gridContainer.offsetWidth - showGameover.offsetWidth ) / + 'px'; bounce(showGameover,); } </script> </head> <body> <header> <!--<h> </h>--> <a href="javascript:newgame();" id="newgamebutton"> New Game </a> <p> score: <span id="score"></span></p> <div id="grid-container"> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> <div class="grid-cell" id="grid-cell--"></div> </div> </header> </body> </html>
上記のコードには非常に満足しています。これはすべて div+css の知識に関するものです。コードに問題がある場合は、貴重な意見を提供して一緒に学び、進歩してください。また、スクリプトハウスのウェブサイトをご支援いただき、誠にありがとうございます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
