2 лаба

This commit is contained in:
leonteva.v 2024-04-02 14:29:03 +04:00
parent 03ee08e3e7
commit 595ba18b4a
16 changed files with 972 additions and 620 deletions

View File

@ -0,0 +1,59 @@
using ProjectBattleship.MovementStrateg;
namespace ProjectBattleship.MovementStrategy;
public abstract class AbstractStrategy
{
private IMoveableObject? _moveableObject;
private StrategyStatus _state = StrategyStatus.NotInit;
protected int FieldWidth { get; private set; }
protected int FieldHeight { get; private set; }
public StrategyStatus GetStatus() { return _state; }
public void SetData(IMoveableObject moveableObject, int width, int height)
{
if (moveableObject == null)
{
_state = StrategyStatus.NotInit;
return;
}
_state = StrategyStatus.InProgress;
_moveableObject = moveableObject;
FieldWidth = width;
FieldHeight = height;
}
public void MakeStep()
{
if (_state != StrategyStatus.InProgress)
{
return;
}
if (IsTargetDestinaion())
{
_state = StrategyStatus.Finish;
return;
}
MoveToTarget();
}
protected bool MoveLeft() => MoveTo(MovementDirection.Left);
protected bool MoveRight() => MoveTo(MovementDirection.Right);
protected bool MoveUp() => MoveTo(MovementDirection.Up);
protected bool MoveDown() => MoveTo(MovementDirection.Down);
protected ObjectParameters? GetObjectParameters => _moveableObject?.GetObjectPosition;
protected int? GetStep()
{
if (_state != StrategyStatus.InProgress)
{
return null;
}
return _moveableObject?.GetStep;
}
protected abstract void MoveToTarget();
protected abstract bool IsTargetDestinaion();
private bool MoveTo(MovementDirection movementDirection)
{
if (_state != StrategyStatus.InProgress)
{
return false;
}
return _moveableObject?.TryMoveObject(movementDirection) ?? false;
}
}

View File

