![请提供 aisleriot 的 Gnome Scheme 手册](https://linux22.com/image/914654/%E8%AF%B7%E6%8F%90%E4%BE%9B%20aisleriot%20%E7%9A%84%20Gnome%20Scheme%20%E6%89%8B%E5%86%8C.png)
aisleriot 软件包中有许多纸牌游戏。但是,缺少一款:新月纸牌。您可以免费在线玩,但它具有超时等烦人的功能。如果您不使用广告拦截器,还会显示广告。
所以我想将新月纸牌添加到 aisleriot 中。
aisleriot 网站上说:“游戏规则已使用 GNOME 脚本语言 (Scheme) 编写,以方便您使用”。我查看了源代码。是的,它是某个版本的 Scheme。
因此我需要一个方案教程,最好包含为 aisleriot 编写纸牌游戏的分步练习。因为我当然希望使用现有的库,而不是从头开始编写游戏代码。
Gnome 的开发网站谈论的是 javascript,而不是 scheme。我查看的游戏文件(包含不同游戏规则的文件)没有注释。我无法对它们进行 car 或 cdr(=scheme 中的“头或尾”)。
那么,请问有人知道哪里可以找到好的教程吗?或者至少是好的手册?(不是麻省理工学院的胡言乱语)。
答案1
来自官方源代码 git 存储库本身:
https://gitlab.gnome.org/GNOME/aisleriot/blob/master/games/Rules.HOWTO
它的目录非常有前景,而且看起来正是您正在寻找的内容:
1. Introduction
2. Getting started.
3. A primer for the Scheme language
4. Functions you need to define to make a game.
5. A real example.
6. Submitting your new work as a "bug".
7. A brief list of the aisleriot 'library' functions available.
也值得一读:
https://gitlab.gnome.org/GNOME/aisleriot/blob/master/games/README
How to write a new game for Aisleriot
=====================================
For an introduction on how to write the scheme code for a new game see the
Rules.HOWTO file.
How to add a new game to Aisleriot
==================================
* Move foo.scm file into games/ and git add it
* Add foo.scm to the list in games/Makefile.am, keeping the list
sorted alphabetically
* Add games/foo.scm to po/POTFILES.in
* Move the documentation foo.xml file into help/C/ and git add it
* Add foo.xml to HELP_FILES in help/Makefile.am, keeping the list
sorted alphabetically
* Edit help/C/index.docbook to include the new game's documentation
by adding
<xi:include href="foo.xml" />
in the list of games. Make sure to keep the list sorted alphabetically!
* Run the src/get_titles.pl script
* In help/, run "make check" to make sure the documentation validates
* Add foo to the list of games in the man page in help/sol.6
* git commit help/C/foo.xml help/C/index.docbook help/Makefile.am games/foo.scm \
games/Makefile.am src/game-names.h po/POTFILES.in help/sol.6
Done!
不幸的是,令人惊讶的是,这两个文档在存储库的 Ubuntu 二进制包中缺失aisleriot
,因此它们没有像大多数此类 README 那样安装在您的系统中。