Compare commits

...

1 Commits
main ... Laba1

Author SHA1 Message Date
ALINA_KURBANOVA
3833d02e56 Завершение проекта 2023-10-17 21:52:48 +04:00
11 changed files with 810 additions and 50 deletions

View File

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WarmlyLocomotive
{
/// <summary>
/// Направление перемещения
/// </summary>
public enum Direction
{
/// <summary>
/// Вверх
/// /// </summary>
Up = 1,
/// <summary>
/// Вниз
/// </summary>
Down = 2,
/// <summary>
/// Влево
/// </summary>
Left = 3,
/// <summary>
/// Вправо
/// </summary>
Right = 4
}
}

View File

@ -1,39 +0,0 @@
namespace WarmlyLocomotive
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Text = "Form1";
}
#endregion
}
}

View File

@ -1,10 +0,0 @@
namespace WarmlyLocomotive
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}

View File

@ -11,7 +11,7 @@ namespace WarmlyLocomotive
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
Application.Run(new WarmlyLocomotiveForm());
}
}
}

View File

@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WarmlyLocomotive.Properties {
using System;
/// <summary>
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
/// </summary>
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
// с помощью такого средства, как ResGen или Visual Studio.
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
// с параметром /str или перестройте свой проект VS.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WarmlyLocomotive.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@ -0,0 +1,240 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WarmlyLocomotive
{
public class EntityWarmlyLocomotive
{
/// <summary>
/// Скорость
/// </summary>
public int Speed { get; set; }
/// <summary>
/// Вес
/// </summary>
public double Weight { get; private set; }
/// <summary>
/// Основной цвет
/// </summary>
public Color BodyColor { get; private set; }
/// <summary>
/// Дополнительный цвет (для опциональных элементов)
/// </summary>
public Color AdditionalColor { get; private set; }
/// <summary>
/// Признак (опция) наличия трубы
/// </summary>
public bool Trumpet { get; private set; }
/// <summary>
/// Признак (опция) наличия прицепа
/// </summary>
public bool Luggage { get; private set; }
/// <summary>
/// Шаг перемещения
/// </summary>
public double Step => (double)Speed * 100 / Weight;
/// <summary>
/// Инициализация полей объекта-класса тепловоза
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес тепловоза</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="trumpet">Признак наличия трубы</param>
/// <param name="luggage">Признак наличия отсека под топливо</param>
public void Init(int speed, double weight, Color bodyColor, Color
additionalColor, bool trumpet, bool luggage, bool v, int width, int height)
{
Speed = speed;
Weight = weight;
BodyColor = bodyColor;
AdditionalColor = additionalColor;
Trumpet = trumpet;
Luggage = luggage;
}
/// <summary>
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
/// </summary>
public class DrawningWarmlyLocomotive
{
/// <summary>
/// Класс-сущность
/// </summary>
public EntityWarmlyLocomotive? EntityWarmlyLocomotive { get; private set; }
/// <summary>
/// Ширина окна
/// </summary>
private int _pictureWidth;
/// <summary>
/// Высота окна
/// </summary>
private int _pictureHeight;
/// <summary>
/// /// Левая координата прорисовки тепловоза
/// </summary>
private int _startPosX;
/// <summary>
/// Верхняя кооридната прорисовки тепловоза
/// </summary>
private int _startPosY;
/// <summary>
/// Ширина прорисовки тепловоза
/// </summary>
private readonly int _carWidth = 200;
/// <summary>
/// Высота прорисовки тепловоза
/// </summary>
private readonly int _carHeight = 75;
//высота трубы
private readonly int _trumpetHeight = 25;
/// <summary>
/// Инициализация свойств
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param>
/// <param name="bodyColor">Цвет кузова</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="trumpet">Признак наличия трубы</param>
/// <param name="luggage">Признак наличия отсека под топливо</param>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
/// <returns>true - объект создан, false - проверка не пройдена,нельзя создать объект в этих размерах</returns>
public bool Init(int speed, double weight, Color bodyColor, Color
additionalColor, bool trumpet, bool luggage, bool v, int width, int height)
{
_pictureWidth = width;
_pictureHeight = height;
if (_carWidth < _pictureWidth || _carHeight < _pictureHeight)
{
EntityWarmlyLocomotive = new EntityWarmlyLocomotive();
EntityWarmlyLocomotive.Init(speed, weight, bodyColor, additionalColor, trumpet, luggage, v, width, height);
return true;
}
return false;
}
/// <summary>
/// Установка позиции
/// </summary>
/// <param name="x">Координата X</param>
/// <param name="y">Координата Y</param>
public void SetPosition(int x, int y)
{
if (EntityWarmlyLocomotive == null) return;
while (x + _carWidth > _pictureWidth)
{
x -= (int)EntityWarmlyLocomotive.Step;
}
while (x < 0)
{
x += (int)EntityWarmlyLocomotive.Step;
}
while (y + _carHeight > _pictureHeight)
{
y -= (int)EntityWarmlyLocomotive.Step;
}
while (y < 0)
{
y += (int)EntityWarmlyLocomotive.Step;
}
_startPosX = x;
_startPosY = y;
}
/// <summary>
/// Изменение направления перемещения
/// </summary>
/// <param name="direction">Направление</param>
public void MoveTransport(Direction direction)
{
if (EntityWarmlyLocomotive == null)
{
return;
}
switch (direction)
{
//влево
case Direction.Left:
if (_startPosX - EntityWarmlyLocomotive.Step > 0)
{
_startPosX -= (int)EntityWarmlyLocomotive.Step;
}
break;
//вверх
case Direction.Up:
if (_startPosY - _trumpetHeight - EntityWarmlyLocomotive.Step > 0)
{
_startPosY -= (int)EntityWarmlyLocomotive.Step;
}
break;
// вправо
case Direction.Right:
if (_startPosX + _carWidth + EntityWarmlyLocomotive.Step < _pictureWidth)
{
_startPosX += (int)EntityWarmlyLocomotive.Step;
}
break;
//вниз
case Direction.Down:
if (_startPosY + _carHeight + EntityWarmlyLocomotive.Step < _pictureHeight)
{
_startPosY += (int)EntityWarmlyLocomotive.Step;
}
break;
}
}
/// <summary>
/// Прорисовка объекта
/// </summary>
/// <param name="g"></param>
public void DrawTransport(Graphics g)
{
if (EntityWarmlyLocomotive == null)
{
return;
}
Pen pen = new(Color.Black, 2);
Brush bodyBrush = new SolidBrush(EntityWarmlyLocomotive.BodyColor);
Brush addBrush = new SolidBrush(EntityWarmlyLocomotive.AdditionalColor);
Brush wheelBrush = new SolidBrush(Color.Black);
//корпус
g.FillRectangle(bodyBrush, _startPosX + 50, _startPosY, 150, 50);
Point[] Points = { new Point(_startPosX + 50, _startPosY + 25), new Point(_startPosX + 125, _startPosY + 25) };
g.DrawPolygon(pen, Points);
Point[] Points2 = { new Point(_startPosX + 150, _startPosY + 25), new Point(_startPosX + 200, _startPosY + 25) };
g.DrawPolygon(pen, Points2);
//окна
g.DrawRectangle(pen, _startPosX + 125, _startPosY + 10, 25, 30);
g.DrawRectangle(pen, _startPosX + 60, _startPosY + 7, 10, 13);
g.DrawRectangle(pen, _startPosX + 160, _startPosY + 7, 10, 13);
g.DrawRectangle(pen, _startPosX + 175, _startPosY + 7, 10, 13);
//колеса
g.FillEllipse(wheelBrush, _startPosX + 60, _startPosY + 50, 20, 20);
g.FillEllipse(wheelBrush, _startPosX + 85, _startPosY + 50, 20, 20);
g.FillEllipse(wheelBrush, _startPosX + 145, _startPosY + 50, 20, 20);
g.FillEllipse(wheelBrush, _startPosX + 170, _startPosY + 50, 20, 20);
//труба
if (EntityWarmlyLocomotive.Trumpet)
{
g.FillRectangle(addBrush, _startPosX + 165, _startPosY - 25, 25, 25);
}
//багаж
if (EntityWarmlyLocomotive.Luggage)
{
g.FillRectangle(addBrush, _startPosX, _startPosY, 50, 50);
g.FillEllipse(wheelBrush, _startPosX + 10, _startPosY + 50, 20, 20);
g.FillEllipse(wheelBrush, _startPosX + 35, _startPosY + 50, 20, 20);
}
}
}
}
}

View File

@ -8,4 +8,19 @@
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>

View File

@ -0,0 +1,79 @@
using System.Windows.Forms;
using WarmlyLocomotive;
using static WarmlyLocomotive.EntityWarmlyLocomotive;
namespace WarmlyLocomotive
{
/// <summary>
/// Ôîðìà ðàáîòû ñ îáúåêòîì "Ñïîðòèâíûé àâòîìîáèëü"
/// </summary>
public partial class WarmlyLocomotiveForm : Form
{
/// <summary>
/// Ïîëå-îáúåêò äëÿ ïðîðèñîâêè îáúåêòà
/// </summary>
private DrawningWarmlyLocomotive? _drawningWarmlyLocomotive;
public WarmlyLocomotiveForm()
{
InitializeComponent();
}
/// <summary>
/// Ìåòîä ïðîðèñîâêè ìàøèíû
/// </summary>
private void Draw()
{
if (_drawningWarmlyLocomotive == null)
{
return;
}
Bitmap bmp = new(pictureBox1.Width,
pictureBox1.Height);
Graphics gr = Graphics.FromImage(bmp);
_drawningWarmlyLocomotive.DrawTransport(gr);
pictureBox1.Image = bmp;
}
private void buttonCreate_Click(object sender, EventArgs e)
{
Random random = new();
_drawningWarmlyLocomotive = new DrawningWarmlyLocomotive();
_drawningWarmlyLocomotive.Init(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)),
Convert.ToBoolean(random.Next(0, 2)),
Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)),
pictureBox1.Width, pictureBox1.Height);
_drawningWarmlyLocomotive.SetPosition(random.Next(10, 100),
random.Next(10, 100));
Draw();
}
private void buttonMove_Click(object sender, EventArgs e)
{
if (_drawningWarmlyLocomotive == null)
{
return;
}
string name = ((Button)sender)?.Name ?? string.Empty;
switch (name)
{
case "buttonUp":
_drawningWarmlyLocomotive.MoveTransport(Direction.Up);
break;
case "buttonDown":
_drawningWarmlyLocomotive.MoveTransport(Direction.Down);
break;
case "buttonLeft":
_drawningWarmlyLocomotive.MoveTransport(Direction.Left);
break;
case "buttonRight":
_drawningWarmlyLocomotive.MoveTransport(Direction.Right);
break;
}
Draw();
}
}
}

