我有一个二维列表,我想对角检查它,但它只检查一条对角线而忽略其余的
它的6x6网格:
class Program
{
static void Main(string[] args)
{
var wrapper = new Wrapper<Client>();
string result;
wrapper.Invoke(c => c.Convert, 5, out result);
}
}
为什么不通过所有对角线?
答案 0 :(得分:0)
这部分代码,
self.TTT[i][i] for i in (0, 1, 2, 3, 4, 5)
按顺序生成以下各项:
self.TTT[0][0]
self.TTT[1][1]
self.TTT[2][2]
self.TTT[3][3]
self.TTT[4][4]
self.TTT[5][5]
没有其他坐标。难怪只检查了一条对角线!
然后,您需要的是至少拥有一对嵌套对for循环。也许是这样的:
for x in range(-6,7):
total = 0
for y in range(7):
if 0 <= x+y <= 6:
total += self.TTT[y][x+y]
if abs(total) == 3:
self.label['text']=('0 You WIN!')
self.end()
elif abs(total) == 105:
self.label['text']=('0 You WIN!')
self.end()
elif abs(total) == 300:
self.label['text']=('0 You WIN!')
self.end()
运行此代码以查看原因:
for x in range(-6,7):
for y in range(7):
if 0 <= x+y <= 6:
print(x+y,y)
print()
如果你想检查 anti -diagonals,那么我会让你弄清楚。这是一个很好的锻炼。 :)