Exemple #1
0
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            larguraF = (sender as PictureBox).Width / 10F;
            alturaF  = (sender as PictureBox).Height / 10F;

            if (navio != default(TipoDeNavio))
            {
                Image img = Image.FromFile(navio.ToString() + ".png");

                if (frmNavios.Direcao == 0)
                {
                    if (10 - navio.Tamanho() < y1)
                    {
                        y1 = 10 - navio.Tamanho();
                    }

                    e.Graphics.DrawImage(img, new RectangleF(larguraF * x1, alturaF * y1, larguraF, alturaF * navio.Tamanho()));
                }
                else
                {
                    if (10 - navio.Tamanho() < x1)
                    {
                        x1 = 10 - navio.Tamanho();
                    }

                    img.RotateFlip(RotateFlipType.Rotate270FlipNone);
                    e.Graphics.DrawImage(img, new RectangleF(larguraF * x1, alturaF * y1, larguraF * navio.Tamanho(), alturaF));
                }
            }

            foreach (KeyValuePair <int[], TipoDeNavio> barco in tabuleiro.Navios)
            {
                if (barco.Key[2] == 0)
                {
                    e.Graphics.DrawImage(Image.FromFile(barco.Value.ToString() + ".png"), new RectangleF(larguraF * barco.Key[0], alturaF * barco.Key[1], larguraF, alturaF * barco.Value.Tamanho()));
                }
                else
                {
                    Image img = Image.FromFile(barco.Value.ToString() + ".png");
                    img.RotateFlip(RotateFlipType.Rotate270FlipNone);
                    e.Graphics.DrawImage(img, new RectangleF(larguraF * barco.Key[0], alturaF * barco.Key[1], larguraF * barco.Value.Tamanho(), alturaF));
                }
            }

            foreach (Tiro tiroRecebido in tirosRecebidos)
            {
                ResultadoDeTiro tiroRes = tabuleiro.Atirar(tiroRecebido.X, tiroRecebido.Y);
                Image           tiro    = tiroPreto;
                switch (tiroRes)
                {
                case ResultadoDeTiro.Errou:
                    tiro = tiroVerde;
                    break;

                case ResultadoDeTiro.Acertou:
                    tiro = tiroVermelho;
                    break;

                case ResultadoDeTiro.Afundou:
                    tiro = tiroPreto;
                    break;
                }
                e.Graphics.DrawImage(tiro, tiroRecebido.X * larguraF, tiroRecebido.Y * alturaF, larguraF, alturaF);
            }

            for (int i = 1; i < 10; i++)
            {
                e.Graphics.DrawLine(new Pen(Color.Black, 2F), larguraF * i, 0, larguraF * i, (sender as PictureBox).Height - 1);
                e.Graphics.DrawLine(new Pen(Color.Black, 2F), 0, alturaF * i, (sender as PictureBox).Width - 1, alturaF * i);
            }

            if (x1 != -1)
            {
                e.Graphics.DrawImage(miraVerde, x1 * larguraF, y1 * alturaF, larguraF, alturaF);
            }
        }
Exemple #2
0
 /// <summary>
 /// Aplica o tiro em um tabuleiro
 /// </summary>
 /// <param name="tabuleiro">Tabuleiro onde aplicar o tiro</param>
 public ResultadoDeTiro Aplicar(Tabuleiro tabuleiro)
 {
     return(tabuleiro.Atirar(X, Y));
 }