我想通过位板系统构建一个棋盘.
从12个位板开始,我想显示一个表(棋盘),在循环/迭代期间必须绘制一个块.
从12个位板开始,我想显示一个表(棋盘),在循环/迭代期间必须绘制一个块.
我如何循环所有位值?
我想的是:
for(i = 0; i <64; i)
绘制表/构建数组/绘制空方块
这些是我开始游戏的价值观:
function init_game($whitePlayer,$blackPlayer) { $WhitePawns = '0000000000000000000000000000000000000000000000001111111100000000'; $WhiteKnights = '0000000000000000000000000000000000000000000000000000000001000010'; $WhiteBishops = '0000000000000000000000000000000000000000000000000000000000100100'; $WhiteRooks = '0000000000000000000000000000000000000000000000000000000010000001'; $WhiteQueens = '0000000000000000000000000000000000000000000000000000000000010000'; $WhiteKing = '0000000000000000000000000000000000000000000000000000000000001000'; $BlackPawns = '0000000011111111000000000000000000000000000000000000000000000000'; $BlackKnights = '0100001000000000000000000000000000000000000000000000000001000010'; $BlackBishops = '0010010000000000000000000000000000000000000000000000000000100100'; $BlackRooks = '1000000100000000000000000000000000000000000000000000000000000000'; $BlackQueens = '0000100000000000000000000000000000000000000000000000000000000000'; $BlackKing = '0001000000000000000000000000000000000000000000000000000000000000'; $WhitePieces = $WhitePawns|$WhiteKnights|$WhiteBishops|$WhiteRooks|$WhiteQueens|$WhiteKing; $BlackPieces = $BlackPawns|$BlackKnights|$BlackBishops|$BlackRooks|$BlackQueens|$BlackKing; }
有人问我:为什么选择位线?
回答:
关于位板
通常用于象棋,棋子和othello等棋盘游戏的位板是bitset数据结构的一种特殊化,其中每个位代表游戏位置或状态,旨在优化速度和/或内存或磁盘在质量计算中的使用.同一位板中的位在游戏规则中彼此相关,通常在一起形成游戏位置时.其他位板通常用作掩码来转换或回答关于位置的查询. “游戏”可以是任何类似游戏的系统,其中信息以结构化形式紧密打包,其中“规则”影响各个单元或部件的相关性.
首先,您必须检查您的PHP版本是否支持64位整数,否则您将得到奇怪的结果.
原文链接:https://www.f2er.com/php/444955.html赶紧跑:
echo PHP_INT_MAX;
如果结果是9223372036854775807那么它应该工作.
你正在使用字符串,我想当你做$string |时$string的形式就像你上面那样,然后它将被转换为基数为10的整数,因此结果将不是你想要的.从PHP 5.4开始,您可以使用0b000表示法,对于较低的PHP版本,您需要将其保留为十六进制或十进制格式.如果您将值存储在数据库或类似的地方,并且您将以字符串形式接收值,或者您只想将其保持为上面显示的格式,那么您必须首先使用intVal($value,2)来正确地进行转换.
要迭代该值,您只能使用for循环(如您所建议):
$value = intVal($WhitePieces,2); for ($i = 0 ; $i < 64 ; ++$i) { if ((pow(2,$i) & $value)) { // draw piece } }