Machine a sous(bandit manchot )en c#

mamathdev - 12 déc. 2012 à 17:51
 mamathdev - 14 déc. 2012 à 18:25
Bonjour a tous,
j'ai besoin d'aide svp je suis debutant en c#,

je dois realisé une machine a sous (bandit manchot) en C# avec visual studio,

j'ai empilé plusieurs picturebox sur chaque case du bandit manchot..le resultat souhaité , c'est que quand j'appui sur button , chaque case fait defilé les differente picturebox pour s'arreter au hasard sur un picture box..pour cela j'ai fais ce code:

public partial class Form1 : Form
    {
        int   resultat, gain=0, credit ;
        Random rnd = new Random();
        

public Form1()
        {
                  
            InitializeComponent();
        }

   private void button1_Click(object sender, EventArgs e)
        {
            if (credit != 0)
            {

                for (int nbaleatoire = 1; nbaleatoire < 50; nbaleatoire++)
                {
                    int colonne1 = rnd.Next(1, 4);
                    int colonne2 = rnd.Next(1, 4);
                    int colonne3 = rnd.Next(1, 4);

                    switch (colonne1)
                    {
                        case 1: this.pictureBox1.Image = Machine_a_sous.Properties.Resources.images__1_;
                            break;
                        case 2: this.pictureBox2.Image = Machine_a_sous.Properties.Resources.images__4_;
                            break;
                        case 3: this.pictureBox3.Image = Machine_a_sous.Properties.Resources.images__6_;
                            break;
                        case 4: this.pictureBox4.Image = Machine_a_sous.Properties.Resources.images__7_;
                            break;
                    }
                    switch (colonne2)
                    {
                        case 1: this.pictureBox5.Image = Machine_a_sous.Properties.Resources.images__1_;
                            break;
                        case 2: this.pictureBox6.Image = Machine_a_sous.Properties.Resources.images__4_;
                            break;
                        case 3: this.pictureBox7.Image = Machine_a_sous.Properties.Resources.images__6_;
                            break;
                        case 4: this.pictureBox8.Image = Machine_a_sous.Properties.Resources.images__7_;
                            break;
                    }
                    switch (colonne3)
                    {
                        case 1: this.pictureBox9.Image = Machine_a_sous.Properties.Resources.images__1_;
                            break;
                        case 2: this.pictureBox10.Image = Machine_a_sous.Properties.Resources.images__4_;
                            break;
                        case 3: this.pictureBox11.Image = Machine_a_sous.Properties.Resources.images__6_;
                            break;
                        case 4: this.pictureBox12.Image = Machine_a_sous.Properties.Resources.images__7_;
                            break;
                    } Application.DoEvents();
                      System.Threading.Thread.Sleep(1000);


Le probleme est bete: quand je clique sur le button , et bien rien ne se passe..!!
Avez vous une piste?
Faut -il que je joue sur ...visible=true et visible=false?

5 réponses

Un petit up ..please
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
12 déc. 2012 à 21:54
Salut,

un seul pictureBox par case suffit dans ton cas,
mais si tu veux garder ton code, rajoute ça dans tous les case, devait marcher :

case 1: 
    //...
    pictureBox1.BringToFront();
    break;

case 2:
    //...
    pictureBox2.BringToFront();
    break;

// ect...


bye...
salut , je suis aussi nouveau en programmation et par rapport à ce même programme,
je me demandais comment faire pour rédiger en c# des conditions comme

" [color=green]si (colonne1 == colonne2 == colonne3 )
{
crédit = crédit + 10;
}

// si les 3 images sont identiques dans chaque picturebox , on gagne des points.
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
13 déc. 2012 à 13:18
Re,

Si tu avais fait un seul pictureBox par case,
facile de faire une égalité de référence sur les images

if( Object.ReferenceEgal(pictureBox1.Image, pictureBox2.Image) && Object.ReferenceEgal(pictureBox2.Image, pictureBox3.Image) )
{
   // 3 images identiques
}


Mais avec l'empilement de pictureBox, c'est plus compliqué.

Tu peux déclarer 3 images de référence et les affecter à chaque fois que tu affectes un pictureBox, puis tester l'égalité à la fin

Image img1 = null;
Image img2 = null;
Image img3 = null;

switch (colonne1)
{
case 1: 
    //...
    img1 = pictureBox1.Image;
    break;
case 2:
    //...
    img1 = pictureBox2.Image;
    break;
// ect...
}

switch (colonne2)
{
case 1: 
    //...    
    img2 = pictureBox5.Image;
    break;
// ect...
}

switch (colonne3)
{
case 1: 
    //...
    img3 = pictureBox9.Image;
    break;
// ect...
}

// puis
if( Object.ReferenceEgal(img1, img2) && Object.ReferenceEgal(img2, img3) )
{
   // 3 images identiques
}



bye...

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RE,

merci pour ton aide)
mon idée d'empiler les picturebox n'etait pas genial, j'ai donc fais comme tu disais, et merci pour le code d'egalité de reference , je n'aurais pas trouver ca tout seul.

bye
Rejoignez-nous