15 Puzzle Game使用ReactJS
在本文中,我们将使用ReactJS创建15 Puzzle Game。15 puzzle game基本上是一款基于图块的游戏,其中有16个图块,其中1个图块是空的,其余的图块以1到15的随机顺序填充数字。用户必须按照数字顺序排列所有图块,规则是他们只能移动直接邻接空图块的图块。
在这个项目中,我们基本上使用了React函数组件和使用了React hooks,比如useState, useEffect等。玩家可以将图块从其位置拖动到相邻的空位置。通过使用JSX实现拖动和获胜的逻辑。
让我们看看我们的最终项目将是什么样子:
使用的技术/先决条件:
- ReactJs
- Tailwind CSS
- JSX
- 在React中使用功能组件
- React Hooks
方法: 容器是有状态的React组件(基于class)。组件是无状态的React组件(基于函数)。在这个项目中,我使用了组件(基于函数),为了使它们有状态,我在React中使用了hooks,如useState、useEffect等。
项目结构
步骤
1. 使用以下命令设置React项目
2. 使用以下步骤导航到项目文件夹
3. 创建一个名为“ components ”的文件夹来存储组件,以及一个名为“ utils ”的文件夹,我们将在其中创建随机生成数字数组的实用函数。在“components”文件夹中添加4个文件,分别是“Game.js”、“Puzzle.js”、“Tile.js”、“Timer.js”,并在“utils”文件夹中创建一个名为“shuffleFunction.js”的文件。
4. 要在项目中添加 tailwindcss,请在“index.html”中添加以下脚本标签。
在不同的文件中编写以下代码(文件名在每个代码块的第一行中提到)。
示例:
- index.html : 自动创建的文件,在这里我们需要导入tailwindcss标签。
- index.js : 自动创建的文件,React用于最终渲染。
- App.js : 此文件导入Game组件并导出它。
- Game.js : 此文件包含游戏的整体逻辑和所有所需的组件。
- Puzzle.js : 此文件包含拼图游戏的组件。
- Tile.js : 此文件包含两个组件,分别是“EmptyTile”和“FilledTile”,用于在Puzzle.js中渲染拼图块。
- Timer.js : 此文件包含计时器的逻辑并渲染时间。
- shuffleFunction.js : 此文件包含将数组从1到16洗牌的逻辑,其中第16个位置为空字符串,并返回洗牌后的数组。
JavaScript
Javascript
Javascript
Javascript
Javascript
JavaScript
Javascript
HTML
运行应用程序的步骤:
1. 在终端中输入以下命令:
2. 在网络浏览器中打开以下URL:
输出: