-
最近文章
近期评论
- [坑]POI补完计划#1 | qiancl 在 推箱子游戏的一个箱子推动路径搜索算法 (二) 上的评论
- [坑]POI补完计划#1 – qiancl 在 推箱子游戏的一个箱子推动路径搜索算法 上的评论
- HZF 在 推箱子是PSPACE完全问题 上的评论
- sokoban 在 马拉松简史 上的评论
- 跑步世界 在 马拉松简史 上的评论
文章归档
- 2021 年八月
- 2021 年五月
- 2021 年四月
- 2021 年二月
- 2021 年一月
- 2020 年十一月
- 2020 年十月
- 2020 年九月
- 2020 年八月
- 2020 年七月
- 2020 年四月
- 2020 年三月
- 2020 年一月
- 2019 年十二月
- 2019 年十一月
- 2019 年十月
- 2019 年八月
- 2019 年五月
- 2019 年四月
- 2019 年二月
- 2019 年一月
- 2018 年十月
- 2018 年七月
- 2018 年五月
- 2018 年四月
- 2018 年三月
- 2018 年一月
- 2017 年十二月
- 2017 年十一月
- 2017 年十月
- 2017 年九月
- 2017 年八月
- 2017 年七月
- 2017 年六月
- 2017 年五月
- 2017 年四月
- 2017 年三月
- 2017 年二月
- 2017 年一月
- 2016 年十二月
- 2016 年十一月
- 2016 年十月
- 2016 年九月
- 2016 年八月
- 2016 年七月
- 2016 年六月
- 2016 年五月
- 2016 年四月
- 2016 年三月
- 2016 年二月
- 2016 年一月
- 2015 年十二月
- 2015 年十一月
- 2015 年十月
- 2015 年八月
- 2015 年六月
- 2015 年五月
- 2015 年四月
- 2015 年三月
- 2015 年二月
- 2015 年一月
- 2014 年十二月
- 2014 年十一月
- 2014 年十月
- 2014 年九月
- 2014 年八月
- 2014 年七月
- 2014 年六月
- 2014 年五月
- 2014 年四月
- 2014 年三月
- 2014 年二月
- 2014 年一月
- 2013 年十二月
- 2013 年九月
- 2013 年七月
- 2013 年六月
- 2013 年四月
- 2013 年二月
- 2012 年十二月
- 2012 年十一月
- 2012 年十月
- 2012 年八月
- 2012 年七月
- 2012 年五月
- 2012 年四月
- 2012 年二月
- 2011 年十一月
- 2011 年九月
- 2011 年八月
- 2011 年七月
分类目录
博客链接
功能
月归档:二月 2012
推箱子关卡文件和正则表达式
作者:杨超 本文地址:http://sokoban.ws/blog/?p=225 正则表达式(Regular Expressions)在编写计算机程序中有广泛和重要的作用。无论是编译器把源程序编译成可执行文件,还是浏览器把HTML文件渲染成可视化的页面,其中第一步都是在做类似一个的工作,那就是有一个通称为词法分析器(Lexer)的组成部分把源程序或是HTML文件分离成一个个最小的单位,称为单词(Token)。这一过程中,词法分析器所作的事情就是通过正则表达式的匹配,把单词逐一识别出来。 正则表达式的匹配有非常成熟的通用算法,很多时候并不需要手动编写。很多编译器或是浏览器(如 webkit )的词法分析器都用一个叫 flex 的程序自动生成的。使用 flex 程序,先把需要分析的词法用正则表达式写到一个.l文件中,然后 flex 程序根据.l文件的描述生成c文件。flex 程序也可以用来读取 XSB 格式的推箱子关卡文件。XSB 的基本格式可以参看这里的介绍。除了用 #@$*+. 等字符来表示推箱子关卡中的不同元素之外,很多关卡文件还在每个关卡后面用 Title, Author, Comment 等关键词来标识关卡的标题、作者和注释等信息。下面是一个例子: ######### # # # # #***# # ######### * * # ## # * * # ## … 继续阅读
XSokoban
作者:杨超 本文地址:http://sokoban.ws/blog/?p=217 今天成功编译并运行 XSokoban. XSokoban的下载地址:http://www.cs.cornell.edu/andru/xsokoban.html XSokoban 是早期Unix/Linux下的一个开源的推箱子程序,93年发布3.0版,到97年3.3c版后停止更新,是比较有影响的推箱子程序之一,早在94年就实现了箱子的智能拖放。XSokoban的作者Andrew C. Myers现为康奈尔大学(Cornell University)计算机科学教授,这个程序是他在博士毕业之前的作品。XSokoban用X Window System (又称X11)来处理图像界面,故称XSokoban. 我是在Ubuntu 10.04下编译并运行XSokoban的。因为年代久远,README文件语焉不详,我还是颇费了一番功夫才把这14多年前的代码成功编译。现把其中一些细节记下来备忘。 1. 修改config.h文件并用命令 ./configure –with-CC=cc 生成 Makefile 。其中 config.h里面把WWW设为0,并设定路径(ROOTDIR),用户(OWNER)和密码(PASSWORD)等信息。可根据命令 ./configure –with-CC=cc的错误提示来修改。 (2013年3月23日补充:系统升级到Ubuntu 12.04后重新编译了一次XSokoban,这里直接运行./configure脚本生成 Makefile即可,默认用gcc编译。另config.h中的目录一定要正确设置,否则编译后也会因为路径不正确在运行中无法创建scores文件而退出) 2. 用命令make编译。编译前,我手动在Makefile里设定了头文件路径INCS = -I/usr/include/X11(头文件xpm.h的路径),并把score.c里的getline 函数重命名为 getline2(和系统函数有冲突)之后才编译成功。 3.运行时要用 ./xsokoban -u <user>来输入用户名,在输入密码正确后才能运行。第一次还要用./xsokoban -c来创建scores文件。用./xsokoban -<xx>选关。 … 继续阅读