Board logo

标题: SokoPlayer [打印本页]

作者: admin    时间: 2011-5-4 16:44     标题: SokoPlayer

终于把SokoPlayer和Discuz!论坛结合起来了,自定义一个Discuz!代码即可。

自定义的Dicuz!代码最多支持三个参数。
现在定义的格式和MF8论坛完全一样,所以可以沿用YSokoban程序ctrl-M生成的Discuz!代码。




作者: admin    时间: 2011-5-4 19:41

下一步准备支持静态推箱子图片,即


[soko=27,27]
HHHHHHHHHHHHHHHHHHHHHHHHHHH
H_*______._*_*_*_$________H
H_HHHH_HHH$__H__.HHHH_HHH*H
H_H__$_$___HHHHH____$_$_H_H
H_H$..$._H_H____.H$..$._H_H
H___$...$H*HH_HH$H_$...$H_H
H_H$...$_H__*__H_H$...$___H
H_H_.$..$H_H___H_H_.$..$H_H
H_H_$_$____HHHHH___$_$__H_H
H_H_HHHH_H___H__$H_HHHH_H*H
H_$_.$___*_*_*_*_.___*____H
H*_H_HHHH_*HHHHH*_HH_HHH_*H
H__H_H__H__H___H__H_*H_H__H
H*HH____HH*H___H*HH____HH*H
H__H_H*aH__H___H__H__H_H__H
H*_HHH_HH_*HHHHH*_HHHH_H_*H
H____*_____*_*_*_*___$.___H
H*H_HHHH_H.__H___H_HHHH_H*H
H_H__$_$___HHHHH____$_$_H_H
H_H$..$._H_H___H_H$..$._H_H
H___$...$H_H__*__H_$...$H_H
H_H$...$_H$HH_HH*H$...$___H
H_H_.$..$H.____H_H_.$..$H_H
H_H_$_$____HHHHH___$_$__H_H
H*HHH_HHHH___H___HHH_HHHH_H
H________*_*_*_*_*______*_H
HHHHHHHHHHHHHHHHHHHHHHHHHHH
[/soko]
作者: admin    时间: 2011-5-4 19:42

不过还不太清楚实现的原理了,mf8论坛是用自定义Discuz!代码把上面的
的Discuz!代码替换为下面的HTML代码。
但是HTML代码里面关键的soko.php文件是如何实现合并图片的呢?


<img src='http://bbs.mf8.com.cn/soko/soko.php?w=27&h=27&level=<br />
HHHHHHHHHHHHHHHHHHHHHHHHHHH<br />
H_*______._*_*_*_$________H<br />
H_HHHH_HHH$__H__.HHHH_HHH*H<br />
H_H__$_$___HHHHH____$_$_H_H<br />
H_H$..$._H_H____.H$..$._H_H<br />
H___$...$H*HH_HH$H_$...$H_H<br />
H_H$...$_H__*__H_H$...$___H<br />
H_H_.$..$H_H___H_H_.$..$H_H<br />
H_H_$_$____HHHHH___$_$__H_H<br />
H_H_HHHH_H___H__$H_HHHH_H*H<br />
H_$_.$___*_*_*_*_.___*____H<br />
H*_H_HHHH_*HHHHH*_HH_HHH_*H<br />
H__H_H__H__H___H__H_*H_H__H<br />
H*HH____HH*H___H*HH____HH*H<br />
H__H_H*aH__H___H__H__H_H__H<br />
H*_HHH_HH_*HHHHH*_HHHH_H_*H<br />
H____*_____*_*_*_*___$.___H<br />
H*H_HHHH_H.__H___H_HHHH_H*H<br />
H_H__$_$___HHHHH____$_$_H_H<br />
H_H$..$._H_H___H_H$..$._H_H<br />
H___$...$H_H__*__H_$...$H_H<br />
H_H$...$_H$HH_HH*H$...$___H<br />
H_H_.$..$H.____H_H_.$..$H_H<br />
H_H_$_$____HHHHH___$_$__H_H<br />
H*HHH_HHHH___H___HHH_HHHH_H<br />
H________*_*_*_*_*______*_H<br />
HHHHHHHHHHHHHHHHHHHHHHHHHHH<br />
'>
作者: admin    时间: 2011-5-4 20:06

经过搜索,基本明白了。php代码经过服务器端运行之后,可以返回文本html文件,也可以返回一个图片。
参看:http://itshenxiaoxiang.blog.163. ... 156342010882487988/
作者: admin    时间: 2011-5-4 21:12

