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