<分区>
我正在做一个类似糖果粉碎的游戏,但我在创建逻辑时遇到了问题。
让我们以这张 map 为例:
1, 3, 2, 1
2, 2, 2, 3
1, 3, 2, 2,
3, 3, 3, 2
我如何检查其中一行中是否有大于或等于 3 次的重复数字?
我尝试为每种情况做“if 语句”,但我认为这不是一个好主意,对于每种情况,都应该有专门的功能……或者至少创建一个。
Solutin 可以是 PHP 或 Javascript。
标签 javascript php jquery
<分区>
我正在做一个类似糖果粉碎的游戏,但我在创建逻辑时遇到了问题。
让我们以这张 map 为例:
我如何检查其中一行中是否有大于或等于 3 次的重复数字?
我尝试为每种情况做“if 语句”,但我认为这不是一个好主意,对于每种情况,都应该有专门的功能……或者至少创建一个。
Solutin 可以是 PHP 或 Javascript。
最佳答案
如果您使用如下所示的字符串表示形式,那么 preg_match() 可能会有所帮助。
$rows = array(
'1321',
'2223',
'1322',
'3332',
'3222',
'12312322222222123123'
);
foreach($rows as $row) {
echo $row .' 3+ repeating values: ';
if(preg_match('/(1{3,}|2{3,}|3{3,})/',$row,$matches)) {
echo 'Yes';
echo ', found at pos. ' . strpos($row, $matches[0]);
echo ' (' . $matches[0] . ')';
} else {
echo 'No';
}
echo "\n";
};
输出是:
1321 3+ repeating values: No
2223 3+ repeating values: Yes, found at pos. 0 (222)
1322 3+ repeating values: No
3332 3+ repeating values: Yes, found at pos. 0 (333)
3222 3+ repeating values: Yes, found at pos. 1 (222)
12312322222222123123 3+ repeating values: Yes, found at pos. 6 (22222222)
您可以使用 http://sandbox.onlinephpfunctions.com/code/c183683c96af513e9a4b539ed8f713a685f34541 处的代码
使用 PREG_OFFSET_CAPTURE 标志的替代版本,如@Mark Baker 所建议的
foreach($rows as $row) {
echo $row .' 3 repeating values: ';
if(preg_match('/(1{3,}|2{3,}|3{3,})/',$row,$matches,PREG_OFFSET_CAPTURE)) {
list($match, $pos) = $matches[0];
echo "Yes, found at pos. $pos ($match)\n";
} else {
echo "No\n";
}
};
关于javascript - 糖果粉碎游戏逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535967/
相关文章:
php - 计算 php 和 mysql 中某个日期范围内每个州的条目总数
javascript - Flot 工具提示出现在折线图上而不是条形图上
jquery - 我们如何将 X 和 Y 轴移动到气泡图中的中心 (JQPlot)
javascript - 如何使用 JustGage 按扇区显示颜色
javascript - 如何向 CSS Accordion 添加加减号
javascript - 如何将 chrome.storage 与远程托管数据库一起用于 Chrome 扩展?
javascript - 使用javascript将网页转换为图像