This commit is contained in:
Макс Бондаренко 2022-10-23 18:27:08 +04:00
parent 8f20040737
commit 3f669751ff
2 changed files with 74 additions and 59 deletions

View File

@ -29,17 +29,17 @@
private void InitializeComponent() private void InitializeComponent()
{ {
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.maskedTextBoxPosition = new System.Windows.Forms.MaskedTextBox();
this.buttonDown = new System.Windows.Forms.Button(); this.buttonDown = new System.Windows.Forms.Button();
this.buttonLeft = new System.Windows.Forms.Button(); this.buttonLeft = new System.Windows.Forms.Button();
this.buttonUp = new System.Windows.Forms.Button(); this.buttonUp = new System.Windows.Forms.Button();
this.buttonRight = new System.Windows.Forms.Button(); this.buttonRight = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button(); this.buttonShowOnMap = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button(); this.buttonShowStorage = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button(); this.buttonRemoveShip = new System.Windows.Forms.Button();
this.buttonAddShip = new System.Windows.Forms.Button(); this.buttonAddShip = new System.Windows.Forms.Button();
this.comboBoxSelectorMap = new System.Windows.Forms.ComboBox(); this.comboBoxSelectorMap = new System.Windows.Forms.ComboBox();
this.pictureBox = new System.Windows.Forms.PictureBox(); this.pictureBox = new System.Windows.Forms.PictureBox();
this.maskedTextBoxPosition = new System.Windows.Forms.MaskedTextBox();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
@ -51,9 +51,9 @@
this.groupBox1.Controls.Add(this.buttonLeft); this.groupBox1.Controls.Add(this.buttonLeft);
this.groupBox1.Controls.Add(this.buttonUp); this.groupBox1.Controls.Add(this.buttonUp);
this.groupBox1.Controls.Add(this.buttonRight); this.groupBox1.Controls.Add(this.buttonRight);
this.groupBox1.Controls.Add(this.button4); this.groupBox1.Controls.Add(this.buttonShowOnMap);
this.groupBox1.Controls.Add(this.button3); this.groupBox1.Controls.Add(this.buttonShowStorage);
this.groupBox1.Controls.Add(this.button2); this.groupBox1.Controls.Add(this.buttonRemoveShip);
this.groupBox1.Controls.Add(this.buttonAddShip); this.groupBox1.Controls.Add(this.buttonAddShip);
this.groupBox1.Controls.Add(this.comboBoxSelectorMap); this.groupBox1.Controls.Add(this.comboBoxSelectorMap);
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Right; this.groupBox1.Dock = System.Windows.Forms.DockStyle.Right;
@ -64,6 +64,14 @@
this.groupBox1.TabStop = false; this.groupBox1.TabStop = false;
this.groupBox1.Text = "Инструменты"; this.groupBox1.Text = "Инструменты";
// //
// maskedTextBoxPosition
//
this.maskedTextBoxPosition.Location = new System.Drawing.Point(6, 116);
this.maskedTextBoxPosition.Mask = "00";
this.maskedTextBoxPosition.Name = "maskedTextBoxPosition";
this.maskedTextBoxPosition.Size = new System.Drawing.Size(188, 23);
this.maskedTextBoxPosition.TabIndex = 11;
//
// buttonDown // buttonDown
// //
this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
@ -112,35 +120,35 @@
this.buttonRight.UseVisualStyleBackColor = true; this.buttonRight.UseVisualStyleBackColor = true;
this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click); this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click);
// //
// button4 // buttonShowOnMap
// //
this.button4.Location = new System.Drawing.Point(6, 281); this.buttonShowOnMap.Location = new System.Drawing.Point(6, 281);
this.button4.Name = "button4"; this.buttonShowOnMap.Name = "buttonShowOnMap";
this.button4.Size = new System.Drawing.Size(188, 23); this.buttonShowOnMap.Size = new System.Drawing.Size(188, 23);
this.button4.TabIndex = 5; this.buttonShowOnMap.TabIndex = 5;
this.button4.Text = "Посмотреть карту"; this.buttonShowOnMap.Text = "Посмотреть карту";
this.button4.UseVisualStyleBackColor = true; this.buttonShowOnMap.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.ButtonShowOnMap_Click); this.buttonShowOnMap.Click += new System.EventHandler(this.ButtonShowOnMap_Click);
// //
// button3 // buttonShowStorage
// //
this.button3.Location = new System.Drawing.Point(6, 226); this.buttonShowStorage.Location = new System.Drawing.Point(6, 226);
this.button3.Name = "button3"; this.buttonShowStorage.Name = "buttonShowStorage";
this.button3.Size = new System.Drawing.Size(188, 23); this.buttonShowStorage.Size = new System.Drawing.Size(188, 23);
this.button3.TabIndex = 4; this.buttonShowStorage.TabIndex = 4;
this.button3.Text = "Посмотреть хранилище"; this.buttonShowStorage.Text = "Посмотреть хранилище";
this.button3.UseVisualStyleBackColor = true; this.buttonShowStorage.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.ButtonShowStorage_Click); this.buttonShowStorage.Click += new System.EventHandler(this.ButtonShowStorage_Click);
// //
// button2 // buttonRemoveShip
// //
this.button2.Location = new System.Drawing.Point(6, 170); this.buttonRemoveShip.Location = new System.Drawing.Point(6, 170);
this.button2.Name = "button2"; this.buttonRemoveShip.Name = "buttonRemoveShip";
this.button2.Size = new System.Drawing.Size(188, 23); this.buttonRemoveShip.Size = new System.Drawing.Size(188, 23);
this.button2.TabIndex = 3; this.buttonRemoveShip.TabIndex = 3;
this.button2.Text = "Удалить корабль"; this.buttonRemoveShip.Text = "Удалить корабль";
this.button2.UseVisualStyleBackColor = true; this.buttonRemoveShip.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.ButtonRemoveShip_Click); this.buttonRemoveShip.Click += new System.EventHandler(this.ButtonRemoveShip_Click);
// //
// buttonAddShip // buttonAddShip
// //
@ -155,10 +163,15 @@
// comboBoxSelectorMap // comboBoxSelectorMap
// //
this.comboBoxSelectorMap.FormattingEnabled = true; this.comboBoxSelectorMap.FormattingEnabled = true;
this.comboBoxSelectorMap.Items.AddRange(new object[] {
"Простая карта",
"Вторая карта",
"Последняя карта"});
this.comboBoxSelectorMap.Location = new System.Drawing.Point(6, 22); this.comboBoxSelectorMap.Location = new System.Drawing.Point(6, 22);
this.comboBoxSelectorMap.Name = "comboBoxSelectorMap"; this.comboBoxSelectorMap.Name = "comboBoxSelectorMap";
this.comboBoxSelectorMap.Size = new System.Drawing.Size(188, 23); this.comboBoxSelectorMap.Size = new System.Drawing.Size(188, 23);
this.comboBoxSelectorMap.TabIndex = 0; this.comboBoxSelectorMap.TabIndex = 0;
this.comboBoxSelectorMap.SelectedIndexChanged += new System.EventHandler(this.ComboBoxSelectorMap_SelectedIndexChanged);
// //
// pictureBox // pictureBox
// //
@ -169,14 +182,6 @@
this.pictureBox.TabIndex = 1; this.pictureBox.TabIndex = 1;
this.pictureBox.TabStop = false; this.pictureBox.TabStop = false;
// //
// maskedTextBoxPosition
//
this.maskedTextBoxPosition.Location = new System.Drawing.Point(6, 116);
this.maskedTextBoxPosition.Mask = "00";
this.maskedTextBoxPosition.Name = "maskedTextBoxPosition";
this.maskedTextBoxPosition.Size = new System.Drawing.Size(188, 23);
this.maskedTextBoxPosition.TabIndex = 11;
//
// FormMapWithSetShip // FormMapWithSetShip
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
@ -199,9 +204,9 @@
private PictureBox pictureBox; private PictureBox pictureBox;
private Button buttonAddShip; private Button buttonAddShip;
private ComboBox comboBoxSelectorMap; private ComboBox comboBoxSelectorMap;
private Button button4; private Button buttonShowOnMap;
private Button button3; private Button buttonShowStorage;
private Button button2; private Button buttonRemoveShip;
private Button buttonDown; private Button buttonDown;
private Button buttonLeft; private Button buttonLeft;
private Button buttonUp; private Button buttonUp;

