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