Question re: objects and square grids

Andrew Bradley abradley201 at gmail.com
Wed May 15 18:48:07 EDT 2013


ok, now I have tested this more thoroughly, and it seems i can only do the
grid[x][y] function up to grid[9][9], when i really should be able to be
doing up to grid[10][20].
What exactly is the function of this row_squares list?



On Wed, May 15, 2013 at 4:35 PM, Andrew Bradley <abradley201 at gmail.com>wrote:

> 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/013cbf7e/attachment.html>


More information about the Python-list mailing list