[soko=27,27]
HHHHHHHHHHHHHHHHHHHHHHHHHHH
H_*______._*_*_*_$________H
H_HHHH_HHH$__H__.HHHH_HHH*H
H_H__$_$___HHHHH____$_$_H_H
H_H$..$._H_H____.H$..$._H_H
H___$...$H*HH_HH$H_$...$H_H
H_H$...$_H__*__H_H$...$___H
H_H_.$..$H_H___H_H_.$..$H_H
H_H_$_$____HHHHH___$_$__H_H
H_H_HHHH_H___H__$H_HHHH_H*H
H_$_.$___*_*_*_*_.___*____H
H*_H_HHHH_*HHHHH*_HH_HHH_*H
H__H_H__H__H___H__H_*H_H__H
H*HH____HH*H___H*HH____HH*H
H__H_H*aH__H___H__H__H_H__H
H*_HHH_HH_*HHHHH*_HHHH_H_*H
H____*_____*_*_*_*___$.___H
H*H_HHHH_H.__H___H_HHHH_H*H
H_H__$_$___HHHHH____$_$_H_H
H_H$..$._H_H___H_H$..$._H_H
H___$...$H_H__*__H_$...$H_H
H_H$...$_H$HH_HH*H$...$___H
H_H_.$..$H.____H_H_.$..$H_H
H_H_$_$____HHHHH___$_$__H_H
H*HHH_HHHH___H___HHH_HHHH_H
H________*_*_*_*_*______*_H
HHHHHHHHHHHHHHHHHHHHHHHHHHH
[/soko]
作者: admin    时间: 2011-5-4 21:19

静态推箱子关卡图片生成功能也完成了,编写了一个PHP推箱子图片合成程序sokoimage.php

也是支持和MF8论坛一模一样的[soko
代码。只是把此Discuz! 代码替换为
<img src="http://sokoban.ws/utility/sokoimage.php?w=?&h=?&lvl=?">
作者: anian    时间: 2011-5-4 22:01

非常好!   进展很快!  
作者: sokoban    时间: 2011-5-4 22:18

7# anian

我们还可以把SokoReplayer也结合到论坛里来。
作者: anian    时间: 2011-5-5 00:09

The sokoplayer is good.

Another suggestion:  Can you display the  "move/push" status on the top instead of at the bottom ?  (basically display it before displaying the level)

I ask for this because in the script I am doing, I plan to make the display field a square so that when you add the "rotate" function in, it will work with 90 degrees rotation.
Displaying the move status at the bottom makes it look odd.
Move the status display to the top solves this problem.

Or perhaps you can even give a parm for this change (and by default it displays at the bottom)... in the script I will use the parm to make it display on the top.

Up to you.    My script basically works now, but it's not aligned yet.   So, it doesn't look nice.

I have the option to switch between two skins (we can add more), I will add option for Normalize or not.
作者: anian    时间: 2011-5-6 00:06

本帖最后由 stopheart 于 2011-7-27 14:44 编辑

5楼的皮肤很好看,请问谁能把这个皮肤给我,歪推箱子的皮肤不好看,我也会制作
作者: anian    时间: 2011-5-6 00:07

sokojava doesn't seem to work from my previous post... why???
作者: anian    时间: 2011-5-6 00:14

another test for sokojava.....










作者: admin    时间: 2011-5-6 11:50




作者: admin    时间: 2011-5-6 12:28

似乎Discuz!代码不支持嵌套另外一个Discuz!代码。只要出现了嵌套,系统一律不作替换。
哪怕嵌套的是一个并没有定义的[haha],如上所示。
作者: sokoban    时间: 2011-5-6 13:44

SokoPlayer 作了一些小修改:
Discuz!代码不是一行的情况,也能正常运行,即可以是如下形式:
  1. [sokojava=240,256]
  2. ---#########---|####---#---####|#--$-#$#$#----#|#-#$.#....###-#|#-#-.......##-#|#-#####*#*.-#-#|#-###--....-#-#|#-#-$-$###--#-#|#-#-#-$----##-#|#---##$#$---#|##$-$-----#-$##|-#--$###@##--#-|-#--$-----$--#-|-#--#######--#-|-####-----####-
  3. [/sokojava]
复制代码



作者: admin    时间: 2011-5-7 00:04

终于搞定。采取了直接修改Discuz!论坛程序源程序 discuzcode.func.php 的方法。
参考  http://summerlight.name/?p=31

修改的地方有两处:
  1. $bbcodes = 'b|i|u|color|size|font|align|list|indent|url|email|hide|quote|code|free|table|tr|td|img|swf|attach|payto|float|sokojava'
复制代码
  1. preg_replace(array(
  2.                         "/\[color=([#\w]+?)\]/i",
  3.                         "/\[size=(\d+?)\]/i",
  4.                         "/\[size=(\d+(\.\d+)?(px|pt|in|cm|mm|pc|em|ex|%)+?)\]/i",
  5.                         "/\[font=([^\[\<]+?)\]/i",
  6.                         "/\[align=(left|center|right)\]/i",
  7.                         "/\[float=(left|right)\]/i",
  8.                         "/\[sokojava=(\d+?),(\d+?)\]\s*(.+?)\s*\[\/sokojava\]/i"

  9.                 ), array(
  10.                         "<font color=\"\\1\">",
  11.                         "<font size=\"\\1\">",
  12.                         "<font style=\"font-size: \\1\">",
  13.                         "<font face=\"\\1 \">",
  14.                         "<p align=\"\\1\">",
  15.                         "<span style=\"float: \\1;\">",
  16.                         "<applet code=\"SokoPlayer.class\" codebase=\"http://sokoban.ws/sokoplayer/\" width=\\1 height=\\2>
  17. <PARAM NAME=\"level\"    VALUE=\"\\3\">
  18. <PARAM NAME=\"skin\" VALUE=\"http://sokoban.ws/sokoplayer/skin.png\"></applet>"
  19.                 ), $message));