@ -2,6 +2,7 @@
{ {
public enum DirectionType public enum DirectionType
{ {
Unknow = -1,
Up = 1, Up = 1,
Down = 2, Down = 2,
Left = 3, Left = 3,

View File

@ -1,132 +1,23 @@
namespace ProjectBattleship using ProjectBattleship.Entities;
namespace ProjectBattleship.Drawning;
public class DrawingBattleship : DrawingShip
{ {
public class DrawingBattleship public DrawingBattleship(int speed, double weight, Color bodyColor, Color additionalColor, bool turret, bool rocketLauncher) : base(150, 50)
{ {
public EntityBattleship? EntityBattleship { get; private set; } EntityShip = new EntityBattleship(speed, weight, bodyColor, additionalColor, turret, rocketLauncher);
private int? _pictureWidth;
private int? _pictureHeight;
private int? _startPosX;
private int? _startPosY;
private readonly int _shipWidth = 150;
private readonly int _shipHeight = 50;
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool turret, bool rocketLauncher)
{
EntityBattleship = new EntityBattleship();
EntityBattleship.Init(speed, weight, bodyColor, additionalColor, turret, rocketLauncher);
_pictureWidth = null;
_pictureHeight = null;
_startPosX = null;
_startPosY = null;
} }
public bool SetPictureSize(int width, int height) public override void DrawTransport(Graphics g)
{ {
if (width >= _shipWidth || height >= _shipHeight) if (EntityShip == null || EntityShip is not EntityBattleship battleship || !_startPosX.HasValue || !_startPosY.HasValue)
{
_pictureWidth = width;
_pictureHeight = height;
if (_startPosX != null && _startPosY != null)
{
SetPosition(_startPosX.Value, _startPosY.Value);
}
return true;
}
return false;
}
public void SetPosition(int x, int y)
{
if (!_pictureHeight.HasValue || !_pictureWidth.HasValue)
{
return;
}
if (x < 0)
{
x = 0;
}
else if (x > _pictureWidth - _shipWidth)
{
x = _pictureWidth.Value - _shipWidth;
}
if (y < 0)
{
y = 0;
}
else if (y > _pictureHeight - _shipHeight)
{
y = _pictureHeight.Value - _shipHeight;
}
_startPosX = x;
_startPosY = y;
}
public bool MoveTransport(DirectionType direction)
{
if (EntityBattleship == null || !_startPosX.HasValue || !_startPosY.HasValue)
{
return false;
}
switch (direction)
{
// Влево
case DirectionType.Left:
if (_startPosX.Value - EntityBattleship.Step > 0)
{
_startPosX -= (int)EntityBattleship.Step;
}
return true;
//Вверх
case DirectionType.Up:
if (_startPosY.Value - EntityBattleship.Step > 0)
{
_startPosY -= (int)EntityBattleship.Step;
}
return true;
//Вправо
case DirectionType.Right:
{
if (_startPosX.Value + _shipWidth + EntityBattleship.Step < _pictureWidth)
{
_startPosX += (int)EntityBattleship.Step;
}
}
return true;
//Вниз
case DirectionType.Down:
{
if (_startPosY.Value + _shipHeight + EntityBattleship.Step < _pictureHeight)
{
_startPosY += (int)EntityBattleship.Step;
}
}
return true;
default:
return false;
}
}
public void DrawTransport(Graphics g)
{
if (EntityBattleship == null || !_startPosX.HasValue || !_startPosY.HasValue)
{ {
return; return;
} }
Pen pen = new(Color.Black); Pen pen = new(Color.Black);
Brush additionalBrush = new SolidBrush(EntityBattleship.AdditionalColor); Brush additionalBrush = new SolidBrush(battleship.AdditionalColor);
Brush bodyBrush = new SolidBrush(EntityBattleship.BodyColor); base.DrawTransport(g);
//корпус
Point[] hull = new Point[] {new Point(_startPosX.Value + 5, _startPosY.Value), new Point(_startPosX.Value + 100, _startPosY.Value),
new Point(_startPosX.Value + 150, _startPosY.Value + 25), new Point(_startPosX.Value + 100, _startPosY.Value + 50), new Point(_startPosX.Value + 5, _startPosY.Value + 50)};
g.FillPolygon(bodyBrush, hull);
g.DrawPolygon(pen, hull);
Brush brBlack = new SolidBrush(Color.Black);
g.FillRectangle(brBlack, _startPosX.Value, _startPosY.Value + 6, 5, 13);
g.FillRectangle(brBlack, _startPosX.Value, _startPosY.Value + 31, 5, 13);
//надстройки
Brush brDark = new SolidBrush(Color.DarkGray);
g.FillRectangle(brDark, _startPosX.Value + 39, _startPosY.Value + 20, 40, 10);
g.DrawRectangle(pen, _startPosX.Value + 39, _startPosY.Value + 20, 40, 10);
g.FillRectangle(brDark, _startPosX.Value + 70, _startPosY.Value + 12, 18, 26);
g.DrawRectangle(pen, _startPosX.Value + 70, _startPosY.Value + 12, 18, 26);
g.FillEllipse(brBlack, _startPosX.Value + 94, _startPosY.Value + 19, 12, 12);
//орудийная башня //орудийная башня
if (EntityBattleship.Turret) if (battleship.Turret)
{ {
Point[] shield = new Point[] {new Point(_startPosX.Value + 112, _startPosY.Value + 19), new Point(_startPosX.Value + 112, _startPosY.Value + 31), Point[] shield = new Point[] {new Point(_startPosX.Value + 112, _startPosY.Value + 19), new Point(_startPosX.Value + 112, _startPosY.Value + 31),
new Point(_startPosX.Value + 119, _startPosY.Value + 28), new Point(_startPosX.Value + 119, _startPosY.Value + 22)}; new Point(_startPosX.Value + 119, _startPosY.Value + 28), new Point(_startPosX.Value + 119, _startPosY.Value + 22)};
@ -136,7 +27,7 @@
g.DrawRectangle(pen, _startPosX.Value + 119, _startPosY.Value + 24, 12, 2); g.DrawRectangle(pen, _startPosX.Value + 119, _startPosY.Value + 24, 12, 2);
} }
//ячейки для ракет //ячейки для ракет
if (EntityBattleship.RocketLauncher) if (battleship.RocketLauncher)
{ {
g.FillRectangle(additionalBrush, _startPosX.Value + 14, _startPosY.Value + 14, 10, 10); g.FillRectangle(additionalBrush, _startPosX.Value + 14, _startPosY.Value + 14, 10, 10);
g.FillRectangle(additionalBrush, _startPosX.Value + 26, _startPosY.Value + 14, 10, 10); g.FillRectangle(additionalBrush, _startPosX.Value + 26, _startPosY.Value + 14, 10, 10);
@ -149,4 +40,3 @@
} }
} }
} }
}

View File

@ -0,0 +1,144 @@
using ProjectBattleship.Entities;
namespace ProjectBattleship.Drawning;
public class DrawingShip
{
public EntityShip? EntityShip { get; protected set; }
private int? _pictureWidth;
private int? _pictureHeight;
protected int? _startPosX;
protected int? _startPosY;
private readonly int _shipWidth = 150;
private readonly int _shipHeight = 50;
public int? GetPosX => _startPosX;
public int? GetPosY => _startPosY;
public int GetWidth => _shipWidth;
public int GetHeight => _shipHeight;
private DrawingShip()
{
_pictureWidth = null;
_pictureHeight = null;
_startPosX = null;
_startPosY = null;
}
public DrawingShip(int speed, double weight, Color bodycolor) : this()
{
EntityShip = new EntityShip(speed, weight, bodycolor);
_pictureWidth = null;
_pictureHeight = null;
_startPosX = null;
_startPosY = null;
}
protected DrawingShip(int shipWidth, int shipHeight) : this()
{
_shipWidth = shipWidth;
_shipHeight = shipHeight;
}
public bool SetPictureSize(int width, int height)
{
if (width >= _shipWidth || height >= _shipHeight)
{
_pictureWidth = width;
_pictureHeight = height;
if (_startPosX != null && _startPosY != null)
{
SetPosition(_startPosX.Value, _startPosY.Value);
}
return true;
}
return false;
}
public void SetPosition(int x, int y)
{
if (!_pictureHeight.HasValue || !_pictureWidth.HasValue)
{
return;
}
if (x < 0)
{
x = 0;
}
else if (x > _pictureWidth - _shipWidth)
{
x = _pictureWidth.Value - _shipWidth;
}
if (y < 0)
{
y = 0;
}
else if (y > _pictureHeight - _shipHeight)
{
y = _pictureHeight.Value - _shipHeight;
}
_startPosX = x;
_startPosY = y;
}
public bool MoveTransport(DirectionType direction)
{
if (EntityShip == null || !_startPosX.HasValue || !_startPosY.HasValue)
{
return false;
}
switch (direction)
{
// Влево
case DirectionType.Left:
if (_startPosX.Value - EntityShip.Step > 0)
{
_startPosX -= (int)EntityShip.Step;
}
return true;
//Вверх
case DirectionType.Up:
if (_startPosY.Value - EntityShip.Step > 0)
{
_startPosY -= (int)EntityShip.Step;
}
return true;
//Вправо
case DirectionType.Right:
{
if (_startPosX.Value + _shipWidth + EntityShip.Step < _pictureWidth)
{
_startPosX += (int)EntityShip.Step;
}
}
return true;
//Вниз
case DirectionType.Down:
{
if (_startPosY.Value + _shipHeight + EntityShip.Step < _pictureHeight)
{
_startPosY += (int)EntityShip.Step;
}
}
return true;
default:
return false;
}
}
public virtual void DrawTransport(Graphics g)
{
if (EntityShip == null || !_startPosX.HasValue || !_startPosY.HasValue)
{
return;
}
Pen pen = new(Color.Black);
Brush bodyBrush = new SolidBrush(EntityShip.BodyColor);
//корпус
Point[] hull = new Point[] {new Point(_startPosX.Value + 5, _startPosY.Value), new Point(_startPosX.Value + 100, _startPosY.Value),
new Point(_startPosX.Value + 150, _startPosY.Value + 25), new Point(_startPosX.Value + 100, _startPosY.Value + 50), new Point(_startPosX.Value + 5, _startPosY.Value + 50)};
g.FillPolygon(bodyBrush, hull);
g.DrawPolygon(pen, hull);
Brush brBlack = new SolidBrush(Color.Black);
g.FillRectangle(brBlack, _startPosX.Value, _startPosY.Value + 6, 5, 13);
g.FillRectangle(brBlack, _startPosX.Value, _startPosY.Value + 31, 5, 13);
//надстройки
Brush brDark = new SolidBrush(Color.DarkGray);
g.FillRectangle(brDark, _startPosX.Value + 39, _startPosY.Value + 20, 40, 10);
g.DrawRectangle(pen, _startPosX.Value + 39, _startPosY.Value + 20, 40, 10);
g.FillRectangle(brDark, _startPosX.Value + 70, _startPosY.Value + 12, 18, 26);
g.DrawRectangle(pen, _startPosX.Value + 70, _startPosY.Value + 12, 18, 26);
g.FillEllipse(brBlack, _startPosX.Value + 94, _startPosY.Value + 19, 12, 12);
}
}

View File

@ -1,22 +1,14 @@
namespace ProjectBattleship namespace ProjectBattleship.Entities;
public class EntityBattleship : EntityShip
{ {
public class EntityBattleship
{
public int Speed { get; private set; }
public double Weight { get; private set; }
public Color BodyColor { get; private set; }
public Color AdditionalColor { get; private set; } public Color AdditionalColor { get; private set; }
public bool Turret { get; private set; } public bool Turret { get; private set; }
public bool RocketLauncher { get; private set; } public bool RocketLauncher { get; private set; }
public double Step => (double)Speed * 100 / Weight; public double Step => (double)Speed * 100 / Weight;
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool turret, bool rocketLauncher) public EntityBattleship(int speed, double weight, Color bodyColor, Color additionalColor, bool turret, bool rocketLauncher) : base(speed, weight, bodyColor)
{ {
Speed = speed;
Weight = weight;
BodyColor = bodyColor;
AdditionalColor = additionalColor; AdditionalColor = additionalColor;
Turret = turret; Turret = turret;
RocketLauncher = rocketLauncher; RocketLauncher = rocketLauncher;
} }
} }
}

View File

@ -0,0 +1,14 @@
namespace ProjectBattleship.Entities;
public class EntityShip
{
public int Speed { get; private set; }
public double Weight { get; private set; }
public Color BodyColor { get; private set; }
public double Step => Speed * 100 / Weight;
public EntityShip(int speed, double weight, Color bodyColor)
{
Speed = speed;
Weight = weight;
BodyColor = bodyColor;
}
}

View File

@ -35,6 +35,9 @@
buttonUp = new Button(); buttonUp = new Button();
buttonDown = new Button(); buttonDown = new Button();
buttonRight = new Button(); buttonRight = new Button();
buttonCreateShip = new Button();
comboBoxStrategy = new ComboBox();
buttonStrategyStep = new Button();
((System.ComponentModel.ISupportInitialize)pictureBoxBattleship).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureBoxBattleship).BeginInit();
SuspendLayout(); SuspendLayout();
// //
@ -51,11 +54,12 @@
// //
// buttonCreate // buttonCreate
// //
buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonCreate.Location = new Point(38, 500); buttonCreate.Location = new Point(38, 500);
buttonCreate.Name = "buttonCreate"; buttonCreate.Name = "buttonCreate";
buttonCreate.Size = new Size(121, 62); buttonCreate.Size = new Size(121, 62);
buttonCreate.TabIndex = 1; buttonCreate.TabIndex = 1;
buttonCreate.Text = "Создать"; buttonCreate.Text = "Создать линкор";
buttonCreate.UseVisualStyleBackColor = true; buttonCreate.UseVisualStyleBackColor = true;
buttonCreate.Click += buttonCreate_Click; buttonCreate.Click += buttonCreate_Click;
// //
@ -107,11 +111,45 @@
buttonRight.UseVisualStyleBackColor = true; buttonRight.UseVisualStyleBackColor = true;
buttonRight.Click += ButtonMove_Click; buttonRight.Click += ButtonMove_Click;
// //
// buttonCreateShip
//
buttonCreateShip.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonCreateShip.Location = new Point(212, 500);
buttonCreateShip.Name = "buttonCreateShip";
buttonCreateShip.Size = new Size(121, 62);
buttonCreateShip.TabIndex = 6;
buttonCreateShip.Text = "Создать корабль";
buttonCreateShip.UseVisualStyleBackColor = true;
buttonCreateShip.Click += buttonCreateShip_Click;
//
// comboBoxStrategy
//
comboBoxStrategy.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxStrategy.FormattingEnabled = true;
comboBoxStrategy.Items.AddRange(new object[] { "К центру", "К краю" });
comboBoxStrategy.Location = new Point(742, 24);
comboBoxStrategy.Name = "comboBoxStrategy";
comboBoxStrategy.Size = new Size(151, 28);
comboBoxStrategy.TabIndex = 8;
//
// buttonStrategyStep
//
buttonStrategyStep.Location = new Point(799, 74);
buttonStrategyStep.Name = "buttonStrategyStep";
buttonStrategyStep.Size = new Size(94, 29);
buttonStrategyStep.TabIndex = 10;
buttonStrategyStep.Text = "Шаг";
buttonStrategyStep.UseVisualStyleBackColor = true;
buttonStrategyStep.Click += buttonStrategyStep_Click;
//
// FormBattleship // FormBattleship
// //
AutoScaleDimensions = new SizeF(8F, 20F); AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(922, 598); ClientSize = new Size(922, 598);
Controls.Add(buttonStrategyStep);
Controls.Add(comboBoxStrategy);
Controls.Add(buttonCreateShip);
Controls.Add(buttonRight); Controls.Add(buttonRight);
Controls.Add(buttonDown); Controls.Add(buttonDown);
Controls.Add(buttonUp); Controls.Add(buttonUp);
@ -133,5 +171,8 @@
private Button buttonUp; private Button buttonUp;
private Button buttonDown; private Button buttonDown;
private Button buttonRight; private Button buttonRight;
private Button buttonCreateShip;
private ComboBox comboBoxStrategy;
private Button buttonStrategyStep;
} }
} }

