private void Scavo_button_Click(object sender, EventArgs e)
        {
            if (missione.Griglia_numerica.Mat[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y] != -1)
            {
                //Puoi scavare solo se hai abbastanza determinazione
                if (Gioco.Giocatore.Determinazione > 0)
                {
                    //riporto i label ai colori normali
                    Ubriachezza_label.ForeColor    = Color.Black;
                    Determinazione_label.ForeColor = Color.Black;
                    VitaNave_label.ForeColor       = Color.Black;

                    Gioco.Giocatore.DecDeterminazione(3);
                    //aggiorna label
                    Determinazione_label.Text = "Determinazione: " + Gioco.Giocatore.Determinazione + "/" +
                                                Gioco.Giocatore.DeterminazioneMax;
                    //cambia colore
                    Determinazione_label.ForeColor = Color.Red;


                    var rand = new Random();

                    var rng = rand.Next() * 100;

                    if (rng < 70)
                    {
                        temp = Resources.cross; //sostituisco la texure sabbia con quella scavo
                    }
                    else
                    {
                        temp = Resources.ruby;        //sostituisco la texure sabbia con rubino
                        Gioco.Dominio.CassaRubini++;  //ottieni un rubino

                        missione.Ranking.IncRubini(); //aumenta il conteggio per il ranking

                        //aggiorna label
                        Rubini_label.Text = "Rubini: " + Gioco.Dominio.CassaRubini;
                        //cambia colore
                        Rubini_label.ForeColor = Color.Green;
                    }

                    //uso la matrice di inizializzazione per verificare se le celle sono già state scavate
                    missione.Griglia_numerica.Mat[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y] = -1;
                    Scavo_button.Hide(); //la componente non serve più quindi la si nasconde
                }
            }

            UpdateComponenti();
        }
        internal void UpdateComponenti()
        {
            void CercaNemico()
            {
                for (int i = -1; i < 2; i++)
                {
                    for (int j = -1; j < 2; j++)
                    {
                        foreach (var n in missione.Nemici)
                        {
                            var tempLoc = new Loc2D(Gioco.Giocatore.Loc.X + i, Gioco.Giocatore.Loc.Y + j);
                            if (tempLoc.IsEqualTo(n.Loc) && !n.IsGameOver)
                            {
                                Attacca_button.Enabled = true;
                                Attacca_button.Show();
                                Attacca_button.Text = "Attacca: " + n.Nome + "\nHP: " + n.Stats.Hp + "/" + n.Stats.HpMax;
                                return;
                            }
                            else
                            {
                                Attacca_button.Hide();
                            }
                        }
                    }
                }
            }

            if (Gioco.Giocatore.Stats.Pa > 0)// controllo attacco
            {
                CercaNemico();
            }
            else
            {
                Attacca_button.Text    = "Attacca:\nNon hai energia";
                Attacca_button.Enabled = false;
            }


            // Controllo per scavare
            if (missione.Griglia_numerica.Mat[Gioco.Giocatore.Loc.X, Gioco.Giocatore.Loc.Y] == 1)
            {
                Scavo_button.Show();
            }
            else
            {
                Scavo_button.Hide();
            }

            //aggiorno il label ubriachezza
            AntiUbriachezza_label.Text = "AntiUbriachezza rimasti: " + Gioco.Giocatore.Inventario.AntiUbriachezza;
            Ubriachezza_label.Text     =
                "Ubriachezza: " + Gioco.Giocatore.Ubriachezza + "/" + Gioco.Giocatore.UbriachezzaMax;
            //aggiorno il label determinazione
            BevandaDet_label.Text     = "Bevande Det Rimaste: " + Gioco.Giocatore.Inventario.BevandaDeterminazione;
            Determinazione_label.Text = "Determinazione: " + Gioco.Giocatore.Determinazione + "/" +
                                        Gioco.Giocatore.DeterminazioneMax;
            //aggiorno label assi legno
            AssLeg_label.Text = "Assi rimaste: " + Gioco.Giocatore.Inventario.AssiLegno;
            //aggiorno label rum
            Rum_label.Text = "Rum rimasto: " + Gioco.Giocatore.Inventario.Rum;
            //aggiorna energia_label
            EnergiaNave_label.Text = "Punti azione: " + Gioco.Giocatore.Stats.Pa + "/" + Gioco.Giocatore.Stats.PaMax;
            // aggiorna label vita
            VitaNave_label.Text = "Punti Vita: " + Gioco.Giocatore.Stats.Hp + "/" + Gioco.Giocatore.Stats.HpMax;
        }