复制代码

作者: anian    时间: 2011-5-7 00:59

This is good stuff!    Thank you for making it work!
作者: sokoban    时间: 2011-5-12 12:57

测试用:

####____
#--#____
#--#____
#--#####
#.$$-$@#
#--.-.-#
#--#####
####____




作者: sokoban    时间: 2011-5-19 01:04

本帖最后由 sokoban 于 2011-5-19 01:09 编辑

----#####----------
----#---#----------
----#$--#----------
--###--$##---------
--#--$-$-#---------
###-#-##-#---######
#---#-##-#####--..#
#-$--$----------..#
#####-###-#@##--..#
----#-----#########
----#######--------
[soko=19,11]
____HHHHH__________
____H___H__________
____H$__H__________
__HHH__$HH_________
__H__$_$_H_________
HHH_H_HH_H___HHHHHH
H___H_HH_HHHHH__..H
H_$__$__________..H
HHHHH_HHH_HaHH__..H
____H_____HHHHHHHHH
____HHHHHHH________
[/soko]
作者: sokoban    时间: 2011-6-17 11:29

##################################
#--------------------------------#
##*.****#-#############-#***.*.*##
#-.$.$.-#------$-$------#-$.$.$.-#
#-$.$.$-#-######-######-#-.$.$.$-#
#-.$.$.-#-------$-------#-$.$.$.-#
##$.$.$-#-#############-#-.$.$.$##
#-.$.#.-***-----*-----***-$.$.$.-#
#-$.$.$-#-#-####-####-#-#-.$.$.$-#
#-.$.$.-#---#--$-$--#---#-$.$.$.-#
##$.$.$-#-#-#-#$-$#-#-#-#$*$.$.$##
#-.$.$*$#---#--$-$--#---#-$.$.$.-#
#-$.$.$-#####-##-##-#####-.$.$.$-#
#-.$.$.-#-----#---#-----#-$.$.$.-#
##$.$.$-#-#####-$-#####-#-.$.$.$##
#-.$.$.-#-#-$-$$-$$-$-#-#-$.$.$.-#
#-$.$.$-#-#-----#-----#-#-.$.$.$-#
#-.$.$.-#-####.***.####-#-$.$.$.-#
##$.$.$-#----#-...-#----#-.$.$.$##
#-.$.$.-####-###-###-####-$.$.$.-#
#-$.$.#..--#----@----#--..*#.$.$-#
#-.$.$.-#--#####.#####--#-$.*.$.-#
##$.$.**#$*-$-$---$-$-*$#**$.$.$##
#-------#--.....#.....--#--------#
##################################

[soko=34,25]
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
H________________________________H
HH*.****H_HHHHHHHHHHHHH_H***.*.*HH
H_.$.$._H______$_$______H_$.$.$._H
H_$.$.$_H_HHHHHH_HHHHHH_H_.$.$.$_H
H_.$.$._H_______$_______H_$.$.$._H
HH$.$.$_H_HHHHHHHHHHHHH_H_.$.$.$HH
H_.$.H._***_____*_____***_$.$.$._H
H_$.$.$_H_H_HHHH_HHHH_H_H_.$.$.$_H
H_.$.$._H___H__$_$__H___H_$.$.$._H
HH$.$.$_H_H_H_H$_$H_H_H_H$*$.$.$HH
H_.$.$*$H___H__$_$__H___H_$.$.$._H
H_$.$.$_HHHHH_HH_HH_HHHHH_.$.$.$_H
H_.$.$._H_____H___H_____H_$.$.$._H
HH$.$.$_H_HHHHH_$_HHHHH_H_.$.$.$HH
H_.$.$._H_H_$_$$_$$_$_H_H_$.$.$._H
H_$.$.$_H_H_____H_____H_H_.$.$.$_H
H_.$.$._H_HHHH.***.HHHH_H_$.$.$._H
HH$.$.$_H____H_..._H____H_.$.$.$HH
H_.$.$._HHHH_HHH_HHH_HHHH_$.$.$._H
H_$.$.H..__H____a____H__..*H.$.$_H
H_.$.$._H__HHHHH.HHHHH__H_$.*.$._H
HH$.$.**H$*_$_$___$_$_*$H**$.$.$HH
H_______H__.....H.....__H________H
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
[/soko]
作者: stopheart    时间: 2011-7-27 14:45

晕,我怎么把十楼的给编辑了??
5楼的皮肤很好看,请问谁能把这个皮肤给我,歪推箱子的皮肤不好看,我也会制作
作者: sokoban    时间: 2011-7-27 18:17

本帖最后由 sokoban 于 2011-7-27 18:33 编辑

这个还要稍微修改,加上四行动画才行。




欢迎光临 推箱子论坛 (http://sokoban.ws/bbs/) Powered by Discuz! 7.0.0