https://github.com/rratic/lightlearn.jl
a visual tool for julialang learning with level-installing and sandbox
https://github.com/rratic/lightlearn.jl
game grid julialang lightweight subproject
Last synced: 5 months ago
JSON representation
a visual tool for julialang learning with level-installing and sandbox
- Host: GitHub
- URL: https://github.com/rratic/lightlearn.jl
- Owner: Rratic
- License: mit
- Created: 2022-04-24T01:36:24.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-08-10T03:48:08.000Z (almost 4 years ago)
- Last Synced: 2025-08-21T15:40:50.225Z (10 months ago)
- Topics: game, grid, julialang, lightweight, subproject
- Language: Julia
- Homepage:
- Size: 54.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 用户手册
!!! note
如果您是使用者,请注意:调用本手册以外函数、修改源代码或关卡数据、在提交函数中包含错误的函数等行为均应视作作弊,但不被强制保证。
### 流程
使用 `st = init()` 创建一个游戏句柄,其中 `init` 接收一个参数,为 `false` 时不会导入 [`Standard.llp`](https://github.com/JuliaRoadmap/Standard.llp)。
在结束时,需注意调用 `quit(st)` 注销句柄。
使用 `menu`,你可以阅读已导入的关卡列表(包括整数 id 与 名称),可以通过 `level` 导入指定的关卡。可以进行手动尝试,但是正式提交需要调用 `submit(st)`,第二个参数接受一个函数,这个函数接受唯一参数是 `st::Status`。在此模式下,你可以调用:(以下函数第一个参数均为 `st::Status`)
* `north!`
* `west!`
* `east!`
* `south!`
* `look(st::Status, x::Int, y::Int)` 在「四相邻格」或本格时进行「观察」
* `send(st::Status, method::Symbol, x::Int, y::Int, args...)` 在「四相邻格」或本格时「发送数据」
### 沙盒模式
使用 `sand = sandbox(st)`,你可以创建一个沙盒。
在此模式下,可以调用 `tp(sand, x, y)`,`sand[x, y]`,`sand[x, y]=v`
### 导入
LightLearn 提供了两个导入函数:
* `load_package(st::Status, s::AbstractString)` 导入已安装的包,使用其名称
* `load_dir(st::Status, s::AbstractString)` 从本地指定目录导入
### 安装
LightLearn 提供了三个安装函数:
* `install_localzip(fpath::AbstractString; remove::Bool=false)` 从本地指定路径安装 zip
* `install_webzip(url::AbstractString)` 从网络指定 url 安装 zip
* `install_githubrepo(owner::AbstractString, repo::AbstractString, version::AbstractString="latest")` 从指定 github 仓库安装指定发布
同时,可以使用 `uninstall(name::AbstractString)` 去除安装
### 杂项
* 可以使用 `vis(st::Status, b::Bool)` 设置窗口可见性
## 开发者手册
[标准 Package 项目地址](https://github.com/JuliaRoadmap/Standard.llp)
目录下应包含以下文件
**Project.toml**
* `name` 当前关卡包名
* `uuid` 一个UUID
* `version` 当前版本
* `description` 介绍
* `[compat]` 其中 `"LightLearn"` 项表示接受的版本
**src/包名.jl**
* 返回值应为 `NamedTuple`
若要支持 `install_githubrepo` 方法,应在对应的 github 仓库发布 release,标注恰当的 tag(带`v`),在信息中必须含有字段`COMPAT="版本"`,与 `toml["compat"]["LightLearn"]` 统一