受欢迎的邢台做网站/手机优化助手下载

受欢迎的邢台做网站,手机优化助手下载,建立英语,现在最靠谱的购物网站有哪些一、引言 在如今的数字化时代,小游戏以其简单易上手、趣味性强的特点深受大家喜爱。2048 游戏作为一款经典的数字合并游戏,拥有庞大的玩家群体。本文将详细介绍一个用单文件 HTML 实现的可爱风格 2048 游戏项目,它不仅具备传统 2048 游戏的基…

一、引言

在如今的数字化时代,小游戏以其简单易上手、趣味性强的特点深受大家喜爱。2048 游戏作为一款经典的数字合并游戏,拥有庞大的玩家群体。本文将详细介绍一个用单文件 HTML 实现的可爱风格 2048 游戏项目,它不仅具备传统 2048 游戏的基本功能,还在界面设计和视觉效果上进行了优化,让玩家在游戏过程中感受到可爱与乐趣。

二、项目概述

这个 2048 游戏项目采用单文件 HTML 编写,融合了 HTML、CSS 和 JavaScript 三种技术。界面设计采用响应式布局,确保在不同设备上都能完美展示。游戏中使用了一系列可爱的图片替代传统的数字,为游戏增添了更多的趣味性。主要模块包括标题、最高分 / 得分显示、游戏卡片区域以及游戏规则说明。

三、功能实现

3.1 界面设计

3.1.1 整体布局

使用 HTML 和 CSS 构建了游戏的整体布局。通过 flexbox 和 grid 布局实现了响应式设计,使得游戏界面在不同尺寸的屏幕上都能自适应。页面背景颜色设置为 #faf8ef,营造出温馨可爱的氛围。

html

<body><div id="header"><h1>可爱 2048 游戏</h1><div id="score-board"><div id="score">得分: 0</div><div id="high-score">最高分: 0</div></div></div><div id="game-board"></div><div id="game-rules"><p>游戏规则:使用键盘方向键(上、下、左、右)控制卡片移动,相同的卡片会合并成一个数值更大的卡片,目标是合并出数值为 2048 的卡片。</p></div><div id="win-modal"><div id="win-modal-content"><p>恭喜你已经合并了一只宇宙无敌最可爱的猫咪</p><button onclick="closeWinModal()">确认</button></div></div>
</body>
3.1.2 样式设计

标题文字颜色和游戏规则的颜色都设置为 #776e65,游戏规则的字号为 14px,使界面看起来更加协调。标题与最高分、得分排在一行,标题左对齐,高分、得分右对齐,增强了界面的美观性。

css

body {background-color: #faf8ef;font-family: Arial, sans-serif;display: flex;flex-direction: column;align-items: center;justify-content: center;min-height: 100vh;margin: 0;
}#header {display: flex;justify-content: space-between;align-items: center;width: 90%;max-width: 500px;color: #776e65;
}h1 {margin: 0;
}#score-board {display: flex;gap: 10px;
}#score,
#high-score {background-color: #bbada0;color: white;padding: 5px 10px;border-radius: 5px;
}#game-board {display: grid;grid-template-columns: repeat(4, 1fr);grid-template-rows: repeat(4, 1fr);gap: 10px;background-color: #bbada0;padding: 10px;border-radius: 5px;width: 90%;max-width: 500px;margin: 20px 0;
}.cell {background-color: rgba(238, 228, 218, 0.35);border-radius: 5px;aspect-ratio: 1/1;
}.tile {width: 100%;height: 100%;background-size: cover;border-radius: 5px;
}#game-rules {text-align: left;color: #776e65;width: 90%;max-width: 500px;font-size: 14px;
}#win-modal {display: none;position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.5);align-items: center;justify-content: center;
}#win-modal-content {background-color: white;padding: 20px;border-radius: 5px;text-align: center;
}

3.2 游戏逻辑

3.2.1 图片映射

使用 JavaScript 定义了图片与数字的映射关系,将图片链接存储在 images 对象中,以便在游戏中根据数字显示相应的图片。

javascript

const images = {2: 'https://p9-flow-imagex-sign.byteimg.com/ocean-cloud-tos/image_generation/df099f209335f8b25e1d4ab9ce2867ff_1741677321668230149.png~tplv-a9rns2rl98-image.png?rk3s=25bff839&x-expires=1773213321&x-signature=reNM%2F907NNX7Rc%2BE4FflYbWaRKo%3D',4: 'https://p9-flow-imagex-sign.byteimg.com/ocean-cloud-tos/image_generation/322b9826909d14458d22e0931fd06aac_1741677330491084517.png~tplv-a9rns2rl98-image.png?rk3s=25bff839&x-expires=1773213330&x-signature=a1ptVuhTOwjrpRZSdnL%2FUKYV9MY%3D',8: 'https://p3-flow-imagex-sign.byteimg.com/ocean-cloud-tos/image_generation/1a563d103b7496a5b9eb365ff9ea58bd_1741677409407029394.png~tplv-a9rns2rl98-image.png?rk3s=25bff839&x-expires=1773213409&x-signature=L0drmZ0N1Z2%2BjUD9g9gcP0Nn7TM%3D',// 其他数字对应的图片链接...
};
3.2.2 棋盘初始化

