Rules Current Competition Submit a solution Submission table - ALL Submission table - Main Submission table - Ext Submission table - Ext2 Submission table - Ext3 Competition results Hall of Fame Past Competitions About
比赛规则 本期比赛关卡 提交答案 提交列表(全部) 提交列表 - 1 提交列表 - 2 提交列表 - 3 提交列表 - 4 比赛结果 荣誉殿堂 往期比赛 比赛简介 比赛诗选
歪推箱子 推箱子加加 睿斗推箱子 推箱快手(安卓版) 推箱快手(Windows) SokoPlayer SokoPlayer HTML5 USokoban [Linux] SokoFind LURD2XSB 推箱子工具 [Utilities] 推箱子变种 [Variants]
关卡平台 sokoban.org 字母表 [alphabet] 十二生肖 [zodiac] 2012精选 [bestof2012] 2013精选 [bestof2013] 关卡答案
MF8论坛推箱子版 QQ群:92017135
XSB2MF8 [中文] XSB2MF8 [English] XSB2MF8 [sokojava] 关卡旋转工具 LURD2XSB工具 LURD转换工具 推箱子GIF动画制作教程 [skyivben] XSB2image [skyivben] image2XSB
推箱子常见问答 [FAQ] 推箱子格式 [XSB & Lurd] 推箱子基本概念:空位 推箱子游戏中半位空间的奇偶属性与磁铁效应 推箱子新手之路 “信以为真”关卡诞生记 推箱子GIF动画制作教程 逆推教程 推箱子文档下载
SokoPlayer HTML5 SokoPlayer JavaApplet USokoban [Linux] sokoban.py Sokoban.WS Tools SokoFind SokoLines HTML5
推箱子常见问答 [FAQ] 关于推箱子 [XSB & Lurd] 推箱子文档下载 关于比赛 墙纸下载 [Wallpaper] 友情链接 [Links] 推箱子博客 [Blog] Credits

Sokoban Level Normalizer

The motive of writing this tool is to normalize the MF8 Sokoban Competition level before being posted at the competition site. Basically, the normalizer will do the following:

  1. Remove all the unreachable walls, boxes, etc.
  2. Distinguish reachable and unreachable spaces, they are denoted by "-" and "_" respectively after normalization.
  3. Add corner walls if needed.

The input level should be in XSB format. The normalizer supports input level using "-", "_" or " " for spaces, or any combination of them. The output normalized level will always use only "-" and "_" for spaces.

The normailizer will assume the input level is a proper level. In other words, it should has exactly one pusher and is enclosed by walls.

Sokoban Level:


Simple Normalize:
Remove no-outlet floors (删去三面是墙的地板):




July 13, 2010.
Updated May 26, 2013 (add 'simple normalization' method)
Updated July 22, 2014 (add 'remove no-outlet floor' option)