PIbd-22 Kaznacheeva E.K. LabWork_01 #1

Merged
kaznacheeva merged 4 commits from LabWork_01 into main 2023-09-27 10:03:06 +04:00
Showing only changes of commit 19d684ffc0 - Show all commits

View File

@ -34,11 +34,12 @@ namespace Battleship
/// <summary>
/// Ширина прорисовки автомобиля
/// </summary>
private readonly int _carWidth = 110;
private readonly int _buttleshipWidth = 150;
/// <summary>
/// Высота прорисовки автомобиля
/// </summary>
private readonly int _carHeight = 60;
private readonly int _buttleshipHeight = 70;
/// <summary>
/// Инициализация свойств
/// </summary>
@ -104,7 +105,7 @@ additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height)
// вправо
case DirectionType.Right:
// TODO: Продумать логику
if (_startPosX + _carWidth + EntityBattleship.Step < 800)
if (_startPosX + _buttleshipWidth + EntityBattleship.Step < 800)
{
_startPosX += (int)EntityBattleship.Step;
}
@ -112,7 +113,7 @@ additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height)
//вниз
case DirectionType.Down:
// TODO: Продумать логику
if (_startPosY + _carHeight + EntityBattleship.Step < 450)
if (_startPosY + _buttleshipHeight + EntityBattleship.Step < 450)
{
_startPosY += (int)EntityBattleship.Step;
}
@ -129,118 +130,177 @@ additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height)
{
return;
}
Pen pen = new(Color.Black);
Pen pen = new(Color.Black, 2);
Brush additionalBrush = new
SolidBrush(EntityBattleship.AdditionalColor);
//корпус линкора
Brush Brush = new
SolidBrush(EntityBattleship.AdditionalColor);
Point[] hull = new Point[]
{
new Point(_startPosX + 40, _startPosY + 20),
new Point(_startPosX + 150, _startPosY + 20),
new Point(_startPosX + 180, _startPosY + 55),
new Point(_startPosX + 150, _startPosY + 90),
new Point(_startPosX + 40, _startPosY + 90),
};
g.FillPolygon(Brush, hull);
g.DrawPolygon(pen, hull);
//блоки
Brush blockBrush2 = new
SolidBrush(Color.Gray);
g.FillRectangle(blockBrush2, _startPosX + 100, _startPosY + 35, 20, 40);
g.DrawRectangle(pen, _startPosX + 100, _startPosY+35, 20, 40);
Brush blockBrush1 = new
SolidBrush(EntityBattleship.BodyColor);
g.FillRectangle(blockBrush1, _startPosX + 70, _startPosY + 45, 30, 20);
g.DrawRectangle(pen, _startPosX + 70, _startPosY + 45, 30, 20);
g.FillEllipse(blockBrush1, _startPosX + 130, _startPosY + 40, 30, 30);
g.DrawEllipse(pen, _startPosX + 130, _startPosY + 40, 30, 30);
//орудийная башня
Brush towerBrush = new
SolidBrush(EntityBattleship.AdditionalColor);
g.FillRectangle(towerBrush, _startPosX + 138, _startPosY + 48, 15, 15);
g.DrawRectangle(pen, _startPosX + 138, _startPosY + 48, 15, 15);
Brush gunBrush = new
SolidBrush(Color.Black);
g.FillRectangle(gunBrush, _startPosX + 153, _startPosY + 52, 55, 6);
g.DrawRectangle(pen, _startPosX + 153, _startPosY + 52, 55, 6);
//для ускорения
Brush speedBrush = new
SolidBrush(Color.Orange);
g.FillRectangle(speedBrush, _startPosX + 35, _startPosY + 30, 5, 20);
g.DrawRectangle(pen, _startPosX + 35, _startPosY + 30, 5, 20);
g.FillRectangle(speedBrush, _startPosX + 35, _startPosY + 60, 5, 20);
g.DrawRectangle(pen, _startPosX + 35, _startPosY + 60, 5, 20);
//отсеки под ракеты
Brush sectionBrush = new
SolidBrush(Color.Gray);
g.FillRectangle(sectionBrush, _startPosX + 50, _startPosY + 90, 40, 10);
g.DrawRectangle(pen, _startPosX + 50, _startPosY + 90, 40, 10);
g.FillRectangle(sectionBrush, _startPosX + 100, _startPosY + 90, 40, 10);
g.DrawRectangle(pen, _startPosX + 100, _startPosY + 90, 40, 10);
// обвесы
if (EntityBattleship.BodyKit)
{
g.DrawEllipse(pen, _startPosX + 90, _startPosY, 20, 20);
g.DrawEllipse(pen, _startPosX + 90, _startPosY + 40, 20,
20);
g.DrawRectangle(pen, _startPosX + 90, _startPosY + 10,
20, 40);
g.DrawRectangle(pen, _startPosX + 90, _startPosY, 15,
15);
g.DrawRectangle(pen, _startPosX + 90, _startPosY + 45,
15, 15);
g.FillEllipse(additionalBrush, _startPosX + 90,
_startPosY, 20, 20);
g.FillEllipse(additionalBrush, _startPosX + 90,
_startPosY + 40, 20, 20);
g.FillRectangle(additionalBrush, _startPosX + 90,
_startPosY + 10, 20, 40);
g.FillRectangle(additionalBrush, _startPosX + 90,
_startPosY + 1, 15, 15);
g.FillRectangle(additionalBrush, _startPosX + 90,
_startPosY + 45, 15, 15);
g.DrawEllipse(pen, _startPosX, _startPosY, 20, 20);
g.DrawEllipse(pen, _startPosX, _startPosY + 40, 20, 20);
g.DrawRectangle(pen, _startPosX, _startPosY + 10, 20,
40);
g.DrawRectangle(pen, _startPosX + 5, _startPosY, 14,
15);
g.DrawRectangle(pen, _startPosX + 5, _startPosY + 45,
14, 15);
g.FillEllipse(additionalBrush, _startPosX, _startPosY,
20, 20);
g.FillEllipse(additionalBrush, _startPosX, _startPosY +
40, 20, 20);
g.FillRectangle(additionalBrush, _startPosX + 1,
_startPosY + 10, 25, 40);
g.FillRectangle(additionalBrush, _startPosX + 5,
_startPosY + 1, 15, 15);
g.FillRectangle(additionalBrush, _startPosX + 5,
_startPosY + 45, 15, 15);
g.DrawRectangle(pen, _startPosX + 35, _startPosY, 39,
15);
g.DrawRectangle(pen, _startPosX + 35, _startPosY + 45,
39, 15);
g.FillRectangle(additionalBrush, _startPosX + 35,
_startPosY + 1, 40, 15);
g.FillRectangle(additionalBrush, _startPosX + 35,
_startPosY + 45, 40, 15);
}
//границы автомобиля
g.DrawEllipse(pen, _startPosX + 10, _startPosY + 5, 20, 20);
g.DrawEllipse(pen, _startPosX + 10, _startPosY + 35, 20, 20);
g.DrawEllipse(pen, _startPosX + 80, _startPosY + 5, 20, 20);
g.DrawEllipse(pen, _startPosX + 80, _startPosY + 35, 20, 20);
g.DrawRectangle(pen, _startPosX + 9, _startPosY + 15, 10, 30);
g.DrawRectangle(pen, _startPosX + 90, _startPosY + 15, 10,
30);
g.DrawRectangle(pen, _startPosX + 20, _startPosY + 4, 70, 52);
//задние фары
Brush brRed = new SolidBrush(Color.Red);
g.FillEllipse(brRed, _startPosX + 10, _startPosY + 5, 20, 20);
g.FillEllipse(brRed, _startPosX + 10, _startPosY + 35, 20,
20);
//передние фары
Brush brYellow = new SolidBrush(Color.Yellow);
g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 5, 20,
20);
g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 35, 20,
20);
//кузов
Brush br = new SolidBrush(EntityBattleship.BodyColor);
g.FillRectangle(br, _startPosX + 10, _startPosY + 15, 10, 30);
g.FillRectangle(br, _startPosX + 90, _startPosY + 15, 10, 30);
g.FillRectangle(br, _startPosX + 20, _startPosY + 5, 70, 50);
//стекла
Brush brBlue = new SolidBrush(Color.LightBlue);
g.FillRectangle(brBlue, _startPosX + 70, _startPosY + 10, 5,
40);
g.FillRectangle(brBlue, _startPosX + 30, _startPosY + 10, 5,
40);
g.FillRectangle(brBlue, _startPosX + 35, _startPosY + 8, 35,
2);
g.FillRectangle(brBlue, _startPosX + 35, _startPosY + 51, 35,
2);
//выделяем рамкой крышу
g.DrawRectangle(pen, _startPosX + 35, _startPosY + 10, 35,
40);
g.DrawRectangle(pen, _startPosX + 75, _startPosY + 15, 25,
30);
g.DrawRectangle(pen, _startPosX + 10, _startPosY + 15, 15,
30);
// спортивная линия
if (EntityBattleship.SportLine)
{
g.FillRectangle(additionalBrush, _startPosX + 75,
_startPosY + 23, 25, 15);
g.FillRectangle(additionalBrush, _startPosX + 35,
_startPosY + 23, 35, 15);
g.FillRectangle(additionalBrush, _startPosX + 10,
_startPosY + 23, 20, 15);
}
// крыло
if (EntityBattleship.Wing)
{
g.FillRectangle(additionalBrush, _startPosX, _startPosY
+ 5, 10, 50);
g.DrawRectangle(pen, _startPosX, _startPosY + 5, 10,
50);
}
// if (EntityBattleship.BodyKit)
// {
// g.DrawEllipse(pen, _startPosX + 90, _startPosY, 20, 20);
// g.DrawEllipse(pen, _startPosX + 90, _startPosY + 40, 20,
// 20);
// g.DrawRectangle(pen, _startPosX + 90, _startPosY + 10,
// 20, 40);
// g.DrawRectangle(pen, _startPosX + 90, _startPosY, 15,
// 15);
// g.DrawRectangle(pen, _startPosX + 90, _startPosY + 45,
// 15, 15);
// g.FillEllipse(additionalBrush, _startPosX + 90,
// _startPosY, 20, 20);
// g.FillEllipse(additionalBrush, _startPosX + 90,
// _startPosY + 40, 20, 20);
// g.FillRectangle(additionalBrush, _startPosX + 90,
// _startPosY + 10, 20, 40);
// g.FillRectangle(additionalBrush, _startPosX + 90,
//_startPosY + 1, 15, 15);
// g.FillRectangle(additionalBrush, _startPosX + 90,
// _startPosY + 45, 15, 15);
// g.DrawEllipse(pen, _startPosX, _startPosY, 20, 20);
// g.DrawEllipse(pen, _startPosX, _startPosY + 40, 20, 20);
// g.DrawRectangle(pen, _startPosX, _startPosY + 10, 20,
// 40);
// g.DrawRectangle(pen, _startPosX + 5, _startPosY, 14,
// 15);
// g.DrawRectangle(pen, _startPosX + 5, _startPosY + 45,
// 14, 15);
// g.FillEllipse(additionalBrush, _startPosX, _startPosY,
// 20, 20);
// g.FillEllipse(additionalBrush, _startPosX, _startPosY +
// 40, 20, 20);
// g.FillRectangle(additionalBrush, _startPosX + 1,
// _startPosY + 10, 25, 40);
// g.FillRectangle(additionalBrush, _startPosX + 5,
// _startPosY + 1, 15, 15);
// g.FillRectangle(additionalBrush, _startPosX + 5,
// _startPosY + 45, 15, 15);
// g.DrawRectangle(pen, _startPosX + 35, _startPosY, 39,
// 15);
// g.DrawRectangle(pen, _startPosX + 35, _startPosY + 45,
// 39, 15);
// g.FillRectangle(additionalBrush, _startPosX + 35,
// _startPosY + 1, 40, 15);
// g.FillRectangle(additionalBrush, _startPosX + 35,
// _startPosY + 45, 40, 15);
// }
// //границы автомобиля
// g.DrawEllipse(pen, _startPosX + 10, _startPosY + 5, 20, 20);
// g.DrawEllipse(pen, _startPosX + 10, _startPosY + 35, 20, 20);
// g.DrawEllipse(pen, _startPosX + 80, _startPosY + 5, 20, 20);
// g.DrawEllipse(pen, _startPosX + 80, _startPosY + 35, 20, 20);
// g.DrawRectangle(pen, _startPosX + 9, _startPosY + 15, 10, 30);
// g.DrawRectangle(pen, _startPosX + 90, _startPosY + 15, 10,
// 30);
// g.DrawRectangle(pen, _startPosX + 20, _startPosY + 4, 70, 52);
// //задние фары
// Brush brRed = new SolidBrush(Color.Red);
// g.FillEllipse(brRed, _startPosX + 10, _startPosY + 5, 20, 20);
// g.FillEllipse(brRed, _startPosX + 10, _startPosY + 35, 20,
// 20);
// //передние фары
// Brush brYellow = new SolidBrush(Color.Yellow);
// g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 5, 20,
// 20);
// g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 35, 20,
// 20);
// //кузов
// Brush br = new SolidBrush(EntityBattleship.BodyColor);
// g.FillRectangle(br, _startPosX + 10, _startPosY + 15, 10, 30);
// g.FillRectangle(br, _startPosX + 90, _startPosY + 15, 10, 30);
// g.FillRectangle(br, _startPosX + 20, _startPosY + 5, 70, 50);
// //стекла
// Brush brBlue = new SolidBrush(Color.LightBlue);
// g.FillRectangle(brBlue, _startPosX + 70, _startPosY + 10, 5,
// 40);
// g.FillRectangle(brBlue, _startPosX + 30, _startPosY + 10, 5,
// 40);
// g.FillRectangle(brBlue, _startPosX + 35, _startPosY + 8, 35,
// 2);
// g.FillRectangle(brBlue, _startPosX + 35, _startPosY + 51, 35,
// 2);
// //выделяем рамкой крышу
// g.DrawRectangle(pen, _startPosX + 35, _startPosY + 10, 35,
// 40);
// g.DrawRectangle(pen, _startPosX + 75, _startPosY + 15, 25,
// 30);
// g.DrawRectangle(pen, _startPosX + 10, _startPosY + 15, 15,
// 30);
// // спортивная линия
// if (EntityBattleship.SportLine)
// {
// g.FillRectangle(additionalBrush, _startPosX + 75,
// _startPosY + 23, 25, 15);
// g.FillRectangle(additionalBrush, _startPosX + 35,
// _startPosY + 23, 35, 15);
// g.FillRectangle(additionalBrush, _startPosX + 10,
// _startPosY + 23, 20, 15);
// }
// // крыло
// if (EntityBattleship.Wing)
// {
// g.FillRectangle(additionalBrush, _startPosX, _startPosY
// + 5, 10, 50);
// g.DrawRectangle(pen, _startPosX, _startPosY + 5, 10,
// 50);
// }
}
}
}