private void BCampo_Click(object sender, EventArgs e) { naveHasBeenSelected = false; if (!p.campo.InserisciNave(naveSelezionata, x, y)) { return; } foreach (Button bCampo in gbCampo.Controls) { bCampo.MouseEnter -= BOnMouseEnter; bCampo.Click -= BCampo_Click; } gbNavi.Controls.Clear(); p.giocatori[0].navi.Remove(naveSelezionata); naveSelezionata = null; StampaNaviPosizionabili(); AggiornaBtnCampo(p.campo, Campo.PlayerType.Io); AggiornaCampo(Campo.PlayerType.Io); if (p.giocatori[0].navi.Count == 0) { InizioMatch(); return; } }
public void creaNaviPosizionabili(int dimensione) { nave = new Nave(Nave.Type.da5, Nave.Orientamento.Orizzontale); for (var i = 0; i < dimensione / 5; i++) { navi.Add(nave); } nave = new Nave(Nave.Type.da4, Nave.Orientamento.Orizzontale); for (var i = 0; i < dimensione / 5; i++) { navi.Add(nave); } nave = new Nave(Nave.Type.da3, Nave.Orientamento.Orizzontale); for (var i = 0; i < dimensione / 5; i++) { navi.Add(nave); } nave = new Nave(Nave.Type.da2, Nave.Orientamento.Orizzontale); for (var i = 0; i < (dimensione * 2) / 5; i++) { navi.Add(nave); } }
private void BOnClick(object sender, EventArgs eventArgs) { naveSelezionata = (Nave)(sender as Button)?.Tag; if (!naveHasBeenSelected) { foreach (Button bCampo in gbCampo.Controls) { bCampo.MouseEnter += BOnMouseEnter; bCampo.Click += BCampo_Click; } } naveHasBeenSelected = true; if (KeyPreview == false) { this.KeyPress += Form1_KeyPress; } this.KeyPreview = true; }
public bool ciSta(Nave n, int x, int y) { if (n.orientamento == Nave.Orientamento.Verticale) { for (int i = x; i < x + n.dimensione; i++) { try { if (campoIDs[i, y] != CellType.Mare) { return(false); } } catch (Exception) { return(false); } } return(true); } else { for (int i = y; i < y + n.dimensione; i++) { try { if (campoIDs[x, i] != CellType.Mare) { return(false); } } catch (Exception) { return(false); } } return(true); } }
public bool InserisciNave(Nave naveSelezionata, int x, int y) { if (!ciSta(naveSelezionata, x, y)) { return(false); } if (naveSelezionata.orientamento == Nave.Orientamento.Verticale) { for (int i = x; i < x + naveSelezionata.dimensione; i++) { campoIDs[i, y] = CellType.Barca; } } else { for (int i = y; i < y + naveSelezionata.dimensione; i++) { campoIDs[x, i] = CellType.Barca; } } return(true); }