From 6e4ae6838ec33eef3de7300f82203d035313ceb3 Mon Sep 17 00:00:00 2001 From: MarcUs7i Date: Thu, 13 Mar 2025 16:53:57 +0100 Subject: [PATCH] Added Shapes --- .gitignore | 5 ++++- Shapes/Shapes/Circle.cs | 7 +++++++ Shapes/Shapes/Rectangle.cs | 7 +++++++ Shapes/Shapes/Shape.cs | 18 ++++++++++++++++++ Shapes/Shapes/Square.cs | 7 +++++++ Shapes/Shapes/Triangle.cs | 7 +++++++ 6 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 Shapes/Shapes/Circle.cs create mode 100644 Shapes/Shapes/Rectangle.cs create mode 100644 Shapes/Shapes/Shape.cs create mode 100644 Shapes/Shapes/Square.cs create mode 100644 Shapes/Shapes/Triangle.cs diff --git a/.gitignore b/.gitignore index 9209049..bb695b5 100644 --- a/.gitignore +++ b/.gitignore @@ -580,4 +580,7 @@ FodyWeavers.xsd ### VisualStudio Patch ### # Additional files built by Visual Studio -# End of https://www.toptal.com/developers/gitignore/api/csharp,visualstudio \ No newline at end of file +# End of https://www.toptal.com/developers/gitignore/api/csharp,visualstudio + +# Rider +.idea/ diff --git a/Shapes/Shapes/Circle.cs b/Shapes/Shapes/Circle.cs new file mode 100644 index 0000000..3872c66 --- /dev/null +++ b/Shapes/Shapes/Circle.cs @@ -0,0 +1,7 @@ +namespace Shapes.Shapes; + +public sealed class Circle : Shape +{ + const int RadiusMin = 5; + const int RadiusMax = 100; +} diff --git a/Shapes/Shapes/Rectangle.cs b/Shapes/Shapes/Rectangle.cs new file mode 100644 index 0000000..92ca65e --- /dev/null +++ b/Shapes/Shapes/Rectangle.cs @@ -0,0 +1,7 @@ +namespace Shapes.Shapes; + +public sealed class Rectangle : Shape +{ + const int SideLengthMin = 10; + const int SideLengthMax = 150; +} diff --git a/Shapes/Shapes/Shape.cs b/Shapes/Shapes/Shape.cs new file mode 100644 index 0000000..05b91de --- /dev/null +++ b/Shapes/Shapes/Shape.cs @@ -0,0 +1,18 @@ +namespace Shapes.Shapes; + +public abstract class Shape +{ + private static int _nextId = 1; + public int Id { get; } + public int Height { get; set; } + public int Width { get; set; } + + protected Shape() + { + Id = _nextId++; + } + + public virtual bool DrawSelf() => true; + public virtual bool Draw(int height, int width) => true; + public virtual bool Delete() => true; +} diff --git a/Shapes/Shapes/Square.cs b/Shapes/Shapes/Square.cs new file mode 100644 index 0000000..4b2bfec --- /dev/null +++ b/Shapes/Shapes/Square.cs @@ -0,0 +1,7 @@ +namespace Shapes.Shapes; + +public sealed class Square : Shape +{ + const int SideLengthMin = 10; + const int SideLengthMax = 120; +} diff --git a/Shapes/Shapes/Triangle.cs b/Shapes/Shapes/Triangle.cs new file mode 100644 index 0000000..ea18a01 --- /dev/null +++ b/Shapes/Shapes/Triangle.cs @@ -0,0 +1,7 @@ +namespace Shapes.Shapes; + +public sealed class Triangle : Shape +{ + const int SideLengthMin = 10; + const int SideLengthMax = 150; +}