On Mon, 24 Apr 2017 09:24:55 +1000 Phil <phil_...@bigpond.com> wrote:
> On Sun, 23 Apr 2017 09:39:54 +0200 > Sibylle Koczian <nulla.epist...@web.de> wrote: > > > Am 20.04.2017 um 14:43 schrieb Alan Gauld via Tutor: > > > Its not too bad you can map the large 9x9 table to the smaller > > > units using divmod() > > > > > > So the 7th element becomes > > > divmod(7) -> 2,1 > > > > > > > Should be divmod(7, 3), shouldn't it? > > Thanks Sibylle, I eventually stumbled upon the answer using my usual > trial-and-error method. The 3, as in the number of cells, was the key. Actually, that's not correct either. Say I want the 7th cell in the first line of a 9 x 9 grid, that would be x = 7, y = 1. divmod(7,1) = 2,1 or the first cell in grid 3. So far so good. Another example, x = 4, y = 3. divmod(4,3) = 1,1. What I need here is grid 2 x = 1 and y = 3. Further complications are, arrays, or lists in Python, start a 0 and divmod may not be the answer because divide by 0 is not possible. Making adjustments for these two possibilities has resulted in complicated code that does give the desired result. Of course, I may have misunderstood the intention of Alan's mapping method. So, what I need is a function to map from a 9 x 9 grid to a cell in a 3 x 3 grid. My feeble simplified attempt is as follows: def map_cell(x,y): return divmod(x,y) while(True): x,y = input().split(" ") print (map_cell(int(x), int(y))) -- Regards, Phil _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor