php - 用于验证基于国际象棋的输入的正则表达式?

标签 php regex chess

我正在使用 HTML/CSS/PHP 开发一个基于国际象棋的业余项目。我之前不熟悉国际象棋,所以我决定制作一个工具,根据给定棋子的类型和方格显示允许的走法。

我有一个带有两个文本字段的 HTML 表单:一个用于棋子的类型,另一个用于该棋子的当前方格。一切正常,但我想包括使用正则表达式的验证。

棋子类型的有效、不区分大小写的输入是p、pawn、r、rook、b、bishop、n、knight、q、queen、k、king

正方形的有效、不区分大小写的输入是 LetterNumber,其中 Letter 可以是 A-HNumber可以是 1-8

所以我想知道使用正则表达式是否可行/实用,如果可行,谁能告诉我它们是什么?我在想我应该只对片段类型使用带有逻辑或的条件语句,但我很想知道是否还有其他解决方案。

最佳答案

编程国际象棋 Action 验证

您始终可以使用正则表达式来至少设置要调查的方 block (无需调查棋子根本无法移动的方 block ),例如,拿起一个苦工时最多应检查四个方 block (两次罢工位置、单步移动,可能还有初始的双步移动)。

我相信它可以用这样的东西来完成:

1 algoritm 获取要检查的字段数组。 字段检测阻塞 block (好的和坏的)的路径。 (骑士不需要,因为他疯了;]) fields 检测要攻击的敌人棋子(在路径中,棋子除外。)

记住: - 如果移动会让你受到控制,你就不能执行它。 - 如果你被检查,你只能避免检查或 - 只有“特殊规则”是类型转换和升级。晋升并不会真正影响你的运动计算。转换可以用两个 bool 值来完成,“女王侧完好无损”和“国王侧完好无损”,开始为真,如果有任何移动则变为假(不要像一些国际象棋模拟游戏那样只检测它们是否站在正确的位置...... .这很尴尬。将你的女王移回她的起始位置不会为女王易位打开。)


更多不错的PHP象棋资源

这里有一些基于 php 的国际象棋游戏,我没有时间全部看完,但是应该有很多移动验证可以学习:

http://www.bebogame.com/download/php/multiplayer_chess/multiplayer_chess.zip

http://sourceforge.net/projects/some-chess/files/Some%20Chess%202.0/Some%20Chess%202.0%20beta%203/SomeChess_2.0b3.tbz/download

http://www.redlionwebdesign.com/phpchess.htm

关于php - 用于验证基于国际象棋的输入的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203510/

相关文章:

reactjs - React-chessground 可以与 chessground@8 或更高版本一起使用吗?

java - 请人审查 Bishop 的 Action 逻辑

java - 使用变量调用类的新实例

php - 如何通过AJAX发回大量不同的数据

php - 更新 MySQL 后,为空 'float' 字段添加 0(零)而不是 null

PHP POCO 风格的数据库访问

regex - 正则表达式:捕捉线后不跟'---'

php - 未选择数据库

正则表达式说什么不匹配?

c# - 检测用于创建 RegEx 的文件名模式