编程中的一个易错点:判断某个点是否超出棋盘边界

给定一个r行c列的棋盘,给定一个点x,y,要求判断点(x,y)处是否可以放置棋子。

判断越界时不能转化成一维判断越界,判断越界必须在二维空间中进行。

r, c = 3, 3
a = [0] * (r * c)


def right_legal(x, y):
    return r > x >= 0 and c > y >= 0 and a[x * c + y] == 0


def wrong_legal(x, y):
    p = x * c + y
    return r * c > p >= 0 and a[p] == 0


print(right_legal(0, 4))#False,不合法,已经越界了
print(wrong_legal(0, 4))#True,合法,转化成一维后相当于(1,3)点
原文地址:https://www.cnblogs.com/weiyinfu/p/8419180.html