搜尋
首頁web前端js教程怎麼使用vue實現2048小遊戲

這次為大家帶來怎樣使用vue實現2048小遊戲,使用vue實現2048小遊戲的注意事項有哪些,下面就是實戰案例,一起來看一下。

使用方法:

git clone
npm i
npm run dev

實作想法如下:

  1. 用vue-cli搭建項目,對這個項目可能有點笨重,但是也懶的再搭一個

  2. 4X4的方格用一個二維數組存放,綁定好後只關心這個二維數組,其他事交給vue

  3. 監聽鍵盤事件

  4. #2048的核心部分就是移動合併的演算法,因為是4X4的矩陣,所以只要實現左移的演算法,其他方向的移動只需要將矩陣旋轉,移動合併,再旋轉回來,渲染dom即可

  5. ##綁定不同數值的樣式

  6. 分數計算,以及用localstorage存放最高分

#關鍵實作

##DOM

<p>
  </p><p>
    </p><p>{col}}</p>
  

主要的遊戲部分的DOM,很簡單,用一個二維數組渲染,並動態綁定樣式

左移

主要由以下幾種情況:

    2 2 2 2 => 4 4 0 0
  • 4 2 2 2 => 4 4 2 0
  • 0 4 2 2=> 4 4 0 0
  • 2 2 4 2 => 4 4 2 0
  • 按單行資料舉例,

    遍歷單行數組,若有數據,記為cell,尋找cell往左可移到的最遠空位置farthest
  1. 判斷farthest的左邊是否存在,不存在則直接移到到farthest
  2. 若存在,則判斷farthest - 1的值和cell是否相同
  3. 相同=> 合併
  4. ##不同=>移到farthest位置
  5. 移動完後,清空cell
  6. 下一輪
  7. ##因為一輪移動中,一個數字只能合併一次,所以每個格子要有merged參數來記錄是否已經合併過。

  8. 主要代碼:
_list.forEach(item => {
    let farthest = this.farthestPosition(list, item)
    let next = list[farthest - 1]
    if (next && next === item.value && !_list[farthest - 1].merged) {
      //合并
      list[farthest - 1] = next * 2
      list[item.x] = undefined
      item = {
        x: farthest - 1,
        merged: true,
        value: next * 2
      }
      this.score += next * 2
    } else {
      if (farthest != item.x) {
        list[farthest] = item.value
        list[item.x] = undefined
        item.x = farthest
      }
    }
  })

矩陣旋轉

#因為上移,下移,左移,右移實際上是相同的,寫4遍也可以,但是容易出錯,所以我直接旋轉將矩陣旋轉,再進行移動。 以上移為例,只要將矩陣逆時針旋轉一次,上移就變成了左移,移動合併成之後,只要再將矩陣逆時針旋轉4-1次,矩陣就和單純上移一樣了。

逆時針旋轉演算法:

rotate(arr, n) {
    n = n % 4
    if (n === 0) return arr
    let tmp = Array.from(Array(this.size)).map(() => Array(this.size).fill(undefined))
    for (let i = 0; i  1) tmp = this.rotate(tmp, n - 1)
    return tmp
  },

到這時候已經完成了80%了,只要再完善一下,加入分數,重新開始等功能就可以了。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

如何操作Vue內使用vee-validate

node跨域使用express http-proxy- middleware步驟詳解

#

以上是怎麼使用vue實現2048小遊戲的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
详解:Windows 10是否内置了扫雷小游戏详解:Windows 10是否内置了扫雷小游戏Dec 23, 2023 pm 02:07 PM

我们在使用win10操作系统的时候,想要知道win10更新了之后是不是还保存有以前老版本中的自带游戏扫雷,据小编所知,我们可以在商店中进行下载安装,只要在商店中搜索microsoftminesweeper即可。具体步骤就来和小编一起看一下吧~windows10有扫雷游戏吗1,首先打开win10开始菜单,点击。然后搜索,点击搜索。2,点击排在第一位的。3,然后就可能需要输入微软账户,即Microsoft账户。没有Microsoft账户的可以安装提示注册即可。输入账户密码,点击下一步。4,然后开始下

如何在PHP中实现SEO优化如何在PHP中实现SEO优化May 20, 2023 pm 01:30 PM