View File

@ -0,0 +1,243 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonLeft.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="buttonUp.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAJ4AAAE+CAMAAABLMFkTAAAABGdBTUEAALGPC/xhBQAAAJZQTFRF////
Zs3/adH/AGKVAGWYOpnLH22dNpLEKYa4K3ilaM//AFiRAF2RAF+VatP/AGGUAFyU8/j6AF6VAFWQXcP1
Vbnr2eXtq8TWQqLUEnCjcZ285O3y6/L2Wr/xT7LkMIy+R4Srbdf/Wo+zvtHfz97olLTLo77SI3+yUoqw
uM3cZJa3x9jjgKfCHHirOpfJeKG+nLrPN3ynjFhM0AAAAAlwSFlzAAAOwQAADsEBuJFr7QAABYVJREFU
eF7tnQtz0lwURUty+yC8sbbUvlDb4qNY/f9/7jvncvmkbQhJ9rlJxtlrdKZaiGtYXoqyZ3pECGmA58fw
QSe5GAyuw4ddpJ+m/fBhB3mcOjftbN6LD04YXIRfdo1+6lL50dG8z3OX3t+nbv4cfqNTXAykbK/X1bwn
zg3vkuRu6NxJ+K0O4dOOe71xJ/P6U9vLevJDPvjQtbybtD2hi3mfR26iaZXx/aRjeR/01EpZj887eAif
6gKa9uNWr3N5XyTtqf+Lt0Hzjl7CJ1vnQU9t9v+DJ2R6eruSV1x20irZR8nrwqdb5m1aJTntSt6fcmqv
Xj12SnYlp/dnuEmbvD61W7qS91NOWsXn/RRu1Bo+bY6d+HUh7/tTu6ULeTXtr9wHT56cNe+PcMNW2J9W
af307k+r+LxpuGkL/JC0x3sfPDkdv9rM+7UwreLzfg03b5hZKmlv96ZVslvJO5mFOzSLpB0WpVWS47by
fj+YVvFPzt/DXRqkRFrF502bz1smreLzfgl3agxNuy5h107e2VzSnh9Mq2TnknfUbN4vJdMqyfGw4bzl
0yrJutm8s5E82ZZLq/jT22Deb/K1dlH6wZOHbyGn91u4c3Qupy5dh/9QKYfPexnuHpmbammV7HwieW/C
BeKyrJhW8XmX4QJRuRxUTauM16mbNpD3Zlo5reLzTuPnXU7csGpaJVkM3SR63ic5tavKaZUm8tZMq/iv
vZHz1k2rxM9bP60yXqVu8BQuFYEbeSUw0Tcv6uFP7yBe3j9AWiVu3t9QWiWRvNPf4XLGXMupdfVO7Zbs
XC4xjTM3QNMqmjf9Ey5oCp5WiZX3Wk5tWv/Ubsl68u/jCGuSfuqGd7Cd+N1JXvO5waOkPYPTKuMzyWu8
JtG0/t1knM0blrZ5rdIq9nnt0irWeTcbEKMHb5vXbm7g04JPyLvo+9F2eW3TKpZ5jdMqlmuSE+O0it3c
YDvvscVqLOQ3ILZpFas1yd95jy02eXfnPbZo3hGYdzPvMU+rZAZrklhpFTzvyzx/KGBDomMhIG/EtIrP
C5ze/A2IHf796Np546ZVdG4wrzkW0uXW+3mPKZm+H13z9MpfjKhplfp5/bwnyhPyLn5NUmMslL/csqfm
miT2qd1SbyxUNO+xpc4WrHjeY0uNLZie2sNDARuq59V5TzNpFT8WqpD38LzHFp+39Fho1mRapdqa5NBy
y54qY6Gm0yoV8o4aTqts5gZBoJDm0yplp37lllv2lBsL6XJr0nRaJbudyJ986PTqvAd986IeZcZCft4T
/UVePofHQhWWW/b496PnRXmrznts0Xe0isZC9TYgdhSPhWrMe2wpHgu1m1Yp2oL5tK3aad50T17dgLR2
arfsX5Ms07bTKpo3zZkbSFq3+pzsMg4/A2YPbPb3qm/+COHzKu/0alq3OitiYeSXLcIF8xG993mXcqTl
BXUBZv82ktdO4ZK5qMfbNcmTpD1AavUiMDn2CoW8HgtdX/UPYK0XLruXq2pjIWu9cFkrqIdAPQTqIVAP
gXoI1EOgHgL1EKiHQD0E6iFQD4F6CNRDoB4C9RCoh0A9BOohUA+BegjUQ6AeAvUQqIdAPQTqIVAPgXoI
1EOgHgL1EKiHQD0E6iFQD4F6CNRDoB4C9RCoh0A9BOohUA+BegjUQ6AeAvUQqIdAPQTqIVAPgXoI1EOg
HgL1EKiHQD0E6iFQD4F6CNRDoB4C9RCoh0A9BOohUA+BegjUQ6AeAvUQqIdAPQTqIVAPgXoI1EOgHgL1
EKiHQD0E6iFQD4F6CNRDoB4C9RCoh0A9BOohUA+BegjUQ6AeAvUQVO/1t6iuzTiKnlufGrGWi4XLWqHf
7zl8a2oYvVa4rBXOX9SK1FrvxJhwWULIv8fR0X9+db0TsFPiSgAAAABJRU5ErkJggg==
</value>
</data>
<data name="buttonDown.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="buttonRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAT4AAACeCAMAAACcjZZYAAAABGdBTUEAALGPC/xhBQAAAJZQTFRF////
Zs3/adH/AGKVAGWYOpnLH22dNpLEKYa4K3ilaM//AFiRAF2RAF+VatP/AGGUAFyU8/j6AF6VAFWQXcP1
Vbnr2eXtq8TWQqLUEnCjcZ285O3y6/L2Wr/xT7LkMIy+R4Srbdf/Wo+zvtHfz97olLTLo77SI3+yUoqw
uM3cZJa3x9jjgKfCHHirOpfJeKG+nLrPN3ynjFhM0AAABOBJREFUeF7tndtW2zAQRbEtAnHIpQHa0Ja2
9BZ6gbb//3OdsUfOzZZGUtZqV3T2C1lgXjYniknmSGcAAABAxryRryCKu6/yAMQwnnx4Kw9BOGMzX7yS
xyCYsTEGAYyG9ZkKAYyk0UcBfEQAYyB96/XcmOkUAYxgbKrLh9VVxQF8Id8DalhfWd48cQCX3+SbQEuj
r6jL1ZwD+BEBDKPVVxQSwAoBDMLqK+rZ6opfgr/LD4CGTl8TQBI4nX6SHwE/W/o4gPQEpgBiBdSyrY8C
eH/HK6BBAJXs6qOX4HOsgAHs6dsE8IdcAFwc6OsC+FquAA4O9XUBHCGAXvr0UQCfEUAVvfo2K+BnuQz0
w/pm4mwbCeD1L7kO9DKQPqK85QAuRwigg2F9RV1fNCsgAjiMQ19RzBBAD0NrX4sN4E+5GuzhTB9R3prm
HhAB7MWnDwF04tVHtzDvOIDL0Uv5FbDBr4+ewPV7CmA1+SK/Azo0+op69s5UxizGCOAeKn0UwAIB7EOp
bxPAY81Tjuj16BTQ6eMAXh4zgCP6Y5wCWn1HDiCnrzoB5lp9mwD+FgUpkL6n8xPgeVWLHT82gH/SAzgy
1cWsPAH09oi6CeB8kRxA1qeO/elAAayaACbOU2aqjwO45gBO0ioN2eqjAK6aFTBpojxfffQSfNMEcJEQ
wJz1cQB5njIhgFnr43vANoCxE+WZ67MBjO3U5K7ProCRlQbo61bAmEoD9BEyUT4NnyiHPsaugMGVBuhr
iezUQJ/AATQUwLCJcujrkEpDUKcG+jZ0E+X6AELfNjaA6koD9O0QWmmAvj3K+zsOoLLSAH37BFUaoO+Q
gE4N9PWgDyD09dJOlPs7NdDXj+3UeCbKoW8ICaC7UwN9g9RlM9Dr7NRAnwO7Ag4HEPpceCfKoc+NrTQM
DPRCnwcJ4HV/AKHPR90GsL/SAH1+6qbS0LsCQp+Gdp5yeVhpgD4VUmm43p8ohz4d3UT5bgChTwsFkPxV
uysg9Gmx+naev9CnY6AOAn0qhtpw0KdAoocblyja6OG2OQ6KHv5pi0X+Y8NbBlG43i8goM8F3i5NAW/W
J4CPilJot77CB5VR2FUPH5PHYD8jx5BGBHWt3fUU+g7BgFoCQfO50LeHRK/CcG4EGA1PobxpojdHMSGC
LnqoxURQ3qOUFU1dtqcchXVSoa8lshENfYxto6IOHQPK+AnYJj62gohBSqjYiCQGih4frBq7D1Pm+uwu
YNiEKQI5UhVbgEWRGj0iX30UPZ77STtQP1t92HwzgVq2fk2KHsH6ct14uDrGxsPY9joBbLqexOls+T98
UtYOAzPekeDACfDvjjs5DXDYThI46ikJjb72oDFzUIoECn18zB1FD8fc9eHV5yiEA5++eoYjPl2wPu8B
swPNFuBOn8x4I3qDOPR5my3Aoa+d8cbJ2k6G1j5NswUMpc9fqgJMrz67AaRqC9ys6dMXUC/InUN9Qbsv
586BPkQvhD19WPXC2NVnmy3qekHubOujVY/kBdULcmdLn512RPT0dPpsvUBbqgKM1SfRm4fPeGdNq4+n
HTl6wfWC3Gn0Sb0g9Kg10Oh7aGa8o+oFuTM2Zr3m6MXVC3KH9DGTx8Rpx0xp9FUpM95Zw/rSZryzZpxW
L8idMaKXwl1avSB3ED0AAAD/OWdnfwFZ0L0TDt7FAgAAAABJRU5ErkJggg==
</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
namespace WarmlyLocomotive
{
partial class WarmlyLocomotiveForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WarmlyLocomotiveForm));
pictureBox1 = new PictureBox();
buttonCreate = new Button();
buttonLeft = new Button();
buttonUp = new Button();
buttonDown = new Button();
buttonRight = new Button();
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
SuspendLayout();
//
// pictureBox1
//
pictureBox1.Dock = DockStyle.Fill;
pictureBox1.Location = new Point(0, 0);
pictureBox1.Name = "pictureBox1";
pictureBox1.Size = new Size(884, 461);
pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
pictureBox1.TabIndex = 0;
pictureBox1.TabStop = false;
//
// buttonCreate
//
buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonCreate.Location = new Point(30, 379);
buttonCreate.Name = "buttonCreate";
buttonCreate.Size = new Size(75, 23);
buttonCreate.TabIndex = 1;
buttonCreate.Text = "Создать";
buttonCreate.UseVisualStyleBackColor = true;
buttonCreate.Click += buttonCreate_Click;
//
// buttonLeft
//
buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonLeft.BackgroundImage = (Image)resources.GetObject("buttonLeft.BackgroundImage");
buttonLeft.BackgroundImageLayout = ImageLayout.Zoom;
buttonLeft.Location = new Point(664, 395);
buttonLeft.Name = "buttonLeft";
buttonLeft.Size = new Size(30, 30);
buttonLeft.TabIndex = 2;
buttonLeft.UseVisualStyleBackColor = true;
buttonLeft.Click += buttonMove_Click;
//
// buttonUp
//
buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonUp.BackgroundImage = (Image)resources.GetObject("buttonUp.BackgroundImage");
buttonUp.BackgroundImageLayout = ImageLayout.Zoom;
buttonUp.Location = new Point(690, 372);
buttonUp.Name = "buttonUp";
buttonUp.Size = new Size(30, 30);
buttonUp.TabIndex = 3;
buttonUp.UseVisualStyleBackColor = true;
buttonUp.Click += buttonMove_Click;
//
// buttonDown
//
buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonDown.BackgroundImage = (Image)resources.GetObject("buttonDown.BackgroundImage");
buttonDown.BackgroundImageLayout = ImageLayout.Zoom;
buttonDown.Location = new Point(690, 395);
buttonDown.Name = "buttonDown";
buttonDown.Size = new Size(30, 30);
buttonDown.TabIndex = 4;
buttonDown.UseVisualStyleBackColor = true;
buttonDown.Click += buttonMove_Click;
//
// buttonRight
//
buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonRight.BackgroundImage = (Image)resources.GetObject("buttonRight.BackgroundImage");
buttonRight.BackgroundImageLayout = ImageLayout.Zoom;
buttonRight.Location = new Point(717, 395);
buttonRight.Name = "buttonRight";
buttonRight.Size = new Size(30, 30);
buttonRight.TabIndex = 5;
buttonRight.UseVisualStyleBackColor = true;
buttonRight.Click += buttonMove_Click;
//
// WarmlyLocomotiveForm
//
ClientSize = new Size(884, 461);
Controls.Add(buttonRight);
Controls.Add(buttonDown);
Controls.Add(buttonUp);
Controls.Add(buttonLeft);
Controls.Add(buttonCreate);
Controls.Add(pictureBox1);
Name = "WarmlyLocomotiveForm";
StartPosition = FormStartPosition.CenterScreen;
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
ResumeLayout(false);
PerformLayout();
}
#endregion
private PictureBox pictureBox1;
private Button buttonCreate;
private Button buttonLeft;
private Button buttonUp;
private Button buttonDown;
private Button buttonRight;
}
}