我正在使用 HTML/CSS/PHP 开发一个基于国际象棋的业余项目。我之前不熟悉国际象棋,所以我决定制作一个工具,根据给定棋子的类型和方格显示允许的走法。
我有一个带有两个文本字段的 HTML 表单:一个用于棋子的类型,另一个用于该棋子的当前方格。一切正常,但我想包括使用正则表达式的验证。
棋子类型的有效、不区分大小写的输入是p、pawn、r、rook、b、bishop、n、knight、q、queen、k、king。
正方形的有效、不区分大小写的输入是 LetterNumber,其中 Letter 可以是 A-H 和 Number可以是 1-8。
所以我想知道使用正则表达式是否可行/实用,如果可行,谁能告诉我它们是什么?我在想我应该只对片段类型使用带有逻辑或的条件语句,但我很想知道是否还有其他解决方案。
最佳答案
编程国际象棋 Action 验证
您始终可以使用正则表达式来至少设置要调查的方 block (无需调查棋子根本无法移动的方 block ),例如,拿起一个苦工时最多应检查四个方 block (两次罢工位置、单步移动,可能还有初始的双步移动)。
我相信它可以用这样的东西来完成:
1 algoritm 获取要检查的字段数组。 字段检测阻塞 block (好的和坏的)的路径。 (骑士不需要,因为他疯了;]) fields 检测要攻击的敌人棋子(在路径中,棋子除外。)
记住: - 如果移动会让你受到控制,你就不能执行它。 - 如果你被检查,你只能避免检查或 - 只有“特殊规则”是类型转换和升级。晋升并不会真正影响你的运动计算。转换可以用两个 bool 值来完成,“女王侧完好无损”和“国王侧完好无损”,开始为真,如果有任何移动则变为假(不要像一些国际象棋模拟游戏那样只检测它们是否站在正确的位置...... .这很尴尬。将你的女王移回她的起始位置不会为女王易位打开。)
更多不错的PHP象棋资源
这里有一些基于 php 的国际象棋游戏,我没有时间全部看完,但是应该有很多移动验证可以学习:
http://www.bebogame.com/download/php/multiplayer_chess/multiplayer_chess.zip
关于php - 用于验证基于国际象棋的输入的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203510/