我正在使用HTML / CSS / PHP开展基于国际象棋的爱好项目。我事先并不熟悉国际象棋,所以我决定制作一个工具,根据给定棋子的类型和方格显示允许哪些动作。
我有一个带有两个文本字段的HTML表单:一个是作品的类型,另一个是所述作品的当前正方形。一切正常,但我想使用正则表达式包含验证。
片段类型的有效,不区分大小写的输入是 p,pawn,r,rook,b,bishop,n,knight,q,queen,k,king 。
广场的有效,不区分大小写的输入是 LetterNumber ,其中 Letter 可以 AH 和 Number 可以 1-8 。
所以我想知道使用正则表达式是否可行/实用,如果是这样,有人能让我知道它们是什么吗?我想我应该只使用带有逻辑ors的条件语句作为片段类型,但我很想知道是否还有其他解决方案。
答案 0 :(得分:8)
编程国际象棋运动验证
你总是可以使用正则表达式来至少设置要调查的图块(不需要调查那些块根本无法移动的图块),例如,拾取一个peon时应该检查最多四个图块(两个罢工)地点,单动,可能是最初的双重动作。
我相信它可以用这样的东西来完成:
1 algoritm获取要检查的字段数组。 字段检测阻塞片段的路径(好的和坏的)。 (骑士不需要,因为他疯了;]) 字段检测敌人的碎片以进行打击(在路径中,除了棋子。)
记得: - 如果移动会让您受到检查,则无法执行此操作。 - 如果你在检查,你只能避免检查或 - 只有“特殊规则”才能进行铸造和推广。促销并不会影响您的运动计算。铸造可以用两个布线来完成,“皇后边完好无损”和“国王边完好无损”,如果有任何移动,开始真实并打破假(不要只是检测他们是否站在正确的地方,因为一些国际象棋模拟器...它的尴尬。将你的女王移回她的起始位置并不会为女王铸造而开放。)更优质的PHP国际象棋资源
以下是一些基于php的国际象棋游戏,我没有时间仔细研究它们,但应该有大量的移动验证来学习:
http://www.bebogame.com/download/php/multiplayer_chess/multiplayer_chess.zip
答案 1 :(得分:5)
输入的正则表达式:
您可以为表单评估onblur,onchange和onsubmit。
我同意验证客户端和服务器端的移动也很有意义。
答案 2 :(得分:2)
我强烈建议您针对这样的任务使用正则表达式。任何给定作品的有效移动都与其当前位置和颜色有关,并且通过验证功能可以更好地验证。