namespace Artilleries { public partial class FormArtillery : Form { private DrawingArtillery _artillery; public FormArtillery() { InitializeComponent(); } private void Draw() { Bitmap bmp = new(pictureBoxArtilleries.Width, pictureBoxArtilleries.Height); Graphics gr = Graphics.FromImage(bmp); _artillery?.DrawTransport(gr); pictureBoxArtilleries.Image = bmp; } private void SetData() { Random rnd = new(); _artillery.SetPosition(rnd.Next(10, 100), rnd.Next(10, 100), pictureBoxArtilleries.Width, pictureBoxArtilleries.Height); SpeedStatusLabel.Text = $"Скорость: {_artillery.Artillery.Speed}"; WeightStatusLabel.Text = $"Вес: {_artillery.Artillery.Weight}"; ColorStatusLabel.Text = $"Цвет: {_artillery.Artillery.BodyColor.Name}"; } private void buttonCreate_Click(object sender, EventArgs e) { Random rnd = new(); _artillery = new DrawingArtillery(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256))); SetData(); Draw(); } private void createAdvancedButton_Click(object sender, EventArgs e) { Random rnd = new(); _artillery = new DrawingAdvancedArtillery( rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)), rnd.Next(0, 2) == 1, rnd.Next(0, 2) == 1 ); SetData(); Draw(); } private void buttonMove_Click(object sender, EventArgs e) { string name = ((Button)sender)?.Name ?? string.Empty; switch (name) { case "buttonUp": _artillery?.MoveTransport(Direction.Up); break; case "buttonDown": _artillery?.MoveTransport(Direction.Down); break; case "buttonLeft": _artillery?.MoveTransport(Direction.Left); break; case "buttonRight": _artillery?.MoveTransport(Direction.Right); break; } Draw(); } private void pictureBoxArtilleries_Resize(object sender, EventArgs e) { _artillery?.ChangeBorders(pictureBoxArtilleries.Width, pictureBoxArtilleries.Height); Draw(); } } }