->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  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to