Question re: objects and square grids

Andrew Bradley abradley201 at gmail.com
Wed May 15 16:35:57 EDT 2013


Now I want to show you what I have written:

row = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
column = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20)
SQUARESIZE = 43

grid = []
for row in range(10):
    row_squares = []
    for column in range(20):
        rect = Rect(12 + column * SQUARESIZE, 10 + row * SQUARESIZE,
SQUARESIZE, SQUARESIZE)
        row_squares.append(rect)
    grid.append(row_squares)

It appears to be working (that is, the program still runs without
crashing). So now, how can I utilize this new grid list? Thank you for the
help so far, I feel like the entire grid is now being worked out.
-Andrew



On Wed, May 15, 2013 at 3:57 PM, Dave Angel <davea at davea.name> wrote:

> On 05/15/2013 02:14 PM, Andrew Bradley wrote:
>
> Please reply on the list, not privately, unless it's something like a
> simple thank-you.  Typically, you'd do a reply-all, then delete the people
> other than the list itself.  Or if you're using Thunderbird, you could just
> reply-list.
>
> > Thank you very much for your response: it seems excellent, but I'm
> afraid I
> > do not understand it fully. Your code here:
>
> >
> > maxrows = 10
> > maxcols = 20
> > grid = []
> > for row in range(maxrows):
> >      rowdata = []
> >      for column in range(maxcols):
> >          arg1 = ...
> >          arg2 = ...
> >          arg3 = ...
> >          arg4 = ...
> >          rowdata.append(pygame.Rect(arg
> > 1, arg2, arg3, arg4)
> >      grid.append(rowdata)
> >
> > Seems very good, but keep in mind I just started programming last week,
> and
> > this is hard for me to wrap my head around. Do I really just write grid =
> > []? or is this like a def grid(): function?
>
> This code was intended to replace the 200 lines you started, A1= pygame...
> A2=  A3=   etc.  I'd have put them inside a function, but this is just one
> of the things I'd have initialized in such a function.  grid is a list of
> lists, not a function.
>
>
> > What do you mean by rowdata = []?
>
> [] is the way you define an empty list.  Another way might be:
>     rowdata = list()
>
>
> > And how exactly would I make the formula for a rect call?
>
> Well, for row==0 and col==0, you say you wanted 10, 12, 43, and 43 for the
> four parameters.   But you never said how you were going to (manually)
> calculate those numbers for other cells.  Only once you've decided that can
> you fill in "formulas" for arg1 and arg2.  I suspect that arg3 and arg4 are
> simply 43 and 43 respectively, since you want all the cells to be the same
> size.
>
> taking my clue from Ian, I might try:
>
>     x_offset = 10
>     y_offset = 12
>     width = height = 43
>     arg1 = column * width + x_offset
>     arg2 = row * height + y_offset
>     arg3 = width
>     arg4 = height
>
> That assumes that there is no gap between cells in this grid.  If you want
> a gap, then the width value used in the arg1 formula would be more than 43
> (width).  Likewise the height value used in the arg2 formula would be more
> than 43 (height).
>
> > If there's a good website for these kind of details, I would appreciate
> that too.
>
> You cannot begin to write a non-trivial program in Python without
> understanding lists pretty thoroughly.  Perhaps you should start with Alan
> Gauld's tutorial, which doesn't assume previous programming experience.
>    http://www.alan-g.me.uk/
>
> I haven't studied it, as Python was about my 35th programming language.
>  But he's very active on Python-tutor, and explains things very well. So
> his website is probably very good as well.
>
> Now, as you can see from Ian's message, writing a game using pygame will
> require quite a bit of other understanding.  He demonstrates with classes
> to represent cells, which is indeed what I'd do.  But I suspect you're not
> nearly ready to consider writing classes.  (You use classes all the time.
>  For example, 5 is an instance of class int.)
>
>
> --
> DaveA
>
>
>
> --
> DaveA
> --
> http://mail.python.org/**mailman/listinfo/python-list<http://mail.python.org/mailman/listinfo/python-list>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130515/2674883b/attachment.html>


More information about the Python-list mailing list