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