この記事では、JS オブジェクト指向でジグソーパズルを実装する方法を主に紹介します。編集者が非常に優れていると考えたので、参考として共有します。エディターと一緒に見に来てください
1. HTMLコード
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>拼图小游戏</title> <style> body,td { margin:0; padding:0; } #begin { display:block; margin:20px auto; } table { margin:80px auto; background:#fff; border:10px solid pink; } td { width:100px; height:100px; border:1px solid #ccc; cursor:pointer; background:url(img.jpg) no-repeat; } </style> <script src="js.js"></script> <script> window.onload = function(){ var thisGame = new PinTuGame('begin'); } </script> </head> <body> <button id="begin">开始</button> </body> </html>
2. jsコード
function PinTuGame(id){ var that = this; this.oBtn = document.getElementById(id); this.oTable = document.createElement('table'); this.oTbody = document.createElement('tbody'); this.aTd = null; this.aTdMsg = []; //用于存储每个图片的信息 this.num = 0; //用于判断拼图是否完成 this.oTable.cellSpacing = '0'; this.createElem(); //初始化游戏界面 this.oBtn.onclick = function(){ for(var i = 0; i<that.aTd.length; i++){ that.aTd[i].style.opacity = 1; } this.innerHTML = '重新开始'; that.aTd[that.aTd.length-1].style.opacity = 0; var iAlpha = 100; var sp = -10; var timer = setInterval(function(){ iAlpha += sp; that.oTbody.style.opacity = iAlpha / 100; if(iAlpha <=0) { sp = -sp; that.randomElem();} if(iAlpha > 100) {clearInterval(timer) }; },15); that.beginGame(); } } PinTuGame.prototype = { //初始化游戏界面 createElem: function(){ for(var i =0; i<4; i++){ var oTr = document.createElement('tr'); for(var j =0; j<4; j++){ var oTd = document.createElement('td'); this.num ++; var tdMsg = { seq: this.num, bgPosition: -100*j+'px '+ -100*i+'px' }; this.aTdMsg.push(tdMsg); oTr.appendChild(oTd); } this.oTbody.appendChild(oTr); } this.oTable.appendChild(this.oTbody); document.body.appendChild(this.oTable); this.aTd = this.oTbody.getElementsByTagName('td'); for(var i = 0; i<this.aTd.length; i++){ this.aTd[i].json = this.aTdMsg[i]; this.aTd[i].style.backgroundPosition = this.aTd[i].json.bgPosition; } }, randomElem: function(){ //随机排序图片 this.aTdMsg.sort(function (){ return Math.random()-0.5; }); for(var i=0;i<this.aTd.length;i++){ this.aTd[i].json = this.aTdMsg[i]; this.aTd[i].style.backgroundPosition = this.aTd[i].json.bgPosition; } }, beginGame: function(){ //开始游戏 var that = this; var rows = this.oTbody.rows; for(var i =0; i<4; i++){ for(var j =0; j<4; j++){ rows[i].cells[j].Y = i; rows[i].cells[j].X = j; rows[i].cells[j].onclick = function(){ var arr = [ //获取该图片的上右下左,四个方向的坐标 [this.Y-1, this.X], [this.Y, this.X+1], [this.Y+1, this.X], [this.Y, this.X-1] ]; for(var i = 0; i<arr.length; i++){ if( arr[i][0]<0 || arr[i][1]<0 || arr[i][0]>3 || arr[i][1]>3)continue; if( rows[arr[i][0]].cells[ arr[i][1] ].style.opacity == '0' ){ rows[arr[i][0]].cells[ arr[i][1] ].style.opacity = 1; this.style.opacity=0; //与隐藏的td交换json对象 var thisJson = this.json; this.json = rows[arr[i][0]].cells[ arr[i][1]].json; rows[arr[i][0]].cells[arr[i][1]].json = thisJson; //与隐藏的td交换bakcground-position this.style.backgroundPosition=this.json.bgPosition; rows[arr[i][0]].cells[arr[i][1]].style.backgroundPosition=rows[arr[i][0]].cells[arr[i][1]].json.bgPosition; } } that.checkWin(); }; } } }, checkWin: function(){ //检测游戏是否完成 var aJson = []; for(var i = 0; i<this.aTd.length; i++){ aJson.push(this.aTd[i].json.seq); } for(var i = 0; i<aJson.length-1; i++){ if(aJson[i]>aJson[i+1])return; } for(var i = 0; i<this.aTd.length; i++){ this.aTd[i].style.opacity = 1; } alert('恭喜,胜利啦!'); location.reload(); } }
2. ゲーム画像素材
以上がJSオブジェクト指向でジグソーパズルを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

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

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

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
