->Terry<- wrote:
> Thanks for the reply Kent and others. I've made some
> changes and the game is quite playable now. I've put
> the new version online at the same links if anyone
> wants to take a look.
A few more ideas:
- I think you missed my earlier suggestion about simplifying get_button().
- You have the same code in two places to initialize the board. Code
duplication is a strong "code smell" and it's generally a good idea to
eliminate it. In this case it would be easy to make a function to initialize
the board and call it in two places. The function can return the new board
which you can then assign to the state variable.
- I think the program would benefit from having a Button class. Buttons have
several different states and behaviours which could all be bundled into a
class. The state of a button includes its location and whether it has a peg in
it. The behaviours of a Button are draw, add or remove a peg, and hit testing.
If you make this change I would expect that peg_coords and state would both be
replaced by a list of Buttons. get_button() would look like this:
def get_button(click):
for button in buttons:
if click in button:
return button
redraw_screen() would become
def redraw_screen():
screen.blit(board, (0, 0)) # Draw board
for button in buttons:
button.draw(screen)
pygame.display.update()
return
Kent
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor