lab1 release

This commit is contained in:
yu.shlyapin 2025-02-03 12:00:21 +04:00
parent 635b9a84bd
commit d35129e2c1
3 changed files with 41 additions and 4 deletions

View File

@ -23,12 +23,19 @@ public class DrawingAircraftCarrier
public void SetPictureSize(int width, int height) public void SetPictureSize(int width, int height)
{ {
if (_drawingCarHeight > height || _drawingCarWidth > width) return;
_pictureWidth = width; _pictureWidth = width;
_pictureHeight = height; _pictureHeight = height;
} }
public void SetPosition(int x, int y) public void SetPosition(int x, int y)
{ {
if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) return;
if (x < 0 || y < 0 ||
x+_drawingCarWidth > _pictureWidth ||
y+_drawingCarHeight > _pictureHeight) return;
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }
@ -97,12 +104,12 @@ public class DrawingAircraftCarrier
if (EntityAircraftCarrier.HasDeck) if (EntityAircraftCarrier.HasDeck)
{ {
g.DrawRectangle(pen, _startPosX.Value + 50, _startPosY.Value + 40, 55, 20); g.FillRectangle(brushPC, _startPosX.Value + 50, _startPosY.Value + 40, 55, 20);
} }
if (EntityAircraftCarrier.HasСabin) if (EntityAircraftCarrier.HasСabin)
{ {
g.DrawRectangle(pen, _startPosX.Value + 105, _startPosY.Value + 25, 30, 50); g.FillRectangle(brushSC, _startPosX.Value + 105, _startPosY.Value + 25, 30, 50);
} }
} }
} }

View File

@ -121,8 +121,10 @@
Controls.Add(buttonLeft); Controls.Add(buttonLeft);
Controls.Add(buttonCreate); Controls.Add(buttonCreate);
Controls.Add(pictureBoxAircraftCarrier); Controls.Add(pictureBoxAircraftCarrier);
KeyPreview = true;
Name = "FormAircraftCarrier"; Name = "FormAircraftCarrier";
Text = "FormAircraftCarrier"; Text = "FormAircraftCarrier";
KeyDown += FormAircraftCarrier_KeyDown;
((System.ComponentModel.ISupportInitialize)pictureBoxAircraftCarrier).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureBoxAircraftCarrier).EndInit();
ResumeLayout(false); ResumeLayout(false);
} }

View File

@ -27,7 +27,7 @@ public partial class FormAircraftCarrier : Form
_drawingAircraftCarrier.Init(random.Next(100, 200), random.Next(1000, 2000), _drawingAircraftCarrier.Init(random.Next(100, 200), random.Next(1000, 2000),
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
Convert.ToBoolean(random.Next(0,2)), Convert.ToBoolean(random.Next(0, 2))); Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)));
_drawingAircraftCarrier.SetPictureSize(pictureBoxAircraftCarrier.Width, pictureBoxAircraftCarrier.Height); _drawingAircraftCarrier.SetPictureSize(pictureBoxAircraftCarrier.Width, pictureBoxAircraftCarrier.Height);
_drawingAircraftCarrier.SetPosition(10, 10); _drawingAircraftCarrier.SetPosition(10, 10);
@ -55,7 +55,35 @@ public partial class FormAircraftCarrier : Form
break; break;
} }
if (directionType.HasValue) { if (directionType.HasValue)
{
_drawingAircraftCarrier.MoveAircraftCarrier(directionType.Value);
Draw();
}
}
private void FormAircraftCarrier_KeyDown(object sender, KeyEventArgs e)
{
if (_drawingAircraftCarrier == null) return;
DirectionType? directionType = null;
switch (e.KeyCode)
{
case Keys.W:
directionType = DirectionType.Up;
break;
case Keys.S:
directionType = DirectionType.Down;
break;
case Keys.A:
directionType = DirectionType.Left;
break;
case Keys.D:
directionType = DirectionType.Right;
break;
}
if (directionType.HasValue)
{
_drawingAircraftCarrier.MoveAircraftCarrier(directionType.Value); _drawingAircraftCarrier.MoveAircraftCarrier(directionType.Value);
Draw(); Draw();
} }