二次元配列って行の長さが全部同じグリッドで使う必要ないよね?
[y][x]で見るよりy=i//幅とx=i%幅のが早そうだし