随着互联网的发展,SEO(SearchEngineOptimization,搜索引擎优化)已经成为了网站优化的重要一环。如果您想要使您的PHP网站在搜索引擎中获得更高的排名,就需要对SEO的内容有一定的了解了。本文将会介绍如何在PHP中实现SEO优化,内容包括网站结构优化、网页内容优化、外部链接优化,以及其他相关的优化技巧。一、网站结构优化网站结构对于S

win10系统的小游戏扫雷在哪里win10系统的小游戏扫雷在哪里Jul 02, 2023 pm 03:37 PM

  win10系统的小游戏扫雷在哪里?很多用户在使用Win7系统的时候最喜欢玩的就是Win7自带的扫雷了,甚至有些小伙伴会为了比拼扫雷的速度一直在玩。但是不少用户在升级了Windows10系统后发现电脑的扫雷不见了,很多小伙伴不知道怎么详细操作,小编下面整理了Win10扫雷小游戏的位置分享,如果你感兴趣的话,跟着小编一起往下看看吧!  Win10扫雷小游戏的位置分享  1,首先打开win10开始菜单,点击【应用商店】。然后搜索【microsoftminesweeper】,点击搜索。  2,点击排

如何在谷歌浏览器中游玩小游戏如何在谷歌浏览器中游玩小游戏Jan 30, 2024 pm 12:39 PM

谷歌浏览器怎么玩小游戏?谷歌浏览器之中是有着非常多充满人文关怀的功能设计的,各位可以在其中获得非常多样化的乐趣。在谷歌浏览器之中,有这一个非常好玩的彩蛋小游戏,即小恐龙游戏,很多小伙伴都非常喜欢这个游戏,但却不清楚该怎么触发进行游玩,下面就由小编为大家带来恐龙小游戏进入教程。谷歌浏览器怎么玩小游戏方法一:【电脑断网】如果你的电脑使用有线网络,请拔掉网线;如果你的电脑使用无线网络,请在电脑右下角点击无线网络连接断开。②在你电脑断网的前提下,打开谷歌浏览器(GoogleChrome)即可出现谷歌浏览

如何在PHP中实现ERP系统如何在PHP中实现ERP系统May 20, 2023 pm 06:21 PM

随着电子商务和企业管理的发展,许多企业开始寻找更好的方法来处理其日常业务流程。ERP系统是一种能够整合企业各种业务流程的软件工具。它提供了全面的功能,包括生产、销售、采购、库存、财务等方面,帮助企业提高效率、控制成本和提高客户满意度。而在PHP编程语言中,也能够实现ERP系统,这就需要我们掌握一些基本的知识和技术。下面,我们将深入探讨如何在PHP中实现ERP

如何在PHP中实现CRM系统如何在PHP中实现CRM系统May 20, 2023 pm 12:31 PM

随着企业的发展,客户管理变得越来越重要。为了提高客户满意度和忠诚度,越来越多的企业采用客户关系管理系统(CRM)来帮助其管理客户关系。而PHP是一种流行的编程语言,因其简单易学、灵活和强大而被广泛应用于Web开发。那么,如何在PHP中实现CRM系统呢?本文将为您介绍实现CRM系统的步骤和技巧。Step1:需求分析在开始开发CRM系统之前,您需要进行需求分析

在PHP中如何实现物联网开发?在PHP中如何实现物联网开发?May 12, 2023 am 11:51 AM

随着物联网技术的发展和普及,越来越多的应用场景需要使用PHP语言进行物联网开发。PHP作为一种广泛应用于Web开发的脚本语言,它的易学易用、开发速度快、可扩展性强等特点,使其成为开发物联网应用的一种优秀选择。本文将介绍在PHP中实现物联网开发的常用技术和方法。一、传输协议和数据格式物联网设备通常使用TCP/IP或UDP协议进行数据传输,而HTTP协议是一个优

UniApp实现小游戏原生组件的扩展与使用技巧UniApp实现小游戏原生组件的扩展与使用技巧Jul 04, 2023 pm 07:21 PM

UniApp实现小游戏原生组件的扩展与使用技巧引言:UniApp是一款跨平台的前端开发框架,它支持同时开发多个主流小程序平台的应用。在UniApp中,我们可以通过扩展小游戏原生组件来提升应用的性能和用户体验。本文将介绍UniApp实现小游戏原生组件扩展与使用的技巧,并给出相应的代码示例供大家参考。一、为什么要扩展小游戏原生组件小游戏原生组件具有更好的性能和更

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版