[Tutor] MineSweeper

Adam Cripps kabads at gmail.com
Sat Jun 25 19:24:20 CEST 2005


On 6/25/05, Alberto Troiano <albertito_g at hotmail.com> wrote:
> Hey Tutors
> I have a question
> I want to make a minesweeper (just for practice) but I don't what can I use
> to make the GUI
> I was thinking about buttons (click event you know) and change the
> background image on change
> Maybe there's another widget to use
> My doubt is that I want to be able to allow the user to put how many bombs
> they want and how any spaces (how big is the board) so I will have to create
> buttons dinamically, but in doing this the reference to the buttons will be
> lost
> How do I know which button did I click when all buttons have the same name?
> Does this make sense?
> I recall in VB.6.0 the control matrix but I never knew how to use it
> 
> Any help?
> 
> Thanks in advanced
> 
> Alberto

I have written some similar code to this - you give each button a
different name through an interator.

You can see my code at:

http://www.sf.net/projects/jiletters and follow the links to the CVS
code repository.

For that, I used wxPython, but it's up to you what you go for. 

The main part that may be useful to you is:

        for i in noduplicatesalphabet:
            identity = int(D[i]) + 29 # It's quicker to add 29 than go
through and edit the dictionary by hand
            bmp = wxBitmap('alphabet_graphics/' + i + '.bmp', wxBITMAP_TYPE_BMP)
            self.grafic =wxBitmapButton(self,
identity,bmp,wxPoint(160,20),
wxSize(bmp.GetWidth()+10,bmp.GetHeight()+10))
            self.sizer2.Add(self.grafic,1,wxEXPAND)
            EVT_BUTTON(self, identity, self.ButtonPushed)

The noduplicates is a list that I generated by hand, but you could do
this in a range(a,b) way if it's not attached to any particular data
or meaning.

The EVT_BUTTON passes the id to the function self.ButtonPushed, which
then can tell which button was pushed.

HTH
Adam


-- 
http://www.monkeez.org
PGP key: 0x7111B833


More information about the Tutor mailing list