View File

@ -1,38 +1,57 @@
namespace ProjectBattleship using ProjectBattleship.Drawning;
using ProjectBattleship.MovementStrategy;
using ProjectBattleship.MovementStrateg;
namespace ProjectBattleship
{ {
public partial class FormBattleship : Form public partial class FormBattleship : Form
{ {
private DrawingBattleship? _drawingBattleship; private DrawingShip? _drawingShip;
private AbstractStrategy? _strategy;
public FormBattleship() public FormBattleship()
{ {
InitializeComponent(); InitializeComponent();
_strategy = null;
} }
private void Draw() private void Draw()
{ {
if (_drawingBattleship == null) if (_drawingShip == null)
{ {
return; return;
} }
Bitmap bmp = new Bitmap(pictureBoxBattleship.Width, pictureBoxBattleship.Height); Bitmap bmp = new Bitmap(pictureBoxBattleship.Width, pictureBoxBattleship.Height);
Graphics gr = Graphics.FromImage(bmp); Graphics gr = Graphics.FromImage(bmp);
_drawingBattleship.DrawTransport(gr); _drawingShip.DrawTransport(gr);
pictureBoxBattleship.Image = bmp; pictureBoxBattleship.Image = bmp;
} }
private void buttonCreate_Click(object sender, EventArgs e) private void CreateObject(string type)
{ {
Random random = new Random(); Random random = new();
_drawingBattleship = new DrawingBattleship(); switch (type)
_drawingBattleship.Init(random.Next(100, 300), random.Next(1000, 3000), {
case nameof(DrawingShip):
_drawingShip = new DrawingShip(random.Next(100, 300), random.Next(1000, 3000),
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)));
break;
case nameof(DrawingBattleship):
_drawingShip = new DrawingBattleship(random.Next(100, 300), random.Next(1000, 3000),
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)));
_drawingBattleship.SetPictureSize(pictureBoxBattleship.Width, pictureBoxBattleship.Height); break;
_drawingBattleship.SetPosition(random.Next(10, 100), random.Next(10, 100)); default:
return;
}
_drawingShip.SetPictureSize(pictureBoxBattleship.Width, pictureBoxBattleship.Height);
_drawingShip.SetPosition(random.Next(10, 100), random.Next(10, 100));
_strategy = null;
comboBoxStrategy.Enabled = true;
Draw(); Draw();
} }
private void buttonCreate_Click(object sender, EventArgs e) => CreateObject(nameof(DrawingBattleship));
private void ButtonMove_Click(object sender, EventArgs e) private void ButtonMove_Click(object sender, EventArgs e)
{ {
if (_drawingBattleship == null) if (_drawingShip == null)
{ {
return; return;
} }
@ -42,19 +61,19 @@
{ {
case "buttonUp": case "buttonUp":
result = result =
_drawingBattleship.MoveTransport(DirectionType.Up); _drawingShip.MoveTransport(DirectionType.Up);
break; break;
case "buttonDown": case "buttonDown":
result = result =
_drawingBattleship.MoveTransport(DirectionType.Down); _drawingShip.MoveTransport(DirectionType.Down);
break; break;
case "buttonLeft": case "buttonLeft":
result = result =
_drawingBattleship.MoveTransport(DirectionType.Left); _drawingShip.MoveTransport(DirectionType.Left);
break; break;
case "buttonRight": case "buttonRight":
result = result =
_drawingBattleship.MoveTransport(DirectionType.Right); _drawingShip.MoveTransport(DirectionType.Right);
break; break;
} }
if (result) if (result)
@ -62,5 +81,39 @@
Draw(); Draw();
} }
} }
private void buttonCreateShip_Click(object sender, EventArgs e) => CreateObject(nameof(DrawingShip));
private void buttonStrategyStep_Click(object sender, EventArgs e)
{
if (_drawingShip == null)
{
return;
}
if (comboBoxStrategy.Enabled)
{
_strategy = comboBoxStrategy.SelectedIndex switch
{
0 => new MoveToCenter(),
1 => new MoveToBorder(),
_ => null,
};
if (_strategy == null)
{
return;
}
_strategy.SetData(new MoveableShip(_drawingShip), pictureBoxBattleship.Width, pictureBoxBattleship.Height);
}
if (_strategy == null)
{
return;
}
comboBoxStrategy.Enabled = false;
_strategy.MakeStep();
Draw();
if (_strategy.GetStatus() == StrategyStatus.Finish)
{
comboBoxStrategy.Enabled = true;
_strategy = null;
}
}
} }
} }