View File

@ -7,13 +7,14 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using static System.Windows.Forms.DataFormats; using WarmlyShip;
namespace WarmlyShip namespace WarmlyShip
{ {
public partial class FormMapWithSetShip : Form public partial class FormMapWithSetShip : Form
{ {
private MapWithSetShipGeneric<DrawningObjectShip, AbstractMap> _mapShipsCollectionGeneric; private MapWithSetShipGeneric<DrawningObjectShip, AbstractMap> _mapShipCollectionGeneric;
public bool ShipOnMap = false;
public FormMapWithSetShip() public FormMapWithSetShip()
{ {
@ -28,20 +29,25 @@ namespace WarmlyShip
case "Простая карта": case "Простая карта":
map = new SimpleMap(); map = new SimpleMap();
break; break;
case "Вторая карта":
map = new SecondMap();
break;
case "Последняя карта":
map = new LastMap();
break;
} }
if (map != null) if (map != null)
{ {
_mapShipsCollectionGeneric = new MapWithSetShipGeneric<DrawningObjectShip, AbstractMap>(pictureBox.Width, pictureBox.Height, map); _mapShipCollectionGeneric = new MapWithSetShipGeneric<DrawningObjectShip, AbstractMap>(pictureBox.Width, pictureBox.Height, map);
} }
else else
{ {
_mapShipsCollectionGeneric = null; _mapShipCollectionGeneric = null;
} }
} }
private void ButtonAddShip_Click(object sender, EventArgs e) private void ButtonAddShip_Click(object sender, EventArgs e)
{ {
if (_mapShipsCollectionGeneric == null) if (_mapShipCollectionGeneric == null)
{ {
return; return;
} }
@ -49,10 +55,10 @@ namespace WarmlyShip
if (form.ShowDialog() == DialogResult.OK) if (form.ShowDialog() == DialogResult.OK)
{ {
DrawningObjectShip ship = new(form.SelectedShip); DrawningObjectShip ship = new(form.SelectedShip);
if (_mapShipsCollectionGeneric + ship) if (_mapShipCollectionGeneric + ship)
{ {
MessageBox.Show("Объект добавлен"); MessageBox.Show("Объект добавлен");
pictureBox.Image = _mapShipsCollectionGeneric.ShowSet(); pictureBox.Image = _mapShipCollectionGeneric.ShowSet();
} }
else else
{ {
@ -67,15 +73,16 @@ namespace WarmlyShip
{ {
return; return;
} }
if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) if (MessageBox.Show("Удалить объект?", "Удаление",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{ {
return; return;
} }
int pos = Convert.ToInt32(maskedTextBoxPosition.Text); int pos = Convert.ToInt32(maskedTextBoxPosition.Text);
if (_mapShipsCollectionGeneric - pos) if (_mapShipCollectionGeneric - pos)
{ {
MessageBox.Show("Объект удален"); MessageBox.Show("Объект удален");
pictureBox.Image = _mapShipsCollectionGeneric.ShowSet(); pictureBox.Image = _mapShipCollectionGeneric.ShowSet();
} }
else else
{ {
@ -85,28 +92,31 @@ namespace WarmlyShip
private void ButtonShowStorage_Click(object sender, EventArgs e) private void ButtonShowStorage_Click(object sender, EventArgs e)
{ {
if (_mapShipsCollectionGeneric == null) if (_mapShipCollectionGeneric == null)
{ {
return; return;
} }
pictureBox.Image = _mapShipsCollectionGeneric.ShowSet(); pictureBox.Image = _mapShipCollectionGeneric.ShowSet();
ShipOnMap = false;
} }
private void ButtonShowOnMap_Click(object sender, EventArgs e) private void ButtonShowOnMap_Click(object sender, EventArgs e)
{ {
if (_mapShipsCollectionGeneric == null) if (_mapShipCollectionGeneric == null)
{ {
return; return;
} }
pictureBox.Image = _mapShipsCollectionGeneric.ShowOnMap(); pictureBox.Image = _mapShipCollectionGeneric.ShowOnMap();
ShipOnMap = true;
} }
private void ButtonMove_Click(object sender, EventArgs e) private void ButtonMove_Click(object sender, EventArgs e)
{ {
if (_mapShipsCollectionGeneric == null) if (_mapShipCollectionGeneric == null || !ShipOnMap)
{ {
return; return;
} }
//получаем имя кнопки
string name = ((Button)sender)?.Name ?? string.Empty; string name = ((Button)sender)?.Name ?? string.Empty;
Direction dir = Direction.None; Direction dir = Direction.None;
switch (name) switch (name)
@ -124,7 +134,7 @@ namespace WarmlyShip
dir = Direction.Right; dir = Direction.Right;
break; break;
} }
pictureBox.Image = _mapShipsCollectionGeneric.MoveObject(dir); pictureBox.Image = _mapShipCollectionGeneric.MoveObject(dir);
} }
} }
} }