Example #1
0
        public void sposta_cerchio(palo Destinazione, ref int mosse, int n, Form campo, Form menu)
        {
            if (top > 0)                                           //ci sono cerchi
            {
                a[top - 1].Immagine.ImageLocation = "cerchio.png"; //texture selezionato --> rosso

                if (Destinazione.top == 0 || Destinazione.a[Destinazione.top - 1].Immagine.Size.Width > a[top - 1].Immagine.Size.Width)
                {
                    a[top - 1].Immagine.Location = new Point((Destinazione.Immagine.Location.X + Destinazione.Immagine.Width / 2) - (a[top - 1].Immagine.Width / 2), campo.ClientSize.Height - (campo.ClientSize.Height / 20) * Destinazione.top - (campo.ClientSize.Height / 20));

                    Destinazione.a[Destinazione.top] = a[top - 1];
                    top--;
                    Destinazione.top++;
                    mosse++;
                    if (Destinazione.Immagine.Location.X > campo.ClientSize.Width / 3) //non sono sul palo 1
                    {
                        if (Destinazione.controllo_vittoria(n))                        //vinto
                        {
                            stampa_vittoria(mosse, n);
                            campo.Hide(); //nascondo campo gioco
                            menu.Show();  //mostro menu
                        }
                    }
                }
            }
        }
        private void Inizio_Click(object sender, EventArgs e) //inizia il gioco
        {
            if (nickname.Text != "")                          //nome valido
            {
                inizio = true;                                //partita iniziata

                Hide();                                       //nascondi menu


                //campo gioco
                set_form_gioco();

                //costruttore
                p1 = new palo(n, n, form2, 0);
                p2 = new palo(n, 0, form2, 1);
                p3 = new palo(n, 0, form2, 2);

                set_tempo();
                set_conta_tempo();
                set_conta_mosse();
                set_bt_musica();
                set_bt_aiuto();



                //nome player
                string nm = nickname.Text;
                p1.set_nickname(nm);

                //aggiungo evento click su ogni palo
                p1.Immagine.MouseClick += p1_Click;
                p2.Immagine.MouseClick += p2_Click;
                p3.Immagine.MouseClick += p3_Click;
            }
            else
            {
                MessageBox.Show("Inserire un nome valido!", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #3
0
        public int towerOfHanoi(int p, palo da, palo fino, palo ausilio, ref int mosse, Form a, Form b, int n) //algoritmo ricorsivo
        {
            t = 0;                                                                                             //annulla score
            if (p == 1)
            {
                da.sposta_cerchio(fino, ref mosse, n, a, b);


                System.Threading.Thread.Sleep(1000);
                a.Refresh();

                return(1);
            }
            else
            {
                towerOfHanoi(p - 1, da, ausilio, fino, ref mosse, a, b, n);
                da.sposta_cerchio(fino, ref mosse, n, a, b);
                System.Threading.Thread.Sleep(1000);
                a.Refresh();
                towerOfHanoi(p - 1, ausilio, fino, da, ref mosse, a, b, n);
                return(1);
            }
        }