View File

@ -121,7 +121,7 @@
<data name="buttonLeft.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="buttonLeft.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAB44AAAOdCAYAAAB6bE8jAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAB44AAAOdCAYAAAB6bE8jAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAahtJREFUeF7s3V+MnXW99/0JIcYQY2rtXH/X/Ok4ljKdmc4MxhBjjDHGGLNjdnY8 wAAADsABataJCQAAahtJREFUeF7s3V+MnXW99/0JIcYQY2rtXH/X/Ok4ljKdmc4MxhBjjDHGGLNjdnY8
eA7u7EMOnoN9SO4z4iGHHvbANO261hQGEbACKmI3GCKGiOE2hJjG26cCIgICYsFSy/VcA617XOsH9M/M eA7u7EMOnoN9SO4z4iGHHvbANO261hQGEbACKmI3GCKGiOE2hJjG26cCIgICYsFSy/VcA617XOsH9M/M
rN+11uudvA7uvRWms9a6muxPvveakCRJktrQ8TSdvX1i4rqL/09JkiRJkiRJkiRJ0jjVy8pvVWnx6sbC rN+11uudvA7uvRWms9a6muxPvveakCRJktrQ8TSdvX1i4rqL/09JkiRJkiRJkiRJ0jjVy8pvVWnx6sbC
wscu/o8kSZIkSZIkSZIkSePQepIkvbS4t0qLepPhWJIkSZIkSZIkSZLGqItXxi9fGo0Nx5IkSZIkSZIk wscu/o8kSZIkSZIkSZIkSePQepIkvbS4t0qLepPhWJIkSZIkSZIkSZLGqItXxi9fGo0Nx5IkSZIkSZIk
@ -580,7 +580,7 @@
<data name="buttonUp.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="buttonUp.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAA50AAAeOCAYAAAB3IVJsAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAA50AAAeOCAYAAAB3IVJsAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAg6NJREFUeF7s/V2MZXWd939XiCGGGINM135Ye9cDbdk0/VBdVZiJMcaYiTHGTIwx wAAADsABataJCQAAg6NJREFUeF7s/V2MZXWd939XiCGGGINM135Ye9cDbdk0/VBdVZiJMcaYiTHGTIwx
HvwPJnPIwX0wh+Q6I3PI4Rz2gSHdu3Y1FCIiAiJiD0yIGCOGvyHEEC//LSIiICA22LTNvtfuXjOjmx9N HvwPJnPIwX0wh+Q6I3PI4Rz2gSHdu3Y1FCIiAiJiD0yIGCOGvyHEEC//LSIiICA22LTNvtfuXjOjmx9N
P6z1++29f6938sqd+3/NKHRX7bU+yffa14IkSbq8RtX/ryRJkiRJtTZoF//Pdqf4/1X/fyVJkiRJqqdj P6z1++29f6938sqd+3/NKHRX7bU+yffa14IkSbq8RtX/ryRJkiRJtTZoF//Pdqf4/1X/fyVJkiRJqqdj
3e7ydrt4rfTWYM9Kp/r/LEmSJEnS1XX7wsI15dh8tDSq3F/9H0mSJEmSdHUNO8VtfzM4zxt2et+o/o8l 3e7ydrt4rfTWYM9Kp/r/LEmSJEnS1XX7wsI15dh8tDSq3F/9H0mSJEmSdHUNO8VtfzM4zxt2et+o/o8l
@ -1148,7 +1148,7 @@
<data name="buttonDown.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="buttonDown.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAA50AAAeOCAYAAAB3IVJsAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAA50AAAeOCAYAAAB3IVJsAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAgjRJREFUeF7s3F+MZQWZ7/0KIYYYQ5Dp3n/W3lVdtG3T9J/qqsJMjDHGTIwxZmIm wAAADsABataJCQAAgjRJREFUeF7s3F+MZQWZ7/0KIYYYQ5Dp3n/W3lVdtG3T9J/qqsJMjDHGTIwxZmIm
Ey8n55LLuSTnzswll3PZF4bQu3Y1FiIiAiI6DEyIGiMTX0OMIRyDioiIDSK00Db73dWsmXF2LxvoXms9 Ey8n55LLuSTnzswll3PZF4bQu3Y1FiIiAiI6DEyIGiMTX0OMIRyDioiIDSK00Db73dWsmXF2LxvoXms9
u/bz+Safq/e8R4WqtdYv50ktSZIkSZIkaY7b6g7+bqs3+CIAsCh6nytf85IkxbfVKX601S0mAMCiGDxb u/bz+Safq/e8R4WqtdYv50ktSZIkSZIkaY7b6g7+bqs3+CIAsCh6nytf85IkxbfVKX601S0mAMCiGDxb
vuYlSYrP6ASARWN0SpLmKKMTABaN0SlJmqOMTgBYNEanJGmOMjoBYNEYnZKkOcroBIBFY3RKkuYooxMA vuYlSYrP6ASARWN0SpLmKKMTABaN0SlJmqOMTgBYNEanJGmOMjoBYNEYnZKkOcroBIBFY3RKkuYooxMA
@ -1709,444 +1709,444 @@
</data> </data>
<data name="buttonRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="buttonRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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 kiRJGswMx2yF7vXxA/G++/hUu5Z9LzwSkiRJkiRJkiRJ0uBlOGarnFlYKJ6O/Pp4pdFwfSxJkiRJkiRJ
eKXRcH0sSZIkSZIkSZKkwctwzFaL/Pr4ZLuefTc8HpIkSZIkSZIkSdJgZDimF84sNIunRuO+Pu6Mjd0R kqTBy3DMVov8+vhku559NzwekiRJkiRJkiRJ0mBkOKYXziw0i6dG474+7oyN3REeE0mSJEmSJEmSJKm/
HhNJkiRJkiRJkiSpvzMc0yuXV726c1exXPLZicSJTi37RnhUJEmSJEmSJEmSpP7NcEyvvbewUByJ+Pq4 MxzTK5dXvbpzV7Fc8tmJxIlOLftGeFQkSZIkSZIkSZKk/s1wTK+9t7BQHIn4+rhdz/f8ZHj4s+GRkSRJ
Xc/3/GR4+LPhkZEkSZIkSZIkSZL6L8MxMbjcahXHduyM+fr4j/vr+dfDYyNJkiRJkiRJkiT1V4ZjYnJ6 kiRJkiRJkvovwzExuNxqFcd27Iz5+viP++v518NjI0mSJEmSJEmSJPVXhmNicnp+vniiMV76eYpB9/p4
fr54ojFe+nmKQff6eGVkxPWxJEmSJEmSJEmS+ivDMbGpwvVxO2l8LTxCkiRJkiRJkiRJUvUzHBOr0/ML ZWTE9bEkSZIkSZIkSZL6K8MxsanC9XE7aXwtPEKSJEmSJEmSJElS9TMcE6vT8wvF46NxXx/vr9dvD4+S
xeOjcV8f76/Xbw+PkiRJkiRJkiRJklTdDMfE7FJr95Xr46T8M9Z7+WudNL07PE6SJEmSJEmSJElSNTMc JEmSJEmSJEmSVN0Mx8TsUmv3levjpPwz1nv5a500vTs8TpIkSZIkSZIkSVI1MxxTBe/GfX18adWP905M
UwXvxn19fGnVj/dOTHwmPFaSJEmSJEmSJElStTIcUxX/aLWKl6Z2FJ0kL/28ReDYUpJ8KTxakiRJkiRJ fCY8VpIkSZIkSZIkSVK1MhxTFf9otYqXpnYUnSQv/bxF4NhSknwpPFqSJEmSJEmSJElSdTIcUzVvzc0X
kiRJUnUyHFM1b83NF4/lY6WfuQhcbNey+5+YmrotPGKSJEmSJEmSJElS/BmOqaIqXB/vT1PXx5IkSZIk j+VjpZ+5CFxs17L7n5iaui08YpIkSZIkSZIkSVL8GY6poipcH+9PU9fHkiRJkiRJkiRJqkaGY6qsCtfH
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
kiRJ0qBkOIatcWou/ivjPUO7XRlLkiRJkiRJkiQNYoZj2FxXr4w7Jc9IJH6/XGvMh68ESZIkSZIkSZIk K+M9Q7tdGUuSJEmSJEmSJA1ihmPYXFevjDslz0gkfr9ca8yHrwRJkiRJkiRJkiQNYoZj2Dxvz80Xh+O9
DWKGY9g8b8/NF4fjvTK+1E6yH7kyliRJkiRJkiRJkuEYNsGlVS9N7Sg6SV76bETg1f31xn+FrwFJkiRJ Mr7UTrIfuTKWJEmSJEmSJEmS4Rg2waVVL03tKDpJXvpsRODV/fXGf4WvAUmSJEmSJEmSJA16hmPYWG/P
kiRJkiQNeoZj2Fhvz88Xhxvjpc9EBC61a9n9eycmPhO+AiRJkiRJkiRJkiTDMWyU6K+Ma9kflmv5l8Oj zxeHG+Olz0QELrVr2f17JyY+E74CJEmSJEmSJEmSJMMxbJTor4xr2R+Wa/mXw6MvSZIkSZIkSZIkfZTh
L0mSJEmSJEmSJH2U4Rhu3jvz88XPGhG/y7iW3b/SaLgyliRJkiRJkiRJUnmGY7hxV6+Ml5PyZyACx9u1 GG7eO/Pzxc8aEb/LuJbdv9JouDKWJEmSJEmSJElSeYZjuHFXr4yXk/JnIALH27XsK+FxlyRJkiRJkiRJ
7CvhcZckSZIkSZIkSZLKMxzDjXl3Lv4r4z1Zdnt41CVJkiRJkiRJkqRrZziG9bncahUvfzHuK+PlkfSr ksozHMONeXcu/ivjPVl2e3jUJUmSJEmSJEmSpGtnOIb1udxqFS9/Me4r4+WR9KvhEZckSZIkSZIkSZI+
4RGXJEmSJEmSJEmSPj3DMVy/9xYWip+Pjpd+3mPQrud7lrZt+1x4vCVJkiRJkiRJkqTry3AMn657ZXxs PcMxXL/3FhaKn4+Ol37eY9Cu53uWtm37XHi8JUmSJEmSJEmSpOvLcAyfrntlfGzHzuJAkpd+1iPw+lIt
x87iQJKXftYj8PpSLftmeKwlSZIkSZIkSZKk9WU4hk/2vitjSZIkSZIkSZIk9XuGYyh3eVXUV8a17PX2 +2Z4rCVJkiRJkiRJkqT1ZTiGT/a+K2NJkiRJkiRJkiT1e4ZjKHd5VdRXxrXs9fZI+q3wKEuSJEmSJEmS
SPqt8ChLkiRJkiRJkiRJN57hGP7T+/MLxZNjE6Wf6xh0r4xXPj/pyliSJEmSJEmSJEkbk+EYPhL9lXE9 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
</value> </value>
</data> </data>
</root> </root>

