示例#1
0
        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;
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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;
        }
示例#4
0
 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);
     }
 }
示例#5
0
        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);
        }