In comp.lang.python, Paul Rubin <no.email@nospam.invalid> wrote: Thanks for posting this. I'm learning python and am very familiar with this "game".
> #!/usr/bin/python3 > from itertools import chain > > def adjacents(cell): # generate coordinates of cell neighbors > x, y = cell # a cell is just an x,y coordinate pair > return ((x+i,y+j) for i in [-1,0,1] for j in [-1,0,1] if i or j) This line confuses me. How do you expect "if i or j" to work there? >>> for pair in adjacents((0,0)): ... print(pair) ... (-1, -1) (-1, 0) (-1, 1) (0, -1) (0, 1) (1, -1) (1, 0) (1, 1) >>> def neighboring(cell): ... x, y = cell ... return ((x+i,y+j) for i in [-1,0,1] for j in [-1,0,1]) ... >>> >>> for pair in neighboring((0,0)): ... print(pair) ... (-1, -1) (-1, 0) (-1, 1) (0, -1) (0, 0) (0, 1) (1, -1) (1, 0) (1, 1) >>> Elijah ------ is the torus game board unintentional? -- https://mail.python.org/mailman/listinfo/python-list