Ejemplo n.º 1
0
        private void bottoneCampoDaGioco_Click(object sender, MouseEventArgs e)
        {
            // Ottengo le cordinate del bottone cliccato
            Button bottoneCliccato = (Button)sender;
            Point  posizione       = (Point)bottoneCliccato.Tag;

            Casella casellaSelezionata = new Casella(posizione.X, posizione.Y);

            if (naveSelezionata == null)
            {
                formPartita.ConsoleLabel.Text = "Non hai selezionato ancora nessuna nave!";
            }
            else
            {
                switch (e.Button)
                {
                case MouseButtons.Right:
                    // Se premo il tasto destro del mouse devo modificare la direzione dell'inserimento da orizzontale
                    // a verticale o viceversa
                    direzioneInserimento          = !direzioneInserimento;
                    formPartita.ConsoleLabel.Text = "Direzione inserirento:" + ((direzioneInserimento)? "orizzontale" : "verticale");

                    break;

                case MouseButtons.Left:
                    // Controllo che la nave non sia stata inserita in precedenza
                    if (naveSelezionata.Inserita)
                    {
                        formPartita.ConsoleLabel.Text = "La nave selezionata è gia stata inserita.";
                    }
                    else
                    {
                        // Provo l'inserimento della nave nel campo del giocatore
                        naveSelezionata.InserimentoNave(casellaSelezionata, giocatore_1.MioCampo, direzioneInserimento);
                        // Condizione if per controllare che l'inserimento sia andato a buon fine
                        if (naveSelezionata.Inserita)
                        {
                            // Se l'inserimento è andato a buon fine aggiorno il campo da gioco del giocatore in modo che l'utente
                            // possa vedere l'avvenuto inserimento
                            picSelezionata.BackColor = Color.FromArgb(73, 255, 93);
                            for (int i = 0; i < naveSelezionata.Lunghezza; i++)
                            {
                                campoG1Btn[naveSelezionata.Posizione[i].Riga, naveSelezionata.Posizione[i].Colonna].Text      = "" + naveSelezionata.SimboloNave;
                                campoG1Btn[naveSelezionata.Posizione[i].Riga, naveSelezionata.Posizione[i].Colonna].BackColor = Color.Gray;
                            }
                        }
                        else
                        {
                            formPartita.ConsoleLabel.Text = "La casella e/o la direzione scelta non risulta valida";
                        }
                    }
                    break;
                }
            }
            // Invoco la funzione che andrà a controllare se la partita può iniziare
            controlloInizioPartita();
        }