H5小游戏 活跃维护

cube-composer

sharkdp/cube-composer

一个受函数式编程启发的益智游戏

2047
Stars 标星
85
Forks 分支
20
Watchers 关注
10
Open Issues
PureScript
主要语言
MIT
开源协议
692 KB
仓库大小
3 年前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:sharkdp/cube-composer
git clone https://github.com/sharkdp/cube-composer.git
git clone git@github.com:sharkdp/cube-composer.git
README.md master

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

一款受函数式编程启发的益智游戏,用 PureScript 编写。

在线玩!

本地安装

git clone https://github.com/sharkdp/cube-composer.git
cd cube-composer
npm install
bower install
gulp

如果没有错误发生,现在可以通过打开 index.html 在浏览器中玩游戏。

创建新关卡

关卡被分组到章节中。每个章节在文件夹 src/Levels/ 中都有一个专用文件。要创建新章节,你可以复制现有文件之一,增加章节编号,并将其添加到 Levels.purs 中的 allChapters 列表。每个章节都附有特定的 transformers(函数)列表。例如,我们来看 Chapter0.purs 中的 map (Yellow ↦ Red) :

"replaceYbyR" :> {
    name: "map {Yellow}↦{Red}",
    function: replaceSingle Yellow Red
}

这里,replaceYbyR 是用于识别变压器的内部ID,map {Yellow}↦{Red} 是变压器显示的名称({x} 将被替换为颜色为 x 的小立方体),而 replaceSingle Yellow Red 是变压器的实现。记录中的 function 字段必须是 Transformer 类型,其中

type Stack = List Cube
type Wall = List Stack
type Transformer = Wall -> Wall

因此,Transformer 是一个将二维立方体数组(Wall)转换的函数。一些基本的转换器在 Transformer.purs 中给出。

每个层级由如下记录给出

"0.2" :-> {
  name: "Level title",
  help: Just "...",
  difficulty: Easy,
  initial: [[Yellow, Yellow, Red], [Yellow, Red], ...],
  target: [[Red], [Red], [Red], [Red], [Red], [Red]]
}

其中 0.2 是关卡的 Chapter.Level ID,name 是谜题的标题,help 是在右侧面板显示的帮助文本,difficulty 是 Easy、Medium 或 Hard,initial :: Wall 和 target :: Wall 分别是立方体的初始和目标二维数组。

要查看所有关卡的所有最短解方案(这在某些情况下非常有用,例如验证新引入的关卡是否可以按计划解决——并且不能以破坏其设计初衷的其他方式解决):

gulp prod
node dist/cli.js

如果您想将您的谜题添加到游戏中,请提交拉取请求。

持续集成状态

本站来源与版权声明
  • 本文标题:cube-composer - 一个受函数式编程启发的益智游戏
  • 本文链接:https://cn121.com/h5game/sharkdp-cube-composer.html
  • 原项目:sharkdp/cube-composer 版权归原作者 sharkdp 及贡献者所有
  • 收录信息:本站于 2026-10-01 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 sharkdp/cube-composer。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。