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); } }
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); } }