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

Python实现10x10蛇梯棋Alternating Direction Loop布局方法

10*10蛇梯棋蛇形交替布局实现

不需要编写多组循环暴力实现,仅用Python基础单循环即可完成传统交替方向的棋盘排布。

原有代码的问题是所有行固定从最左侧x=0位置开始从左到右排列,没有对需要反向的行做列坐标翻转,因此只能得到普通逐行左对齐的网格效果。

核心实现逻辑

蛇形排布的核心判断逻辑非常简单:

  • 提前计算单个方格的宽、高,无需放在循环内重复运算
  • 遍历0-99共100个方格序号,对每个序号计算其所属行号、默认从左到右规则下的列号
  • 判断当前行是否需要反向:奇数行(行号从0开始计数)将列号做翻转处理,即原列0对应列9、原列1对应列8,以此类推实现从右到左排布
  • 用翻转后的实际列号计算x坐标,y坐标计算逻辑和原有逻辑保持一致

修正后可直接使用的代码

w = WIDTH / 10
h = HEIGHT / 10
boardPlaces = []

for i in range(100):
    row = i // 10
    col = i % 10

    # 奇数行做反向排列
    if row % 2 == 1:
        actual_col = 9 - col
    else:
        actual_col = col

    x = actual_col * w
    y = row * h
    boardPlaces.append(Rect((x, y), (w, h)))

传统棋盘编号适配

常规蛇梯棋的编号从最底部行开始:最底部行1-10从左到右,向上一行11-20从右到左,直到最顶部行91-100从左到右。如果需要匹配这个规则,只需要把行号计算逻辑做倒序处理即可,替换行计算语句为:

row = 9 - (i // 10)

其余逻辑不需要做任何改动。

内容的提问来源于stack exchange,提问作者Cheesy Pig 88

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:01:06