You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

8x8网格随机生长算法异常:左右列无法正常扩展

问题根源

核心错误就在方向随机生成的代码里:你写的rand.Next(1,4),这个方法的第二个参数是不包含的上限,也就是说它只会生成1、2、3这三个数,永远碰不到4。而左方向对应的是case4,等于所有单元格永远不会尝试向左扩展!

这直接对应你遇到的两个异常:

  • 最右列的6:根本没机会向左扩张到其他列,自然困在最右列
  • 最左列的4:其他单元格永远不会尝试向左进入它的区域,所以4的区域只能上下扩展,完全占满左列,不让别的数值进来
修复方法

把方向随机的代码改成rand.Next(1,5),让它能生成1到4的所有方向:

switch (rand.Next(1, 5)) // 把4改成5,范围覆盖1-4
额外优化提示
  • 别用字符串传坐标了,用C#的元组更高效,不用拆字符串:
    private (int row, int col) CellToCoords(int cell)
    {
        int col = cell % size;
        if (col == 0) col = size;
        int row = (cell - col) / size + 1;
        return (row, col);
    }
    
    调用时直接用:
    var (row, col) = CellToCoords(cell);
    
  • 可以优化随机选择的单元格,只从已经着色的单元格里挑,避免每次循环选到空白单元格做无用功,加快填充速度。

内容的提问来源于stack exchange,提问作者Lisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 13:27:40