View File

@ -0,0 +1,7 @@
namespace ProjectBattleship.MovementStrategy;
public interface IMoveableObject
{
ObjectParameters? GetObjectPosition { get; }
int GetStep { get; }
bool TryMoveObject(MovementDirection direction);
}

View File

@ -0,0 +1,25 @@
namespace ProjectBattleship.MovementStrategy;
public class MoveToBorder : AbstractStrategy
{
protected override bool IsTargetDestinaion()
{
ObjectParameters? objParams = GetObjectParameters;
if (objParams == null)
{
return false;
}
return objParams.LeftBorder - GetStep() <= 0 || objParams.RightBorder + GetStep() >= FieldWidth || objParams.TopBorder - GetStep() <= 0 || objParams.ObjectMiddleVertical + GetStep() >= FieldHeight;
}
protected override void MoveToTarget()
{
ObjectParameters? objParams = GetObjectParameters;
if (objParams == null)
{
return;
}
int x = objParams.RightBorder;
if (x + GetStep() < FieldWidth) MoveRight();
int y = objParams.DownBorder;
if (y + GetStep() < FieldHeight) MoveDown();
}
}

View File

@ -0,0 +1,46 @@
namespace ProjectBattleship.MovementStrategy;
public class MoveToCenter : AbstractStrategy
{
protected override bool IsTargetDestinaion()
{
ObjectParameters? objParams = GetObjectParameters;
if (objParams == null)
{
return false;
}
return objParams.ObjectMiddleHorizontal - GetStep() <= FieldWidth / 2 && objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth / 2 &&
objParams.ObjectMiddleVertical - GetStep() <= FieldHeight / 2 && objParams.ObjectMiddleVertical + GetStep() >= FieldHeight / 2;
}
protected override void MoveToTarget()
{
ObjectParameters? objParams = GetObjectParameters;
if (objParams == null)
{
return;
}
int diffX = objParams.ObjectMiddleHorizontal - FieldWidth / 2;
if (Math.Abs(diffX) > GetStep())
{
if (diffX > 0)
{
MoveLeft();
}
else
{
MoveRight();
}
}
int diffY = objParams.ObjectMiddleVertical - FieldHeight / 2;
if (Math.Abs(diffY) > GetStep())
{
if (diffY > 0)
{
MoveUp();
}
else
{
MoveDown();
}
}
}
}

