# Puzzle **Repository Path**: wang-xinyu/Puzzle ## Basic Information - **Project Name**: Puzzle - **Description**: 拼图小游戏 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-15 - **Last Updated**: 2022-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1. 拼图小游戏介绍 - 游戏规则:将一张图片分为n个图片碎片将其打乱,玩家拖拽碎片进行拼图 - 游戏目标:将每个碎片复原到原图上的位置,则判定为赢 # 2. 拼图小游戏使用说明 ## 2.1 html部分 - 需自定义节点作为拼图游戏的渲染插槽 - 自定义开始与结束按钮 - 需引入拼图js - 举例: ```
``` ## 2.2 css部分 - 可全部自定义 ## 2.3 js部分 - 通过`new Puzzle(option) ` 来实例化拼图游戏 ,option为配置对象 - 未开始或者已完成状态下 按钮的类名会增加`oPuzzle_start` , - 拼图随机排序(已开始) 按钮类名增加`oPuzzle_reset` - 拼图子元素类名为`block` - 拼图父元素类名为`puzzle` - 按钮默认文本为 `开始` 与 `复原` , 可在配置对象中 `mounted()`和`success`中个性化配置其他文本 ### 具体参数配置如下: | *参数名* | *含义* | *说明* |*参数类型* | | -------- | --------------------- | --------------------------------------------------- | --------------------------------------------------- | | el | 拼图插槽(必填) | 拼图渲染的节点选择器 | string  | | data | 具体渲染的相关配置对象(必填) | 配置拼图整体的宽高,行列数,图片路径 ,按钮 , 是否初始化 | object| | width | 拼图父级元素整体宽(必填) | 拼图父级元素整体宽,单位rem | number | | hieght | 拼图父级元素整体高(必填) | 拼图父级元素整体高,单位rem | number| | row | 拼图行数(必填) | 拼图行数(必填) | number| | col | 拼图列数(必填) | 拼图列数(必填) |number| | puzzleImg | 图片路径(必填) | 图片路径(必填) | string| | startBtn | 绑定触发游戏开始结束按钮(选填) | 按钮的节点选择器 |string| | mounted | 初始化完成后执行的回调(选填) | 初始化完成后执行的回调,同步执行 |function| | success | 初始化完成后执行的回调(选填) | 拼图成功后的回调 同步执行 |function| - 举例: ``` /** * @param {绑定渲染节点插槽(必填)} el * @param {整体宽 单位rem(必填)} width * @param {整体高 单位rem(必填) } hieght * @param { 行数(必填) } row * @param { 列数(必填) } col * @param { 图片路径(必填) } puzzleImg * @param {绑定触发游戏开始结束按钮(选填)} startBtn * @param { 初次渲染是否为默认为未开始状态(选填) } isReset * @param { 初始化完成后执行的函数(同步执行)(选填) } mounted * @param { 游戏成功后执行的函数(同步执行)(选填) } success */ var puzzle = new Puzzle({ el:'#app', //插槽 data:{ width:9,//宽 height:9,//高 row:3, //行数 col:3, //列数 puzzleImg:'https://img.hbhcdn.com/zhuanti/20881/pintu.jpg', startBtn:'.reset1', isReset:true//是否初始化为 待开始状态 判断游戏是否在进行中 }, mounted(){ //初始化完成后执行的回调 同步执行 var reset1 = document.querySelector('.reset1') ; var isStart = reset1.classList.contains('oPuzzle_start'); if(isStart){ reset1.innerText ='自定义按钮--开始'; }else { reset1.innerText ='自定义按钮--复原'; } //自定义初始化 reset1.addEventListener('click', function(){ isStart = !isStart; if(isStart){ reset1.innerText ='自定义按钮--开始'; }else { reset1.innerText ='自定义按钮--复原'; } }, false) }, success(){// 拼图成功后的回调 同步执行 document.querySelector('.reset1').innerText='自定义按钮--开始' alert('拼图成功,你实在是太棒了 ≧◠◡◠≦✌!!!') } }) ```