初始化棋盘数组 board,并调用 addRandomTile() 函数在棋盘上随机生成两个初始卡片。

javascript

let board = [[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]
];addRandomTile();
addRandomTile();
createBoard();
3.2.3 卡片移动和合并

实现了 moveLeft()moveRight()moveUp() 和 moveDown() 四个函数,用于处理键盘方向键事件,控制卡片的移动和合并。在移动过程中,调用 mergeTiles() 函数合并相邻且数值相同的卡片。

javascript

function moveLeft() {let moved = false;for (let i = 0; i < 4; i++) {const oldRow = [...board[i]];board[i] = mergeTiles(board[i]);if (oldRow.join(',')!== board[i].join(',')) {moved = true;}}if (moved) {addRandomTile();}updateScore();createBoard();
}function mergeTiles(row) {let newRow = row.filter(tile => tile!== 0);for (let i = 0; i < newRow.length - 1; i++) {if (newRow[i] === newRow[i + 1]) {newRow[i] *= 2;score += newRow[i];if (newRow[i] === 2048) {showWinModal();}newRow[i + 1] = 0;}}newRow = newRow.filter(tile => tile!== 0);while (newRow.length < 4) {newRow.push(0);}return newRow;
}
3.2.4 得分和胜利提示

使用 score 变量记录当前得分,highScore 变量记录最高分,并将最高分存储在浏览器的本地存储中。当合并出 2048 时,调用 showWinModal() 函数显示胜利提示模态框。

javascript

function showWinModal() {winModal.style.display = 'flex';
}function closeWinModal() {winModal.style.display = 'none';
}function updateScore() {if (score > highScore) {highScore = score;highScoreElement.textContent = `最高分: ${highScore}`;localStorage.setItem('highScore', highScore);}scoreElement.textContent = `得分: ${score}`;
}

四、项目运行

将上述代码保存为一个 HTML 文件,然后在浏览器中打开该文件,即可开始玩这个可爱风格的 2048 游戏。使用键盘方向键(上、下、左、右)控制卡片移动,尝试合并出 2048,挑战自己的最高分。

五、总结

通过这个项目,我们学习了如何使用 HTML、CSS 和 JavaScript 实现一个简单而有趣的 2048 游戏。从界面设计到游戏逻辑的实现,每个步骤都展示了前端开发的基本技巧和方法。同时,项目中使用的响应式布局和图片替代数字的设计,也为游戏增添了更多的趣味性和吸引力。希望这个项目能为你带来启发,让你在前端开发的道路上不断探索和进步。

以上就是关于这个可爱风格 2048 游戏项目的详细介绍,你可以根据自己的需求对代码进行修改和扩展,开发出更加个性化的游戏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/74403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷四)

目录 1. 回调函数 2. qsort函数 2.1 使用qsort函数排序整型数据 2.2 使用qsort排序结构数据 2.3 使用冒泡排序模拟实现qsort函数 1. 回调函数 回调函数其实就是一个通过函数指针调用的函数&#xff0c;如果你把函数的指针作为参数传递给另一个函数&#xff0c;当这个指针被…

Shiro框架漏洞攻略

漏洞原理&#xff1a;服务端在接收到⼀个Cookie时&#xff0c;会按照如下步骤进⾏解析处理&#xff1a;1.检索RememberMe Cookie的值 2.进⾏Base64解码 3.进⾏AES解码 4.进⾏反序列化操作 在第4步中的调⽤反序列化时未进⾏任何过滤&#xff0c;进⽽可以导致出发远程代码执⾏漏…

Ceph集群2025(Squid版)导出高可用NFS集群(下集 )

本次主要对接K8S和传统的一样而已,比较简单&#xff0c;不再过多讲解 官网 https://github.com/kubernetes-csi/csi-driver-nfs/tree/master/chartshelm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts helm pull c…

Off-Road-Freespace-Detection配置pytorch2.0.0

一、概述 在github上进行开源代码搜索&#xff0c;发现了Off-Road-Freespace-Detection&#xff08;链接如下所示&#xff09;。这是对越野环境可通行区域的检测&#xff0c;在经过测试之后&#xff0c;发现对自己有益。 GitHub - chaytonmin/Off-Road-Freespace-Detection: O…

ChatGPT降低论文AIGC重复率的提示词合集(高效降重方法)

&#x1f4a1; 问题&#xff1a;写完毕业论文后&#xff0c;查AIGC率过高&#xff0c;手动降重后仍然很高&#xff0c;该怎么办&#xff1f; &#x1f4cc; 解决方案&#xff1a; 1️⃣ 先查AIGC率&#xff08;找出AI生成的部分&#xff09; 2️⃣ 用ChatGPT优化&#xff08;使…

fastapi+angular评论和回复

说明&#xff1a;fastapiangular评论和回复 效果图: step1:sql show databases; DROP TABLE users; SHOW CREATE TABLE db_school.users; show tables; use db_school; SELECT * FROM db_school.jewelry_categories; CREATE DATABASE db_school; select *from users -- 用户…

AI医疗革命:英伟达GTC 2025医疗健康与生命科学会议全分析

AI医疗革命:英伟达GTC 2025医疗健康与生命科学会议全分析 一、GTC 2025:AI 医疗的算力与生态双突破 1.1 黄仁勋演讲核心:从训练到推理的代际跨越 在科技界瞩目的英伟达 GTC 2025 大会上,英伟达 CEO 黄仁勋的主题演讲成为全场焦点,为 AI 医疗领域带来了极具变革性的消息。…

Apache Spark - 用于大规模数据分析的统一引擎

Apache Spark - 用于大规模数据分析的统一引擎 下载运行示例和 Shell使用 Spark Connect 在 Anywhere 上运行 Spark 客户端应用程序 在集群上启动从这里去哪里使用 Spark Shell 进行交互式分析基本有关数据集作的更多信息缓存 自包含应用程序从这里去哪里 Apache Spark 是用于大…

餐饮管理系统的设计与实现(代码+数据库+LW)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…

【C#】Winform调用NModbus实现Modbus TCP 主站通讯

一、前言 Modbus是一种串行通信协议&#xff0c;是工业领域全球最流行的协议之一。 1.1 环境 系统&#xff1a;Win11 工具&#xff1a;Visual Studio 2022 .Net 版本&#xff1a;.Net Framework4.6.0 依赖库&#xff1a;NModbus 3.0.81 1.2 协议类型 Modbus RTU&#xff1a;一…

【leetcode题解】贪心算法

目录 贪心算法 柠檬水找零 将数组和减半的最少操作次数 最大数 摆动序列 最长递增子序列 递增的三元子序列 最长连续递增序列 买卖股票的最佳时机 买卖股票的最佳时机 II K 次取反后最大化的数组和 按身高排序 优势洗牌 最长回文串 增减字符串匹配 分发饼干 最…

Apache Doris

Apache Doris介绍 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场…

VLAN间通信

目录 第一步&#xff1a;配vlan 第二步&#xff1a;配置核心vlanif,MAC地址信息。 第三步&#xff1a;ospf协议 三层交换机&#xff08;汇聚层&#xff09;: 对于交换机、路由器、防火墙等网络设备而言&#xff0c;接口类型一般存在两种&#xff1a;二层接口&#xff0c;三…

LeetCode热题100精讲——Top2:字母异位词分组【哈希】

你好&#xff0c;我是安然无虞。 文章目录 题目背景字母异位词分组C解法Python解法 题目背景 如果大家对于 哈希 类型的概念并不熟悉, 可以先看我之前为此专门写的算法详解: 蓝桥杯算法竞赛系列第九章巧解哈希题&#xff0c;用这3种数据类型足矣 字母异位词分组 题目链接&am…

基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤

该系统是基于pythondjango开发的在线图书借阅管理系统。系统适合场景&#xff1a;大学生、课程作业、系统设计、毕业设计。 演示地址 前台地址&#xff1a; http://book.gitapp.cn 后台地址&#xff1a;http://book.gitapp.cn/#/admin 后台管理帐号&#xff1a; 用户名&…

uni-app集成保利威直播、点播SDK经验FQ(二)|小程序直播/APP直播开发适用

通过uniapp集成保利威直播、点播SDK来开发小程序/APP的视频直播能力&#xff0c;在实际开发中可能会遇到的疑问和解决方案&#xff0c;下篇。更多疑问请咨询19924784795。 1.ios不能后台挂起uniapp插件 ios端使用后台音频播放和画中画功能&#xff0c;没有在 manifest.json 进…

【redis】事务详解,相关命令multi、exec、discard 与 watch 的原理

文章目录 什么是事务原子性一致性持久性隔离性 优势与 MySQL 对比用处 事务相关命令开启事务——MULTI执行事务——EXEC放弃当前事务——DISCARD监控某个 key——WATCH作用场景使用方法实现原理 事务总结 什么是事务 MySQL 事务&#xff1a; 原子性&#xff1a;把多个操作&am…

【Java SE】单例设计模式

参考笔记&#xff1a;深入理解Java设计模式&#xff1a;单例模式及其饿汉式与懒汉式的对比,-CSDN博客 目录 1.什么是设计模式 2.经典设计模式 3.单例设计模式&#xff08;static属性/方法经典使用场景 &#xff09; 3.1 饿汉式单例模式 3.2 懒汉式单例模式 4.补充 1.什么…

【day2】数据结构刷题 栈

一 有效的括号 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的…

关于金融开发领域的一些专业知识总结

目录 1. 交易生命周期 1.1 证券交易所 1.1.1 交易前 1) 订单生成&#xff08;Order Generation&#xff09; 2) 订单管理&#xff08;Order Management&#xff09; 1.1.2 交易执行 3) 交易匹配&#xff08;Trade Matching&#xff09; 1.1.3 交易后 4) 交易确认&…