View File

@ -0,0 +1,42 @@
using ProjectBattleship.Drawning;
namespace ProjectBattleship.MovementStrategy;
public class MoveableShip : IMoveableObject
{
private readonly DrawingShip? _ship = null;
public MoveableShip(DrawingShip ship)
{
_ship = ship;
}
public ObjectParameters? GetObjectPosition
{
get
{
if (_ship == null || _ship.EntityShip == null || !_ship.GetPosX.HasValue || !_ship.GetPosY.HasValue)
{
return null;
}
return new ObjectParameters(_ship.GetPosX.Value, _ship.GetPosY.Value, _ship.GetWidth, _ship.GetHeight);
}
}
public int GetStep => (int)(_ship?.EntityShip?.Step ?? 0);
public bool TryMoveObject(MovementDirection direction)
{
if (_ship == null || _ship.EntityShip == null)
{
return false;
}
return _ship.MoveTransport(GetDirectionType(direction));
}
private static DirectionType GetDirectionType(MovementDirection direction)
{
return direction switch
{
MovementDirection.Left => DirectionType.Left,
MovementDirection.Right => DirectionType.Right,
MovementDirection.Up => DirectionType.Up,
MovementDirection.Down => DirectionType.Down,
_ => DirectionType.Unknow,
};
}
}

View File

@ -0,0 +1,8 @@
namespace ProjectBattleship.MovementStrategy;
public enum MovementDirection
{
Up = 1,
Down = 2,
Left = 3,
Right = 4
}

View File

@ -0,0 +1,21 @@
namespace ProjectBattleship.MovementStrategy;
public class ObjectParameters
{
private readonly int _x;
private readonly int _y;
private readonly int _width;
private readonly int _height;
public int LeftBorder => _x;
public int TopBorder => _y;
public int RightBorder => _x + _width;
public int DownBorder => _y + _height;
public int ObjectMiddleHorizontal => _x + _width / 2;
public int ObjectMiddleVertical => _y + _height / 2;
public ObjectParameters(int x, int y, int width, int height)
{
_x = x;
_y = y;
_width = width;
_height = height;
}
}

View File

@ -0,0 +1,9 @@
namespace ProjectBattleship.MovementStrateg
{
public enum StrategyStatus
{
NotInit,
InProgress,
Finish
}
}