From 33eaa4e0cb67a29877cccd3ce28996a8eb7e0180 Mon Sep 17 00:00:00 2001 From: ALeksandr13254 Date: Thu, 7 Nov 2019 21:57:40 +0300 Subject: [PATCH 01/18] Create dotnetcore.yml --- .github/workflows/dotnetcore.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/dotnetcore.yml diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml new file mode 100644 index 0000000..22cc4eb --- /dev/null +++ b/.github/workflows/dotnetcore.yml @@ -0,0 +1,23 @@ +name: .NET Core + +on: [push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Setup .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 2.1.802 + - name: Build with dotnet + run: | + cd CourseApp + dotnet build --configuration Release + - name: Run tests + run: | + cd CourseApp.Tests + dotnet test From cf7ec5123666caaae1a4b7071e9f46abba336098 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= <Александр@DESKTOP-6G1MCJ8> Date: Sat, 28 Dec 2019 00:26:11 +0300 Subject: [PATCH 02/18] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RPG/MainRPG.cs | 14 ++++++++++++++ RPG/RPG.csproj | 29 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 RPG/MainRPG.cs create mode 100644 RPG/RPG.csproj diff --git a/RPG/MainRPG.cs b/RPG/MainRPG.cs new file mode 100644 index 0000000..b187e65 --- /dev/null +++ b/RPG/MainRPG.cs @@ -0,0 +1,14 @@ +using System; + +namespace RPG +{ + public class MainRPG + { + public static void Main(string[] args) + { + int a = 1; + Console.WriteLine("Hello World!"); + Console.WriteLine(a); + } + } +} diff --git a/RPG/RPG.csproj b/RPG/RPG.csproj new file mode 100644 index 0000000..3b3c34e --- /dev/null +++ b/RPG/RPG.csproj @@ -0,0 +1,29 @@ + + + + Exe + + True + 1573,1591,1701;1702;1705; + true + netcoreapp2.1;netstandard2.0 + v2 + true + + + + + + + + ../_stylecop/stylecop.ruleset + true + RPG.MainRPG + + + + + + + + From 348daf58970aba1c7db8906c9ca8cb2c29d0cc1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= <Александр@DESKTOP-6G1MCJ8> Date: Sat, 28 Dec 2019 17:31:41 +0300 Subject: [PATCH 03/18] ... --- CourseApp/CourseApp.sln | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CourseApp/CourseApp.sln b/CourseApp/CourseApp.sln index 691a55b..3bde1fe 100644 --- a/CourseApp/CourseApp.sln +++ b/CourseApp/CourseApp.sln @@ -7,6 +7,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CourseApp", "CourseApp.cspr EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CourseApp.Tests", "..\CourseApp.Tests\CourseApp.Tests.csproj", "{6DB5C70B-4945-464C-8E04-247E385443AE}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RPG", "..\RPG\RPG.csproj", "{E8AA026D-43F5-4535-AC82-7E2F3D1AD229}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {6DB5C70B-4945-464C-8E04-247E385443AE}.Debug|Any CPU.Build.0 = Debug|Any CPU {6DB5C70B-4945-464C-8E04-247E385443AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {6DB5C70B-4945-464C-8E04-247E385443AE}.Release|Any CPU.Build.0 = Release|Any CPU + {E8AA026D-43F5-4535-AC82-7E2F3D1AD229}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E8AA026D-43F5-4535-AC82-7E2F3D1AD229}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8AA026D-43F5-4535-AC82-7E2F3D1AD229}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E8AA026D-43F5-4535-AC82-7E2F3D1AD229}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From a6b8b140caa3f58754529fb7c7779ba18fb28dea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= <Александр@DESKTOP-6G1MCJ8> Date: Sat, 28 Dec 2019 22:35:26 +0300 Subject: [PATCH 04/18] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB,=20?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=BA=D0=B0=20=D0=B1=D0=B5=D0=B7=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RPG/Archer.cs | 26 +++++++++++++ RPG/ArcherSkill.cs | 23 +++++++++++ RPG/Battle.cs | 53 +++++++++++++++++++++++++ RPG/Game.cs | 68 ++++++++++++++++++++++++++++++++ RPG/IUseSkill.cs | 11 ++++++ RPG/Knight.cs | 26 +++++++++++++ RPG/KnightSkill.cs | 15 ++++++++ RPG/Logger.cs | 19 +++++++++ RPG/Mage.cs | 26 +++++++++++++ RPG/MageSkill.cs | 15 ++++++++ RPG/MainRPG.cs | 14 ------- RPG/PickPlayers.cs | 24 ++++++++++++ RPG/Player.cs | 96 ++++++++++++++++++++++++++++++++++++++++++++++ RPG/RPG.csproj | 2 +- 14 files changed, 403 insertions(+), 15 deletions(-) create mode 100644 RPG/Archer.cs create mode 100644 RPG/ArcherSkill.cs create mode 100644 RPG/Battle.cs create mode 100644 RPG/Game.cs create mode 100644 RPG/IUseSkill.cs create mode 100644 RPG/Knight.cs create mode 100644 RPG/KnightSkill.cs create mode 100644 RPG/Logger.cs create mode 100644 RPG/Mage.cs create mode 100644 RPG/MageSkill.cs delete mode 100644 RPG/MainRPG.cs create mode 100644 RPG/PickPlayers.cs create mode 100644 RPG/Player.cs diff --git a/RPG/Archer.cs b/RPG/Archer.cs new file mode 100644 index 0000000..82d48f3 --- /dev/null +++ b/RPG/Archer.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Archer : Player + { + public Archer() + : this("Без имени") + { + } + + public Archer(string name) + : this(name, null) + { + } + + public Archer(string name, Player opponent) + : base(name, opponent) + { + Class = "Лучник"; + Usingskill = new ArcherSkill(); + } + } +} diff --git a/RPG/ArcherSkill.cs b/RPG/ArcherSkill.cs new file mode 100644 index 0000000..5981b81 --- /dev/null +++ b/RPG/ArcherSkill.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class ArcherSkill : IUseSkill + { + public void UseSkill(Player user) + { + if (!user.SkillUsed) + { + user.Opponent.IsDebuffed = true; + Logger.LogMessage($"({user.Class}) {user.Name} использует (Огненные стрелы) на ({user.Opponent.Class}) {user.Opponent.Name}."); + user.SkillUsed = true; + } + else + { + user.Attack(); + } + } + } +} diff --git a/RPG/Battle.cs b/RPG/Battle.cs new file mode 100644 index 0000000..31beff1 --- /dev/null +++ b/RPG/Battle.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public static class Battle + { + public static Player BattlePlayers(Player p) + { + Random rand = new Random(); + while (p.Hp > 0 && p.Opponent.Hp > 0) + { + int useSkill1 = rand.Next(0, 2); + int useSkill2 = rand.Next(0, 2); + if (useSkill1 == 0 && p.Hp > 0) + { + p.Attack(); + } + else if (useSkill1 == 1 && p.Hp > 0) + { + p.UseSkill(); + } + + if (useSkill2 == 0 && p.Opponent.Hp > 0) + { + p.Opponent.Attack(); + } + else if (useSkill2 == 1 && p.Opponent.Hp > 0) + { + p.Opponent.UseSkill(); + } + } + + if (p.Hp < 1) + { + Logger.LogMessage($"({p.Class}) {p.Name} погиб!\n"); + p.Opponent.Hp = rand.Next(1, 100); + p.Opponent.IsDebuffed = false; + return p; + } + else if (p.Opponent.Hp < 1) + { + Logger.LogMessage($"({p.Opponent.Class}) {p.Opponent.Name} погиб!\n"); + p.Hp = rand.Next(1, 100); + p.IsDebuffed = false; + return p.Opponent; + } + + throw new Exception("Ошибка!!!"); + } + } +} diff --git a/RPG/Game.cs b/RPG/Game.cs new file mode 100644 index 0000000..18b96cb --- /dev/null +++ b/RPG/Game.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; + +namespace RPG +{ + public class Game + { + public static void Main(string[] args) + { + Console.Write($"Введите кол-во игроков (1-16):"); + int kol = Convert.ToInt32(Console.ReadLine()); + if (kol <= 0) + { + throw new Exception("Ошибка!!!"); + } + + string[] players_names = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; + List kon_a = new List(); + List kon_b = new List(); + int kon = 1; + int n = 0; + Random rand = new Random(); + while (kon_a.Count < kol) + { + int r = rand.Next(0, 3); + if (r == 0) + { + kon_a.Add(new Knight(players_names[n])); + } + + if (r == 1) + { + kon_a.Add(new Archer(players_names[n])); + } + + if (r == 2) + { + kon_a.Add(new Mage(players_names[n])); + } + + n++; + } + + Logger.LogMessage($"{kon++}-й Кон\n"); + while (kon_a.Count + kon_b.Count > 1) + { + if (kon_a.Count > 1 && !(kon_a.Count < 2)) + { + Player tempPlayer = Battle.BattlePlayers(kon_a[PickPlayers.PickOp(kon_a)]); + kon_b.Add(tempPlayer.Opponent); + kon_a.Remove(tempPlayer.Opponent); + kon_a[kon_a.IndexOf(tempPlayer)].Opponent.Opponent = null; + kon_a.Remove(tempPlayer); + } + else + { + Logger.LogMessage($"{kon}-й Кон\n"); + kon_a.AddRange(kon_b); + kon_b.Clear(); + kon++; + } + } + + Logger.LogMessage($"({kon_b[0].Class}) {kon_b[0].Name} Победил!!!"); + Console.ReadLine(); + } + } +} diff --git a/RPG/IUseSkill.cs b/RPG/IUseSkill.cs new file mode 100644 index 0000000..118db41 --- /dev/null +++ b/RPG/IUseSkill.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public interface IUseSkill + { + void UseSkill(Player user); + } +} diff --git a/RPG/Knight.cs b/RPG/Knight.cs new file mode 100644 index 0000000..661ad0c --- /dev/null +++ b/RPG/Knight.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Knight : Player + { + public Knight() + : this("Без имени") + { + } + + public Knight(string name) + : this(name, null) + { + } + + public Knight(string name, Player opponent) + : base(name, opponent) + { + Class = "Рыцарь"; + Usingskill = new KnightSkill(); + } + } +} diff --git a/RPG/KnightSkill.cs b/RPG/KnightSkill.cs new file mode 100644 index 0000000..d65d257 --- /dev/null +++ b/RPG/KnightSkill.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class KnightSkill : IUseSkill + { + public void UseSkill(Player user) + { + user.Opponent.Hp -= user.Strength * 1.3; + Logger.LogMessage($"({user.Class}) {user.Name} использует (Удар возмездия) и наносит урон {user.Strength * 1.3} противнику ({user.Opponent.Class}){user.Opponent.Name}."); + } + } +} diff --git a/RPG/Logger.cs b/RPG/Logger.cs new file mode 100644 index 0000000..e31ca40 --- /dev/null +++ b/RPG/Logger.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public static class Logger + { + public static void LogBattle(Player player) + { + Console.WriteLine($"{player.Class} {player.Name} vs {player.Opponent.Class} {player.Opponent.Name}."); + } + + public static void LogMessage(string message) + { + Console.WriteLine(message); + } + } +} diff --git a/RPG/Mage.cs b/RPG/Mage.cs new file mode 100644 index 0000000..c8873a5 --- /dev/null +++ b/RPG/Mage.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Mage : Player + { + public Mage() + : this("Без имени") + { + } + + public Mage(string name) + : this(name, null) + { + } + + public Mage(string name, Player opponent) + : base(name, opponent) + { + Class = "Маг"; + Usingskill = new MageSkill(); + } + } +} diff --git a/RPG/MageSkill.cs b/RPG/MageSkill.cs new file mode 100644 index 0000000..ec746ed --- /dev/null +++ b/RPG/MageSkill.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class MageSkill : IUseSkill + { + public void UseSkill(Player user) + { + user.Opponent.IsSkipped = true; + Logger.LogMessage($"({user.Class}) {user.Name} использует (Заворожение) на ({user.Opponent.Class}) {user.Opponent.Name}."); + } + } +} diff --git a/RPG/MainRPG.cs b/RPG/MainRPG.cs deleted file mode 100644 index b187e65..0000000 --- a/RPG/MainRPG.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace RPG -{ - public class MainRPG - { - public static void Main(string[] args) - { - int a = 1; - Console.WriteLine("Hello World!"); - Console.WriteLine(a); - } - } -} diff --git a/RPG/PickPlayers.cs b/RPG/PickPlayers.cs new file mode 100644 index 0000000..2acf78b --- /dev/null +++ b/RPG/PickPlayers.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class PickPlayers + { + public static int PickOp(List kon_x) + { + Random rand = new Random(); + int randPlayer1 = rand.Next(0, kon_x.Count); + int randPlayer2 = rand.Next(0, kon_x.Count); + while (randPlayer1 == randPlayer2) + { + randPlayer2 = rand.Next(0, kon_x.Count); + } + + kon_x[randPlayer1].Opponent = kon_x[randPlayer2]; + kon_x[randPlayer2].Opponent = kon_x[randPlayer1]; + return randPlayer1; + } + } +} diff --git a/RPG/Player.cs b/RPG/Player.cs new file mode 100644 index 0000000..56cbc64 --- /dev/null +++ b/RPG/Player.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.RegularExpressions; + +namespace RPG +{ + public abstract class Player + { + private static Random rand = new Random(); + + public Player() + : this("Без имени") + { + } + + public Player(string name) + : this(name, null) + { + } + + public Player(string name, Player opponent) + { + this.Name = name; + this.Opponent = opponent; + } + + public string Class { get; protected set; } + + public string Name { get; set; } + + public Player Opponent { get; set; } = null; + + public double Hp { get; set; } = rand.Next(1, 101); + + public int Strength { get; } = rand.Next(1, 101); + + public bool IsDebuffed { get; set; } = false; + + public bool IsSkipped { get; set; } = false; + + public bool SkillUsed { get; set; } = false; + + internal IUseSkill Usingskill { get; set; } + + public void Skip() + { + } + + public virtual void Attack() + { + if (!IsSkipped) + { + if (!IsDebuffed) + { + Opponent.Hp -= Strength; + Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); + } + else + { + Hp -= 2; + Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); + Opponent.Hp -= Strength; + Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); + } + } + else + { + Logger.LogMessage($"({Class}) {Name} пропускает ход."); + IsSkipped = false; + } + } + + public void UseSkill() + { + if (!IsSkipped) + { + if (!IsDebuffed) + { + Usingskill.UseSkill(this); + } + else + { + Hp -= 2; + Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); + Usingskill.UseSkill(this); + } + } + else + { + Logger.LogMessage($"({Class}) {Name} пропускает ход."); + IsSkipped = false; + } + } + } +} diff --git a/RPG/RPG.csproj b/RPG/RPG.csproj index 3b3c34e..09097b7 100644 --- a/RPG/RPG.csproj +++ b/RPG/RPG.csproj @@ -18,7 +18,7 @@ ../_stylecop/stylecop.ruleset true - RPG.MainRPG + RPG.Game From 69198749510965eb85f42450e8a7517beb7c7163 Mon Sep 17 00:00:00 2001 From: ALeksandr13254 Date: Sat, 22 Feb 2020 09:25:14 +0300 Subject: [PATCH 05/18] Add files via upload --- images/png.jpg | Bin 0 -> 10625 bytes site.html | 32 ++++++++++++++++++++++++++++++++ styles/styles.css | 23 +++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 images/png.jpg create mode 100644 site.html create mode 100644 styles/styles.css diff --git a/images/png.jpg b/images/png.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cec61be9b06c96a51bf800691df198b344977ea6 GIT binary patch literal 10625 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 literal 0 HcmV?d00001 diff --git a/site.html b/site.html new file mode 100644 index 0000000..9b13d94 --- /dev/null +++ b/site.html @@ -0,0 +1,32 @@ + + + + + Моя страничка + + + +
+
+
Bootstrap - Класс!!!
+ +
+ Фото ИГХТУ +

Герасимов Александр Сергеевич

+ ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты). +
+
+

+

+

+ + +

+
+ + diff --git a/styles/styles.css b/styles/styles.css new file mode 100644 index 0000000..71e6c8b --- /dev/null +++ b/styles/styles.css @@ -0,0 +1,23 @@ +header{ + width: 100%; + background-color: yellow; + height: 90px; +} +.center{ + color:blue; + background-color:#D8E3AB; +} +.title{ + font-size: 36px; + padding-top: 20px; + text-align: center; +} +.menu{ + list-style: none; + position: absolute; + top: 10px; + right: 100px; +} +.left{ +margin-left: 10px; +} From 360f9f1aa43a82a7af78c9a8bc1040bf38943d81 Mon Sep 17 00:00:00 2001 From: ALeksandr13254 Date: Sat, 22 Feb 2020 09:32:55 +0300 Subject: [PATCH 06/18] Add files via upload --- index.html | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..9b13d94 --- /dev/null +++ b/index.html @@ -0,0 +1,32 @@ + + + + + Моя страничка + + + +
+
+
Bootstrap - Класс!!!
+ +
+ Фото ИГХТУ +

Герасимов Александр Сергеевич

+ ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты). +
+
+

+

+

+ + +

+
+ + From 5e1d4f2c8b3fd7d040acb674c7071c4693b4d068 Mon Sep 17 00:00:00 2001 From: ALeksandr13254 Date: Sat, 22 Feb 2020 09:39:04 +0300 Subject: [PATCH 07/18] Add files via upload --- Site/index (2)/styles.css | 23 +++++++++++++++++++++++ Site/index.html | 32 ++++++++++++++++++++++++++++++++ Site/index/png.jpg | Bin 0 -> 10625 bytes 3 files changed, 55 insertions(+) create mode 100644 Site/index (2)/styles.css create mode 100644 Site/index.html create mode 100644 Site/index/png.jpg diff --git a/Site/index (2)/styles.css b/Site/index (2)/styles.css new file mode 100644 index 0000000..71e6c8b --- /dev/null +++ b/Site/index (2)/styles.css @@ -0,0 +1,23 @@ +header{ + width: 100%; + background-color: yellow; + height: 90px; +} +.center{ + color:blue; + background-color:#D8E3AB; +} +.title{ + font-size: 36px; + padding-top: 20px; + text-align: center; +} +.menu{ + list-style: none; + position: absolute; + top: 10px; + right: 100px; +} +.left{ +margin-left: 10px; +} diff --git a/Site/index.html b/Site/index.html new file mode 100644 index 0000000..9b13d94 --- /dev/null +++ b/Site/index.html @@ -0,0 +1,32 @@ + + + + + Моя страничка + + + +
+
+
Bootstrap - Класс!!!
+ +
+ Фото ИГХТУ +

Герасимов Александр Сергеевич

+ ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты). +
+
+

+

+

+ + +

+
+ + diff --git a/Site/index/png.jpg b/Site/index/png.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cec61be9b06c96a51bf800691df198b344977ea6 GIT binary patch literal 10625 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 literal 0 HcmV?d00001 From 36aa0546245c0c4fcb5486afc5a89cf669b514b1 Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Sat, 29 Feb 2020 14:14:55 +0300 Subject: [PATCH 08/18] edit site --- Site/{index => images}/png.jpg | Bin Site/index.html | 20 +++++----- Site/{index (2) => styles}/styles.css | 52 ++++++++++++++------------ 3 files changed, 39 insertions(+), 33 deletions(-) rename Site/{index => images}/png.jpg (100%) rename Site/{index (2) => styles}/styles.css (68%) diff --git a/Site/index/png.jpg b/Site/images/png.jpg similarity index 100% rename from Site/index/png.jpg rename to Site/images/png.jpg diff --git a/Site/index.html b/Site/index.html index 9b13d94..1bd7fba 100644 --- a/Site/index.html +++ b/Site/index.html @@ -7,7 +7,7 @@ -
+
Bootstrap - Класс!!!
- Фото ИГХТУ + Фото ИГХТУ

Герасимов Александр Сергеевич

- ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты). +
ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты).
-
-

-

-

- - -

+ +

+

+
+ + +
diff --git a/Site/index (2)/styles.css b/Site/styles/styles.css similarity index 68% rename from Site/index (2)/styles.css rename to Site/styles/styles.css index 71e6c8b..6f2c3ee 100644 --- a/Site/index (2)/styles.css +++ b/Site/styles/styles.css @@ -1,23 +1,29 @@ -header{ - width: 100%; - background-color: yellow; - height: 90px; -} -.center{ - color:blue; - background-color:#D8E3AB; -} -.title{ - font-size: 36px; - padding-top: 20px; - text-align: center; -} -.menu{ - list-style: none; - position: absolute; - top: 10px; - right: 100px; -} -.left{ -margin-left: 10px; -} +header{ + background-color: yellow; + height: 90px; +} +.center{ + color:blue; + background-color:#D8E3AB; +} +.title{ + font-size: 36px; + padding-top: 20px; + text-align: center; +} +.menu{ + position: absolute; + top: 10px; + right: 100px; +} +.left{ + margin-left: 15px; + margin-top: 20px; +} +.text{ + color:blue; + margin-left:15px; +} +.button{ + margin-left: 15px; +} \ No newline at end of file From 3cc62652c109a5c07ba8a914decc2abfd8e1936a Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Sat, 29 Feb 2020 14:34:53 +0300 Subject: [PATCH 09/18] edit site --- Site/images/png.jpg | Bin 10625 -> 0 bytes Site/index.html | 32 -------------------------------- Site/styles/styles.css | 29 ----------------------------- index.html | 20 ++++++++++---------- site.html | 32 -------------------------------- styles/styles.css | 12 +++++++++--- 6 files changed, 19 insertions(+), 106 deletions(-) delete mode 100644 Site/images/png.jpg delete mode 100644 Site/index.html delete mode 100644 Site/styles/styles.css delete mode 100644 site.html diff --git a/Site/images/png.jpg b/Site/images/png.jpg deleted file mode 100644 index cec61be9b06c96a51bf800691df198b344977ea6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10625 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 diff --git a/Site/index.html b/Site/index.html deleted file mode 100644 index 1bd7fba..0000000 --- a/Site/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - Моя страничка - - - -
-
-
Bootstrap - Класс!!!
- -
- Фото ИГХТУ -

Герасимов Александр Сергеевич

-
ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты). -
-
-

-

-
- - -
-
- - diff --git a/Site/styles/styles.css b/Site/styles/styles.css deleted file mode 100644 index 6f2c3ee..0000000 --- a/Site/styles/styles.css +++ /dev/null @@ -1,29 +0,0 @@ -header{ - background-color: yellow; - height: 90px; -} -.center{ - color:blue; - background-color:#D8E3AB; -} -.title{ - font-size: 36px; - padding-top: 20px; - text-align: center; -} -.menu{ - position: absolute; - top: 10px; - right: 100px; -} -.left{ - margin-left: 15px; - margin-top: 20px; -} -.text{ - color:blue; - margin-left:15px; -} -.button{ - margin-left: 15px; -} \ No newline at end of file diff --git a/index.html b/index.html index 9b13d94..1bd7fba 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ -
+
Bootstrap - Класс!!!
- Фото ИГХТУ + Фото ИГХТУ

Герасимов Александр Сергеевич

- ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты). +
ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты).
-
-

-

-

- - -

+ +

+

+
+ + +
diff --git a/site.html b/site.html deleted file mode 100644 index 9b13d94..0000000 --- a/site.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - Моя страничка - - - -
-
-
Bootstrap - Класс!!!
- -
- Фото ИГХТУ -

Герасимов Александр Сергеевич

- ИГХТУ, Группа 2/42 Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе. В результате он нашёл неоспоримый первоисточник Lorem Ipsum в разделах 1.10.32 и 1.10.33 книги "de Finibus Bonorum et Malorum" ("О пределах добра и зла"), написанной Цицероном в 45 году н.э. Этот трактат по теории этики был очень популярен в эпоху Возрождения. Первая строка Lorem Ipsum, "Lorem ipsum dolor sit amet..", происходит от одной из строк в разделе 1.10.32 Есть много вариантов Lorem Ipsum, но большинство из них имеет не всегда приемлемые модификации, например, юмористические вставки или слова, которые даже отдалённо не напоминают латынь. Если вам нужен Lorem Ipsum для серьёзного проекта, вы наверняка не хотите какой-нибудь шутки, скрытой в середине абзаца. Также все другие известные генераторы Lorem Ipsum используют один и тот же текст, который они просто повторяют, пока не достигнут нужный объём. Это делает предлагаемый здесь генератор единственным настоящим Lorem Ipsum генератором. Он использует словарь из более чем 200 латинских слов, а также набор моделей предложений. В результате сгенерированный Lorem Ipsum выглядит правдоподобно, не имеет повторяющихся абзацей или "невозможных" слов. Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона, а также реальное распределение букв и пробелов в абзацах, которое не получается при простой дубликации "Здесь ваш текст.. Здесь ваш текст.. Здесь ваш текст.." Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию, так что поиск по ключевым словам "lorem ipsum" сразу показывает, как много веб-страниц всё ещё дожидаются своего настоящего рождения. За прошедшие годы текст Lorem Ipsum получил много версий. Некоторые версии появились по ошибке, некоторые - намеренно (например, юмористические варианты). -
-
-

-

-

- - -

-
- - diff --git a/styles/styles.css b/styles/styles.css index 71e6c8b..e9df073 100644 --- a/styles/styles.css +++ b/styles/styles.css @@ -1,5 +1,4 @@ header{ - width: 100%; background-color: yellow; height: 90px; } @@ -13,11 +12,18 @@ header{ text-align: center; } .menu{ - list-style: none; position: absolute; top: 10px; right: 100px; } .left{ -margin-left: 10px; + margin-left: 15px; + margin-top: 20px; } +.text{ + color:blue; + margin-left:15px; +} +.button{ + margin-left: 15px; +} \ No newline at end of file From 451ecf256165f8e7fd1cd49d5f5077000e223aea Mon Sep 17 00:00:00 2001 From: User of DK306 Date: Sat, 7 Mar 2020 09:23:08 +0400 Subject: [PATCH 10/18] Edit site --- styles/styles.css | 1 + 1 file changed, 1 insertion(+) diff --git a/styles/styles.css b/styles/styles.css index e9df073..b0b1ff1 100644 --- a/styles/styles.css +++ b/styles/styles.css @@ -15,6 +15,7 @@ header{ position: absolute; top: 10px; right: 100px; + left: 10px; } .left{ margin-left: 15px; From c7b80e209a83012522725705a7e4c957d39fc292 Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Sat, 7 Mar 2020 09:38:39 +0400 Subject: [PATCH 11/18] Edit site --- Site/styles/styles.css | 1 + 1 file changed, 1 insertion(+) diff --git a/Site/styles/styles.css b/Site/styles/styles.css index 6f2c3ee..54f0a37 100644 --- a/Site/styles/styles.css +++ b/Site/styles/styles.css @@ -15,6 +15,7 @@ header{ position: absolute; top: 10px; right: 100px; + left: 10px; } .left{ margin-left: 15px; From c5e2911925aec98676e08dbb2917f85146e8284d Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Sat, 7 Mar 2020 23:52:49 +0300 Subject: [PATCH 12/18] Edit RPG --- RPG/Archer.cs | 2 +- RPG/ArcherSkill.cs | 11 ++++--- RPG/Attack.cs | 15 ++++++++++ RPG/Battle.cs | 22 ++++++-------- RPG/Game.cs | 72 ++++++++++++++++++++++++++-------------------- RPG/Knight.cs | 2 +- RPG/Mage.cs | 2 +- RPG/MageSkill.cs | 3 +- RPG/Player.cs | 51 +++++++++----------------------- 9 files changed, 89 insertions(+), 91 deletions(-) create mode 100644 RPG/Attack.cs diff --git a/RPG/Archer.cs b/RPG/Archer.cs index 82d48f3..5f4c0aa 100644 --- a/RPG/Archer.cs +++ b/RPG/Archer.cs @@ -19,8 +19,8 @@ public Archer(string name) public Archer(string name, Player opponent) : base(name, opponent) { + Skills.Add(new ArcherSkill()); Class = "Лучник"; - Usingskill = new ArcherSkill(); } } } diff --git a/RPG/ArcherSkill.cs b/RPG/ArcherSkill.cs index 5981b81..d96be28 100644 --- a/RPG/ArcherSkill.cs +++ b/RPG/ArcherSkill.cs @@ -6,17 +6,20 @@ namespace RPG { public class ArcherSkill : IUseSkill { + private int timesUsedSkill = 0; + public void UseSkill(Player user) { - if (!user.SkillUsed) + if (timesUsedSkill < 1) { - user.Opponent.IsDebuffed = true; + user.Opponent.Effects.Add("Огненные стрелы"); Logger.LogMessage($"({user.Class}) {user.Name} использует (Огненные стрелы) на ({user.Opponent.Class}) {user.Opponent.Name}."); - user.SkillUsed = true; + timesUsedSkill++; } else { - user.Attack(); + user.UsingSkill = new Attack(); + user.UseSkill(); } } } diff --git a/RPG/Attack.cs b/RPG/Attack.cs new file mode 100644 index 0000000..2a94d19 --- /dev/null +++ b/RPG/Attack.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Attack : IUseSkill + { + public void UseSkill(Player user) + { + user.Opponent.Hp -= user.Strength; + Logger.LogMessage($"({user.Class}) {user.Name} наносит урон {user.Strength} противнику ({user.Opponent.Class}) {user.Opponent.Name}."); + } + } +} diff --git a/RPG/Battle.cs b/RPG/Battle.cs index 31beff1..b57450d 100644 --- a/RPG/Battle.cs +++ b/RPG/Battle.cs @@ -11,23 +11,17 @@ public static Player BattlePlayers(Player p) Random rand = new Random(); while (p.Hp > 0 && p.Opponent.Hp > 0) { - int useSkill1 = rand.Next(0, 2); - int useSkill2 = rand.Next(0, 2); - if (useSkill1 == 0 && p.Hp > 0) - { - p.Attack(); - } - else if (useSkill1 == 1 && p.Hp > 0) + int randomSkill1 = rand.Next(0, p.Skills.Count); + int randomSkill2 = rand.Next(0, p.Opponent.Skills.Count); + if (p.Hp > 0) { + p.UsingSkill = p.Skills[randomSkill1]; p.UseSkill(); } - if (useSkill2 == 0 && p.Opponent.Hp > 0) - { - p.Opponent.Attack(); - } - else if (useSkill2 == 1 && p.Opponent.Hp > 0) + if (p.Opponent.Hp > 0) { + p.Opponent.UsingSkill = p.Opponent.Skills[randomSkill2]; p.Opponent.UseSkill(); } } @@ -36,14 +30,14 @@ public static Player BattlePlayers(Player p) { Logger.LogMessage($"({p.Class}) {p.Name} погиб!\n"); p.Opponent.Hp = rand.Next(1, 100); - p.Opponent.IsDebuffed = false; + p.Opponent.Effects.Remove("Огненные стрелы"); return p; } else if (p.Opponent.Hp < 1) { Logger.LogMessage($"({p.Opponent.Class}) {p.Opponent.Name} погиб!\n"); p.Hp = rand.Next(1, 100); - p.IsDebuffed = false; + p.Effects.Remove("Огненные стрелы"); return p.Opponent; } diff --git a/RPG/Game.cs b/RPG/Game.cs index 18b96cb..99c79b2 100644 --- a/RPG/Game.cs +++ b/RPG/Game.cs @@ -7,62 +7,72 @@ public class Game { public static void Main(string[] args) { - Console.Write($"Введите кол-во игроков (1-16):"); - int kol = Convert.ToInt32(Console.ReadLine()); - if (kol <= 0) + int kol = 0; + try { - throw new Exception("Ошибка!!!"); + Console.Write($"Введите кол-во игроков(1-16):"); + string kolString = Console.ReadLine(); + kol = Convert.ToInt32(kolString); + } + catch (System.FormatException) + { + Console.Write($"Введите кол-во игроков(1-16):"); + string kolString = Console.ReadLine(); + kol = Convert.ToInt32(kolString); + } + + while (kol % 2 != 0 || kol <= 0) + { + Console.Write($"Введите кол-во игроков(1-16):"); + kol = Convert.ToInt32(Console.ReadLine()); } - string[] players_names = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; - List kon_a = new List(); - List kon_b = new List(); + string[] playersNames = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; + List konA = new List(); + List konB = new List(); int kon = 1; int n = 0; Random rand = new Random(); - while (kon_a.Count < kol) + while (konA.Count < kol) { int r = rand.Next(0, 3); - if (r == 0) - { - kon_a.Add(new Knight(players_names[n])); - } - - if (r == 1) - { - kon_a.Add(new Archer(players_names[n])); - } - - if (r == 2) + switch (r) { - kon_a.Add(new Mage(players_names[n])); + case 0: + konA.Add(new Knight(playersNames[n])); + break; + case 1: + konA.Add(new Archer(playersNames[n])); + break; + case 2: + konA.Add(new Mage(playersNames[n])); + break; } n++; } Logger.LogMessage($"{kon++}-й Кон\n"); - while (kon_a.Count + kon_b.Count > 1) + while (konA.Count + konB.Count > 1) { - if (kon_a.Count > 1 && !(kon_a.Count < 2)) + if (konA.Count > 1 && !(konA.Count < 2)) { - Player tempPlayer = Battle.BattlePlayers(kon_a[PickPlayers.PickOp(kon_a)]); - kon_b.Add(tempPlayer.Opponent); - kon_a.Remove(tempPlayer.Opponent); - kon_a[kon_a.IndexOf(tempPlayer)].Opponent.Opponent = null; - kon_a.Remove(tempPlayer); + Player tempPlayer = Battle.BattlePlayers(konA[PickPlayers.PickOp(konA)]); + konB.Add(tempPlayer.Opponent); + konA.Remove(tempPlayer.Opponent); + konA[konA.IndexOf(tempPlayer)].Opponent.Opponent = null; + konA.Remove(tempPlayer); } else { Logger.LogMessage($"{kon}-й Кон\n"); - kon_a.AddRange(kon_b); - kon_b.Clear(); + konA.AddRange(konB); + konB.Clear(); kon++; } } - Logger.LogMessage($"({kon_b[0].Class}) {kon_b[0].Name} Победил!!!"); - Console.ReadLine(); + Logger.LogMessage($"({konB[0].Class}) {konB[0].Name} Победил!!!"); } } } diff --git a/RPG/Knight.cs b/RPG/Knight.cs index 661ad0c..21b0e30 100644 --- a/RPG/Knight.cs +++ b/RPG/Knight.cs @@ -19,8 +19,8 @@ public Knight(string name) public Knight(string name, Player opponent) : base(name, opponent) { + Skills.Add(new KnightSkill()); Class = "Рыцарь"; - Usingskill = new KnightSkill(); } } } diff --git a/RPG/Mage.cs b/RPG/Mage.cs index c8873a5..1f2082b 100644 --- a/RPG/Mage.cs +++ b/RPG/Mage.cs @@ -19,8 +19,8 @@ public Mage(string name) public Mage(string name, Player opponent) : base(name, opponent) { + Skills.Add(new MageSkill()); Class = "Маг"; - Usingskill = new MageSkill(); } } } diff --git a/RPG/MageSkill.cs b/RPG/MageSkill.cs index ec746ed..13541a0 100644 --- a/RPG/MageSkill.cs +++ b/RPG/MageSkill.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Text; +using System.Linq; namespace RPG { @@ -8,7 +9,7 @@ public class MageSkill : IUseSkill { public void UseSkill(Player user) { - user.Opponent.IsSkipped = true; + user.Opponent.Effects.Add("Заворожение"); Logger.LogMessage($"({user.Class}) {user.Name} использует (Заворожение) на ({user.Opponent.Class}) {user.Opponent.Name}."); } } diff --git a/RPG/Player.cs b/RPG/Player.cs index 56cbc64..07cff9e 100644 --- a/RPG/Player.cs +++ b/RPG/Player.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -10,6 +11,7 @@ public abstract class Player private static Random rand = new Random(); public Player() + : this("Без имени") { } @@ -21,8 +23,11 @@ public Player(string name) public Player(string name, Player opponent) { + Skills = new List(); + Effects = new List(); this.Name = name; this.Opponent = opponent; + Skills.Add(new Attack()); } public string Class { get; protected set; } @@ -35,61 +40,31 @@ public Player(string name, Player opponent) public int Strength { get; } = rand.Next(1, 101); - public bool IsDebuffed { get; set; } = false; - - public bool IsSkipped { get; set; } = false; - - public bool SkillUsed { get; set; } = false; + public List Skills { get; set; } - internal IUseSkill Usingskill { get; set; } - - public void Skip() - { - } + public List Effects { get; set; } - public virtual void Attack() - { - if (!IsSkipped) - { - if (!IsDebuffed) - { - Opponent.Hp -= Strength; - Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); - } - else - { - Hp -= 2; - Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); - Opponent.Hp -= Strength; - Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); - } - } - else - { - Logger.LogMessage($"({Class}) {Name} пропускает ход."); - IsSkipped = false; - } - } + public IUseSkill UsingSkill { get; set; } public void UseSkill() { - if (!IsSkipped) + if (!Effects.Any(item => item == "Заворожение")) { - if (!IsDebuffed) + if (!Effects.Any(item => item == "Огненные стрелы")) { - Usingskill.UseSkill(this); + UsingSkill.UseSkill(this); } else { Hp -= 2; Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); - Usingskill.UseSkill(this); + UsingSkill.UseSkill(this); } } else { Logger.LogMessage($"({Class}) {Name} пропускает ход."); - IsSkipped = false; + Effects.Remove("Заворожение"); } } } From 785a284183c42ef3e76bffa643c83b97fc788368 Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Wed, 15 Apr 2020 15:14:26 +0300 Subject: [PATCH 13/18] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=A0=D0=9F=D0=93=20=D0=B8=20=D0=A1=D0=B0=D0=B9?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dotnetcore.yml | 4 ++ RPG/Archer.cs | 9 +--- RPG/ArcherSkill.cs | 11 +++-- RPG/Attack.cs | 15 +++++++ RPG/Battle.cs | 52 ++++++++++++++++------- RPG/FireArrow.cs | 17 ++++++++ RPG/Game.cs | 54 ++++++++++++++---------- RPG/IEffects.cs | 11 +++++ RPG/Knight.cs | 9 +--- RPG/KnightSkill.cs | 2 +- RPG/Mage.cs | 9 +--- RPG/MageSkill.cs | 2 +- RPG/Player.cs | 71 ++++++++------------------------ RPG/Skip.cs | 15 +++++++ 14 files changed, 165 insertions(+), 116 deletions(-) create mode 100644 RPG/Attack.cs create mode 100644 RPG/FireArrow.cs create mode 100644 RPG/IEffects.cs create mode 100644 RPG/Skip.cs diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 22cc4eb..32da533 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -21,3 +21,7 @@ jobs: run: | cd CourseApp.Tests dotnet test + - name: Run tests + run: | + cd RPG + dotnet build --configuration Release diff --git a/RPG/Archer.cs b/RPG/Archer.cs index 82d48f3..1c38a76 100644 --- a/RPG/Archer.cs +++ b/RPG/Archer.cs @@ -12,15 +12,10 @@ public Archer() } public Archer(string name) - : this(name, null) - { - } - - public Archer(string name, Player opponent) - : base(name, opponent) + : base(name) { Class = "Лучник"; - Usingskill = new ArcherSkill(); + Skills.Add(new ArcherSkill()); } } } diff --git a/RPG/ArcherSkill.cs b/RPG/ArcherSkill.cs index 5981b81..69c82c1 100644 --- a/RPG/ArcherSkill.cs +++ b/RPG/ArcherSkill.cs @@ -6,17 +6,20 @@ namespace RPG { public class ArcherSkill : IUseSkill { + private int timeSkillUsed = 0; + public void UseSkill(Player user) { - if (!user.SkillUsed) + if (timeSkillUsed < 1) { - user.Opponent.IsDebuffed = true; + user.Opponent.Effects.Add(new FireArrow()); Logger.LogMessage($"({user.Class}) {user.Name} использует (Огненные стрелы) на ({user.Opponent.Class}) {user.Opponent.Name}."); - user.SkillUsed = true; + timeSkillUsed++; } else { - user.Attack(); + user.Usingskill = new Attack(); + user.UseSkill(); } } } diff --git a/RPG/Attack.cs b/RPG/Attack.cs new file mode 100644 index 0000000..491872d --- /dev/null +++ b/RPG/Attack.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Attack : IUseSkill + { + public void UseSkill(Player user) + { + user.Opponent.Hp -= user.Strength; + Logger.LogMessage($"({user.Class}) {user.Name} наносит урон {user.Strength} противнику ({user.Opponent.Class}) {user.Opponent.Name}."); + } + } +} \ No newline at end of file diff --git a/RPG/Battle.cs b/RPG/Battle.cs index 31beff1..8e58146 100644 --- a/RPG/Battle.cs +++ b/RPG/Battle.cs @@ -11,24 +11,48 @@ public static Player BattlePlayers(Player p) Random rand = new Random(); while (p.Hp > 0 && p.Opponent.Hp > 0) { - int useSkill1 = rand.Next(0, 2); - int useSkill2 = rand.Next(0, 2); - if (useSkill1 == 0 && p.Hp > 0) - { - p.Attack(); - } - else if (useSkill1 == 1 && p.Hp > 0) + int randomSkill1 = rand.Next(0, p.Skills.Count); + int randomSkill2 = rand.Next(0, p.Opponent.Skills.Count); + p.ProcEffects(); + if (p.IsStunned == false) { + p.Usingskill = p.Skills[randomSkill1]; p.UseSkill(); } - - if (useSkill2 == 0 && p.Opponent.Hp > 0) + else { - p.Opponent.Attack(); + p.IsStunned = false; + for (int i = 0; i < p.Effects.Count; i++) + { + if (p.Effects[i] is Skip) + { + p.Effects.RemoveAt(i); + i--; + } + } } - else if (useSkill2 == 1 && p.Opponent.Hp > 0) + + p.Opponent.ProcEffects(); + + if (p.Opponent.Hp > 0) { - p.Opponent.UseSkill(); + if (p.Opponent.IsStunned == false) + { + p.Opponent.Usingskill = p.Opponent.Skills[randomSkill2]; + p.Opponent.UseSkill(); + } + else + { + p.Opponent.IsStunned = false; + for (int i = 0; i < p.Effects.Count; i++) + { + if (p.Effects[i] is Skip) + { + p.Effects.RemoveAt(i); + i--; + } + } + } } } @@ -36,14 +60,14 @@ public static Player BattlePlayers(Player p) { Logger.LogMessage($"({p.Class}) {p.Name} погиб!\n"); p.Opponent.Hp = rand.Next(1, 100); - p.Opponent.IsDebuffed = false; + p.Opponent.Effects.Clear(); return p; } else if (p.Opponent.Hp < 1) { Logger.LogMessage($"({p.Opponent.Class}) {p.Opponent.Name} погиб!\n"); p.Hp = rand.Next(1, 100); - p.IsDebuffed = false; + p.Effects.Clear(); return p.Opponent; } diff --git a/RPG/FireArrow.cs b/RPG/FireArrow.cs new file mode 100644 index 0000000..c2ae0a4 --- /dev/null +++ b/RPG/FireArrow.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class FireArrow : IEffects + { + public const int DamageFireArrow = 2; + + public void Proc(Player owner) + { + owner.Hp -= DamageFireArrow; + Logger.LogMessage($"({owner.Class}) {owner.Name} получает урон {DamageFireArrow} от эффекта Fire Arrow."); + } + } +} diff --git a/RPG/Game.cs b/RPG/Game.cs index 18b96cb..3e5c73e 100644 --- a/RPG/Game.cs +++ b/RPG/Game.cs @@ -7,44 +7,55 @@ public class Game { public static void Main(string[] args) { - Console.Write($"Введите кол-во игроков (1-16):"); - int kol = Convert.ToInt32(Console.ReadLine()); - if (kol <= 0) + string[] players_names = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; + int kol = 0; + try + { + Console.Write($"Введите кол-во игроков(1-16):"); + string nString = Console.ReadLine(); + kol = Convert.ToInt32(nString); + } + catch (System.FormatException) { - throw new Exception("Ошибка!!!"); + Console.Write($"Введите кол-во игроков(1-16):"); + string nString = Console.ReadLine(); + kol = Convert.ToInt32(nString); } - string[] players_names = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; + while (kol % 2 != 0 || kol <= 0) + { + Console.Write($"Введите кол-во игроков(1-16):"); + kol = Convert.ToInt32(Console.ReadLine()); + } + + Random rand = new Random(); List kon_a = new List(); List kon_b = new List(); + int k = 0; int kon = 1; - int n = 0; - Random rand = new Random(); while (kon_a.Count < kol) { int r = rand.Next(0, 3); - if (r == 0) - { - kon_a.Add(new Knight(players_names[n])); - } - - if (r == 1) - { - kon_a.Add(new Archer(players_names[n])); - } - - if (r == 2) + switch (r) { - kon_a.Add(new Mage(players_names[n])); + case 0: + kon_a.Add(new Knight(players_names[k])); + break; + case 1: + kon_a.Add(new Archer(players_names[k])); + break; + case 2: + kon_a.Add(new Mage(players_names[k])); + break; } - n++; + k++; } Logger.LogMessage($"{kon++}-й Кон\n"); while (kon_a.Count + kon_b.Count > 1) { - if (kon_a.Count > 1 && !(kon_a.Count < 2)) + if (kon_a.Count >= 2) { Player tempPlayer = Battle.BattlePlayers(kon_a[PickPlayers.PickOp(kon_a)]); kon_b.Add(tempPlayer.Opponent); @@ -62,7 +73,6 @@ public static void Main(string[] args) } Logger.LogMessage($"({kon_b[0].Class}) {kon_b[0].Name} Победил!!!"); - Console.ReadLine(); } } } diff --git a/RPG/IEffects.cs b/RPG/IEffects.cs new file mode 100644 index 0000000..febf14f --- /dev/null +++ b/RPG/IEffects.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public interface IEffects + { + void Proc(Player owner); + } +} diff --git a/RPG/Knight.cs b/RPG/Knight.cs index 661ad0c..1f99d71 100644 --- a/RPG/Knight.cs +++ b/RPG/Knight.cs @@ -12,15 +12,10 @@ public Knight() } public Knight(string name) - : this(name, null) - { - } - - public Knight(string name, Player opponent) - : base(name, opponent) + : base(name) { Class = "Рыцарь"; - Usingskill = new KnightSkill(); + Skills.Add(new KnightSkill()); } } } diff --git a/RPG/KnightSkill.cs b/RPG/KnightSkill.cs index d65d257..892b64e 100644 --- a/RPG/KnightSkill.cs +++ b/RPG/KnightSkill.cs @@ -9,7 +9,7 @@ public class KnightSkill : IUseSkill public void UseSkill(Player user) { user.Opponent.Hp -= user.Strength * 1.3; - Logger.LogMessage($"({user.Class}) {user.Name} использует (Удар возмездия) и наносит урон {user.Strength * 1.3} противнику ({user.Opponent.Class}){user.Opponent.Name}."); + Logger.LogMessage($"({user.Class}) {user.Name} использует (Удар возмездия) и наносит урон {user.Strength * 1.3} противнику ({user.Opponent.Class}) {user.Opponent.Name}."); } } } diff --git a/RPG/Mage.cs b/RPG/Mage.cs index c8873a5..3368ee0 100644 --- a/RPG/Mage.cs +++ b/RPG/Mage.cs @@ -12,15 +12,10 @@ public Mage() } public Mage(string name) - : this(name, null) - { - } - - public Mage(string name, Player opponent) - : base(name, opponent) + : base(name) { Class = "Маг"; - Usingskill = new MageSkill(); + Skills.Add(new MageSkill()); } } } diff --git a/RPG/MageSkill.cs b/RPG/MageSkill.cs index ec746ed..7c12b29 100644 --- a/RPG/MageSkill.cs +++ b/RPG/MageSkill.cs @@ -8,7 +8,7 @@ public class MageSkill : IUseSkill { public void UseSkill(Player user) { - user.Opponent.IsSkipped = true; + user.Opponent.Effects.Add(new Skip()); Logger.LogMessage($"({user.Class}) {user.Name} использует (Заворожение) на ({user.Opponent.Class}) {user.Opponent.Name}."); } } diff --git a/RPG/Player.cs b/RPG/Player.cs index 56cbc64..4fd8cdb 100644 --- a/RPG/Player.cs +++ b/RPG/Player.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -15,14 +16,13 @@ public Player() } public Player(string name) - : this(name, null) { - } - - public Player(string name, Player opponent) - { - this.Name = name; - this.Opponent = opponent; + Name = name; + Hp = rand.Next(1, 100); + Strength = rand.Next(1, 99); + Skills = new List(); + Effects = new List(); + Skills.Add(new Attack()); } public string Class { get; protected set; } @@ -31,65 +31,30 @@ public Player(string name, Player opponent) public Player Opponent { get; set; } = null; - public double Hp { get; set; } = rand.Next(1, 101); + public double Hp { get; set; } - public int Strength { get; } = rand.Next(1, 101); + public int Strength { get; } - public bool IsDebuffed { get; set; } = false; + public bool IsStunned { get; set; } - public bool IsSkipped { get; set; } = false; + public IUseSkill Usingskill { get; set; } - public bool SkillUsed { get; set; } = false; + public List Skills { get; set; } - internal IUseSkill Usingskill { get; set; } - - public void Skip() - { - } + public List Effects { get; set; } - public virtual void Attack() + public void UseSkill() { - if (!IsSkipped) - { - if (!IsDebuffed) - { - Opponent.Hp -= Strength; - Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); - } - else - { - Hp -= 2; - Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); - Opponent.Hp -= Strength; - Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); - } - } - else { - Logger.LogMessage($"({Class}) {Name} пропускает ход."); - IsSkipped = false; + Usingskill.UseSkill(this); } } - public void UseSkill() + public void ProcEffects() { - if (!IsSkipped) - { - if (!IsDebuffed) - { - Usingskill.UseSkill(this); - } - else - { - Hp -= 2; - Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); - Usingskill.UseSkill(this); - } - } - else + for (int i = 0; i < Effects.Count; i++) { - Logger.LogMessage($"({Class}) {Name} пропускает ход."); - IsSkipped = false; + Effects[i].Proc(this); } } } diff --git a/RPG/Skip.cs b/RPG/Skip.cs new file mode 100644 index 0000000..e6bc511 --- /dev/null +++ b/RPG/Skip.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Skip : IEffects + { + public void Proc(Player owner) + { + owner.IsStunned = true; + Logger.LogMessage($"({owner.Class}) {owner.Name} пропускает ход."); + } + } +} From a97c742923523ffe8cfe3a269678ffff6de59a18 Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Wed, 15 Apr 2020 15:22:43 +0300 Subject: [PATCH 14/18] =?UTF-8?q?Revert=20"=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=A0=D0=9F=D0=93=20=D0=B8=20=D0=A1=D0=B0?= =?UTF-8?q?=D0=B9=D1=82"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 785a284183c42ef3e76bffa643c83b97fc788368. --- .github/workflows/dotnetcore.yml | 4 -- RPG/Archer.cs | 9 +++- RPG/ArcherSkill.cs | 11 ++--- RPG/Attack.cs | 15 ------- RPG/Battle.cs | 52 +++++++---------------- RPG/FireArrow.cs | 17 -------- RPG/Game.cs | 54 ++++++++++-------------- RPG/IEffects.cs | 11 ----- RPG/Knight.cs | 9 +++- RPG/KnightSkill.cs | 2 +- RPG/Mage.cs | 9 +++- RPG/MageSkill.cs | 2 +- RPG/Player.cs | 71 ++++++++++++++++++++++++-------- RPG/Skip.cs | 15 ------- 14 files changed, 116 insertions(+), 165 deletions(-) delete mode 100644 RPG/Attack.cs delete mode 100644 RPG/FireArrow.cs delete mode 100644 RPG/IEffects.cs delete mode 100644 RPG/Skip.cs diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 32da533..22cc4eb 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -21,7 +21,3 @@ jobs: run: | cd CourseApp.Tests dotnet test - - name: Run tests - run: | - cd RPG - dotnet build --configuration Release diff --git a/RPG/Archer.cs b/RPG/Archer.cs index 1c38a76..82d48f3 100644 --- a/RPG/Archer.cs +++ b/RPG/Archer.cs @@ -12,10 +12,15 @@ public Archer() } public Archer(string name) - : base(name) + : this(name, null) + { + } + + public Archer(string name, Player opponent) + : base(name, opponent) { Class = "Лучник"; - Skills.Add(new ArcherSkill()); + Usingskill = new ArcherSkill(); } } } diff --git a/RPG/ArcherSkill.cs b/RPG/ArcherSkill.cs index 69c82c1..5981b81 100644 --- a/RPG/ArcherSkill.cs +++ b/RPG/ArcherSkill.cs @@ -6,20 +6,17 @@ namespace RPG { public class ArcherSkill : IUseSkill { - private int timeSkillUsed = 0; - public void UseSkill(Player user) { - if (timeSkillUsed < 1) + if (!user.SkillUsed) { - user.Opponent.Effects.Add(new FireArrow()); + user.Opponent.IsDebuffed = true; Logger.LogMessage($"({user.Class}) {user.Name} использует (Огненные стрелы) на ({user.Opponent.Class}) {user.Opponent.Name}."); - timeSkillUsed++; + user.SkillUsed = true; } else { - user.Usingskill = new Attack(); - user.UseSkill(); + user.Attack(); } } } diff --git a/RPG/Attack.cs b/RPG/Attack.cs deleted file mode 100644 index 491872d..0000000 --- a/RPG/Attack.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace RPG -{ - public class Attack : IUseSkill - { - public void UseSkill(Player user) - { - user.Opponent.Hp -= user.Strength; - Logger.LogMessage($"({user.Class}) {user.Name} наносит урон {user.Strength} противнику ({user.Opponent.Class}) {user.Opponent.Name}."); - } - } -} \ No newline at end of file diff --git a/RPG/Battle.cs b/RPG/Battle.cs index 8e58146..31beff1 100644 --- a/RPG/Battle.cs +++ b/RPG/Battle.cs @@ -11,48 +11,24 @@ public static Player BattlePlayers(Player p) Random rand = new Random(); while (p.Hp > 0 && p.Opponent.Hp > 0) { - int randomSkill1 = rand.Next(0, p.Skills.Count); - int randomSkill2 = rand.Next(0, p.Opponent.Skills.Count); - p.ProcEffects(); - if (p.IsStunned == false) + int useSkill1 = rand.Next(0, 2); + int useSkill2 = rand.Next(0, 2); + if (useSkill1 == 0 && p.Hp > 0) { - p.Usingskill = p.Skills[randomSkill1]; - p.UseSkill(); + p.Attack(); } - else + else if (useSkill1 == 1 && p.Hp > 0) { - p.IsStunned = false; - for (int i = 0; i < p.Effects.Count; i++) - { - if (p.Effects[i] is Skip) - { - p.Effects.RemoveAt(i); - i--; - } - } + p.UseSkill(); } - p.Opponent.ProcEffects(); - - if (p.Opponent.Hp > 0) + if (useSkill2 == 0 && p.Opponent.Hp > 0) + { + p.Opponent.Attack(); + } + else if (useSkill2 == 1 && p.Opponent.Hp > 0) { - if (p.Opponent.IsStunned == false) - { - p.Opponent.Usingskill = p.Opponent.Skills[randomSkill2]; - p.Opponent.UseSkill(); - } - else - { - p.Opponent.IsStunned = false; - for (int i = 0; i < p.Effects.Count; i++) - { - if (p.Effects[i] is Skip) - { - p.Effects.RemoveAt(i); - i--; - } - } - } + p.Opponent.UseSkill(); } } @@ -60,14 +36,14 @@ public static Player BattlePlayers(Player p) { Logger.LogMessage($"({p.Class}) {p.Name} погиб!\n"); p.Opponent.Hp = rand.Next(1, 100); - p.Opponent.Effects.Clear(); + p.Opponent.IsDebuffed = false; return p; } else if (p.Opponent.Hp < 1) { Logger.LogMessage($"({p.Opponent.Class}) {p.Opponent.Name} погиб!\n"); p.Hp = rand.Next(1, 100); - p.Effects.Clear(); + p.IsDebuffed = false; return p.Opponent; } diff --git a/RPG/FireArrow.cs b/RPG/FireArrow.cs deleted file mode 100644 index c2ae0a4..0000000 --- a/RPG/FireArrow.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace RPG -{ - public class FireArrow : IEffects - { - public const int DamageFireArrow = 2; - - public void Proc(Player owner) - { - owner.Hp -= DamageFireArrow; - Logger.LogMessage($"({owner.Class}) {owner.Name} получает урон {DamageFireArrow} от эффекта Fire Arrow."); - } - } -} diff --git a/RPG/Game.cs b/RPG/Game.cs index 3e5c73e..18b96cb 100644 --- a/RPG/Game.cs +++ b/RPG/Game.cs @@ -7,55 +7,44 @@ public class Game { public static void Main(string[] args) { - string[] players_names = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; - int kol = 0; - try - { - Console.Write($"Введите кол-во игроков(1-16):"); - string nString = Console.ReadLine(); - kol = Convert.ToInt32(nString); - } - catch (System.FormatException) - { - Console.Write($"Введите кол-во игроков(1-16):"); - string nString = Console.ReadLine(); - kol = Convert.ToInt32(nString); - } - - while (kol % 2 != 0 || kol <= 0) + Console.Write($"Введите кол-во игроков (1-16):"); + int kol = Convert.ToInt32(Console.ReadLine()); + if (kol <= 0) { - Console.Write($"Введите кол-во игроков(1-16):"); - kol = Convert.ToInt32(Console.ReadLine()); + throw new Exception("Ошибка!!!"); } - Random rand = new Random(); + string[] players_names = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; List kon_a = new List(); List kon_b = new List(); - int k = 0; int kon = 1; + int n = 0; + Random rand = new Random(); while (kon_a.Count < kol) { int r = rand.Next(0, 3); - switch (r) + if (r == 0) + { + kon_a.Add(new Knight(players_names[n])); + } + + if (r == 1) + { + kon_a.Add(new Archer(players_names[n])); + } + + if (r == 2) { - case 0: - kon_a.Add(new Knight(players_names[k])); - break; - case 1: - kon_a.Add(new Archer(players_names[k])); - break; - case 2: - kon_a.Add(new Mage(players_names[k])); - break; + kon_a.Add(new Mage(players_names[n])); } - k++; + n++; } Logger.LogMessage($"{kon++}-й Кон\n"); while (kon_a.Count + kon_b.Count > 1) { - if (kon_a.Count >= 2) + if (kon_a.Count > 1 && !(kon_a.Count < 2)) { Player tempPlayer = Battle.BattlePlayers(kon_a[PickPlayers.PickOp(kon_a)]); kon_b.Add(tempPlayer.Opponent); @@ -73,6 +62,7 @@ public static void Main(string[] args) } Logger.LogMessage($"({kon_b[0].Class}) {kon_b[0].Name} Победил!!!"); + Console.ReadLine(); } } } diff --git a/RPG/IEffects.cs b/RPG/IEffects.cs deleted file mode 100644 index febf14f..0000000 --- a/RPG/IEffects.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace RPG -{ - public interface IEffects - { - void Proc(Player owner); - } -} diff --git a/RPG/Knight.cs b/RPG/Knight.cs index 1f99d71..661ad0c 100644 --- a/RPG/Knight.cs +++ b/RPG/Knight.cs @@ -12,10 +12,15 @@ public Knight() } public Knight(string name) - : base(name) + : this(name, null) + { + } + + public Knight(string name, Player opponent) + : base(name, opponent) { Class = "Рыцарь"; - Skills.Add(new KnightSkill()); + Usingskill = new KnightSkill(); } } } diff --git a/RPG/KnightSkill.cs b/RPG/KnightSkill.cs index 892b64e..d65d257 100644 --- a/RPG/KnightSkill.cs +++ b/RPG/KnightSkill.cs @@ -9,7 +9,7 @@ public class KnightSkill : IUseSkill public void UseSkill(Player user) { user.Opponent.Hp -= user.Strength * 1.3; - Logger.LogMessage($"({user.Class}) {user.Name} использует (Удар возмездия) и наносит урон {user.Strength * 1.3} противнику ({user.Opponent.Class}) {user.Opponent.Name}."); + Logger.LogMessage($"({user.Class}) {user.Name} использует (Удар возмездия) и наносит урон {user.Strength * 1.3} противнику ({user.Opponent.Class}){user.Opponent.Name}."); } } } diff --git a/RPG/Mage.cs b/RPG/Mage.cs index 3368ee0..c8873a5 100644 --- a/RPG/Mage.cs +++ b/RPG/Mage.cs @@ -12,10 +12,15 @@ public Mage() } public Mage(string name) - : base(name) + : this(name, null) + { + } + + public Mage(string name, Player opponent) + : base(name, opponent) { Class = "Маг"; - Skills.Add(new MageSkill()); + Usingskill = new MageSkill(); } } } diff --git a/RPG/MageSkill.cs b/RPG/MageSkill.cs index 7c12b29..ec746ed 100644 --- a/RPG/MageSkill.cs +++ b/RPG/MageSkill.cs @@ -8,7 +8,7 @@ public class MageSkill : IUseSkill { public void UseSkill(Player user) { - user.Opponent.Effects.Add(new Skip()); + user.Opponent.IsSkipped = true; Logger.LogMessage($"({user.Class}) {user.Name} использует (Заворожение) на ({user.Opponent.Class}) {user.Opponent.Name}."); } } diff --git a/RPG/Player.cs b/RPG/Player.cs index 4fd8cdb..56cbc64 100644 --- a/RPG/Player.cs +++ b/RPG/Player.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -16,13 +15,14 @@ public Player() } public Player(string name) + : this(name, null) { - Name = name; - Hp = rand.Next(1, 100); - Strength = rand.Next(1, 99); - Skills = new List(); - Effects = new List(); - Skills.Add(new Attack()); + } + + public Player(string name, Player opponent) + { + this.Name = name; + this.Opponent = opponent; } public string Class { get; protected set; } @@ -31,30 +31,65 @@ public Player(string name) public Player Opponent { get; set; } = null; - public double Hp { get; set; } + public double Hp { get; set; } = rand.Next(1, 101); - public int Strength { get; } + public int Strength { get; } = rand.Next(1, 101); - public bool IsStunned { get; set; } + public bool IsDebuffed { get; set; } = false; - public IUseSkill Usingskill { get; set; } + public bool IsSkipped { get; set; } = false; - public List Skills { get; set; } + public bool SkillUsed { get; set; } = false; - public List Effects { get; set; } + internal IUseSkill Usingskill { get; set; } - public void UseSkill() + public void Skip() + { + } + + public virtual void Attack() { + if (!IsSkipped) + { + if (!IsDebuffed) + { + Opponent.Hp -= Strength; + Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); + } + else + { + Hp -= 2; + Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); + Opponent.Hp -= Strength; + Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); + } + } + else { - Usingskill.UseSkill(this); + Logger.LogMessage($"({Class}) {Name} пропускает ход."); + IsSkipped = false; } } - public void ProcEffects() + public void UseSkill() { - for (int i = 0; i < Effects.Count; i++) + if (!IsSkipped) + { + if (!IsDebuffed) + { + Usingskill.UseSkill(this); + } + else + { + Hp -= 2; + Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); + Usingskill.UseSkill(this); + } + } + else { - Effects[i].Proc(this); + Logger.LogMessage($"({Class}) {Name} пропускает ход."); + IsSkipped = false; } } } diff --git a/RPG/Skip.cs b/RPG/Skip.cs deleted file mode 100644 index e6bc511..0000000 --- a/RPG/Skip.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace RPG -{ - public class Skip : IEffects - { - public void Proc(Player owner) - { - owner.IsStunned = true; - Logger.LogMessage($"({owner.Class}) {owner.Name} пропускает ход."); - } - } -} From fc6463019a8c22d2239e5c88d06ba3ccd2da7187 Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Wed, 15 Apr 2020 15:23:18 +0300 Subject: [PATCH 15/18] =?UTF-8?q?Revert=20"Revert=20"=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=A0=D0=9F=D0=93=20=D0=B8=20?= =?UTF-8?q?=D0=A1=D0=B0=D0=B9=D1=82""?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit a97c742923523ffe8cfe3a269678ffff6de59a18. --- .github/workflows/dotnetcore.yml | 4 ++ RPG/Archer.cs | 9 +--- RPG/ArcherSkill.cs | 11 +++-- RPG/Attack.cs | 15 +++++++ RPG/Battle.cs | 52 ++++++++++++++++------- RPG/FireArrow.cs | 17 ++++++++ RPG/Game.cs | 54 ++++++++++++++---------- RPG/IEffects.cs | 11 +++++ RPG/Knight.cs | 9 +--- RPG/KnightSkill.cs | 2 +- RPG/Mage.cs | 9 +--- RPG/MageSkill.cs | 2 +- RPG/Player.cs | 71 ++++++++------------------------ RPG/Skip.cs | 15 +++++++ 14 files changed, 165 insertions(+), 116 deletions(-) create mode 100644 RPG/Attack.cs create mode 100644 RPG/FireArrow.cs create mode 100644 RPG/IEffects.cs create mode 100644 RPG/Skip.cs diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 22cc4eb..32da533 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -21,3 +21,7 @@ jobs: run: | cd CourseApp.Tests dotnet test + - name: Run tests + run: | + cd RPG + dotnet build --configuration Release diff --git a/RPG/Archer.cs b/RPG/Archer.cs index 82d48f3..1c38a76 100644 --- a/RPG/Archer.cs +++ b/RPG/Archer.cs @@ -12,15 +12,10 @@ public Archer() } public Archer(string name) - : this(name, null) - { - } - - public Archer(string name, Player opponent) - : base(name, opponent) + : base(name) { Class = "Лучник"; - Usingskill = new ArcherSkill(); + Skills.Add(new ArcherSkill()); } } } diff --git a/RPG/ArcherSkill.cs b/RPG/ArcherSkill.cs index 5981b81..69c82c1 100644 --- a/RPG/ArcherSkill.cs +++ b/RPG/ArcherSkill.cs @@ -6,17 +6,20 @@ namespace RPG { public class ArcherSkill : IUseSkill { + private int timeSkillUsed = 0; + public void UseSkill(Player user) { - if (!user.SkillUsed) + if (timeSkillUsed < 1) { - user.Opponent.IsDebuffed = true; + user.Opponent.Effects.Add(new FireArrow()); Logger.LogMessage($"({user.Class}) {user.Name} использует (Огненные стрелы) на ({user.Opponent.Class}) {user.Opponent.Name}."); - user.SkillUsed = true; + timeSkillUsed++; } else { - user.Attack(); + user.Usingskill = new Attack(); + user.UseSkill(); } } } diff --git a/RPG/Attack.cs b/RPG/Attack.cs new file mode 100644 index 0000000..491872d --- /dev/null +++ b/RPG/Attack.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Attack : IUseSkill + { + public void UseSkill(Player user) + { + user.Opponent.Hp -= user.Strength; + Logger.LogMessage($"({user.Class}) {user.Name} наносит урон {user.Strength} противнику ({user.Opponent.Class}) {user.Opponent.Name}."); + } + } +} \ No newline at end of file diff --git a/RPG/Battle.cs b/RPG/Battle.cs index 31beff1..8e58146 100644 --- a/RPG/Battle.cs +++ b/RPG/Battle.cs @@ -11,24 +11,48 @@ public static Player BattlePlayers(Player p) Random rand = new Random(); while (p.Hp > 0 && p.Opponent.Hp > 0) { - int useSkill1 = rand.Next(0, 2); - int useSkill2 = rand.Next(0, 2); - if (useSkill1 == 0 && p.Hp > 0) - { - p.Attack(); - } - else if (useSkill1 == 1 && p.Hp > 0) + int randomSkill1 = rand.Next(0, p.Skills.Count); + int randomSkill2 = rand.Next(0, p.Opponent.Skills.Count); + p.ProcEffects(); + if (p.IsStunned == false) { + p.Usingskill = p.Skills[randomSkill1]; p.UseSkill(); } - - if (useSkill2 == 0 && p.Opponent.Hp > 0) + else { - p.Opponent.Attack(); + p.IsStunned = false; + for (int i = 0; i < p.Effects.Count; i++) + { + if (p.Effects[i] is Skip) + { + p.Effects.RemoveAt(i); + i--; + } + } } - else if (useSkill2 == 1 && p.Opponent.Hp > 0) + + p.Opponent.ProcEffects(); + + if (p.Opponent.Hp > 0) { - p.Opponent.UseSkill(); + if (p.Opponent.IsStunned == false) + { + p.Opponent.Usingskill = p.Opponent.Skills[randomSkill2]; + p.Opponent.UseSkill(); + } + else + { + p.Opponent.IsStunned = false; + for (int i = 0; i < p.Effects.Count; i++) + { + if (p.Effects[i] is Skip) + { + p.Effects.RemoveAt(i); + i--; + } + } + } } } @@ -36,14 +60,14 @@ public static Player BattlePlayers(Player p) { Logger.LogMessage($"({p.Class}) {p.Name} погиб!\n"); p.Opponent.Hp = rand.Next(1, 100); - p.Opponent.IsDebuffed = false; + p.Opponent.Effects.Clear(); return p; } else if (p.Opponent.Hp < 1) { Logger.LogMessage($"({p.Opponent.Class}) {p.Opponent.Name} погиб!\n"); p.Hp = rand.Next(1, 100); - p.IsDebuffed = false; + p.Effects.Clear(); return p.Opponent; } diff --git a/RPG/FireArrow.cs b/RPG/FireArrow.cs new file mode 100644 index 0000000..c2ae0a4 --- /dev/null +++ b/RPG/FireArrow.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class FireArrow : IEffects + { + public const int DamageFireArrow = 2; + + public void Proc(Player owner) + { + owner.Hp -= DamageFireArrow; + Logger.LogMessage($"({owner.Class}) {owner.Name} получает урон {DamageFireArrow} от эффекта Fire Arrow."); + } + } +} diff --git a/RPG/Game.cs b/RPG/Game.cs index 18b96cb..3e5c73e 100644 --- a/RPG/Game.cs +++ b/RPG/Game.cs @@ -7,44 +7,55 @@ public class Game { public static void Main(string[] args) { - Console.Write($"Введите кол-во игроков (1-16):"); - int kol = Convert.ToInt32(Console.ReadLine()); - if (kol <= 0) + string[] players_names = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; + int kol = 0; + try + { + Console.Write($"Введите кол-во игроков(1-16):"); + string nString = Console.ReadLine(); + kol = Convert.ToInt32(nString); + } + catch (System.FormatException) { - throw new Exception("Ошибка!!!"); + Console.Write($"Введите кол-во игроков(1-16):"); + string nString = Console.ReadLine(); + kol = Convert.ToInt32(nString); } - string[] players_names = { "Игрок1", "Игрок2", "Игрок3", "Игрок4", "Игрок5", "Игрок6", "Игрок7", "Игрок8", "Игрок9", "Игрок10", "Игрок11", "Игрок12", "Игрок13", "Игрок14", "Игрок15", "Игрок16" }; + while (kol % 2 != 0 || kol <= 0) + { + Console.Write($"Введите кол-во игроков(1-16):"); + kol = Convert.ToInt32(Console.ReadLine()); + } + + Random rand = new Random(); List kon_a = new List(); List kon_b = new List(); + int k = 0; int kon = 1; - int n = 0; - Random rand = new Random(); while (kon_a.Count < kol) { int r = rand.Next(0, 3); - if (r == 0) - { - kon_a.Add(new Knight(players_names[n])); - } - - if (r == 1) - { - kon_a.Add(new Archer(players_names[n])); - } - - if (r == 2) + switch (r) { - kon_a.Add(new Mage(players_names[n])); + case 0: + kon_a.Add(new Knight(players_names[k])); + break; + case 1: + kon_a.Add(new Archer(players_names[k])); + break; + case 2: + kon_a.Add(new Mage(players_names[k])); + break; } - n++; + k++; } Logger.LogMessage($"{kon++}-й Кон\n"); while (kon_a.Count + kon_b.Count > 1) { - if (kon_a.Count > 1 && !(kon_a.Count < 2)) + if (kon_a.Count >= 2) { Player tempPlayer = Battle.BattlePlayers(kon_a[PickPlayers.PickOp(kon_a)]); kon_b.Add(tempPlayer.Opponent); @@ -62,7 +73,6 @@ public static void Main(string[] args) } Logger.LogMessage($"({kon_b[0].Class}) {kon_b[0].Name} Победил!!!"); - Console.ReadLine(); } } } diff --git a/RPG/IEffects.cs b/RPG/IEffects.cs new file mode 100644 index 0000000..febf14f --- /dev/null +++ b/RPG/IEffects.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public interface IEffects + { + void Proc(Player owner); + } +} diff --git a/RPG/Knight.cs b/RPG/Knight.cs index 661ad0c..1f99d71 100644 --- a/RPG/Knight.cs +++ b/RPG/Knight.cs @@ -12,15 +12,10 @@ public Knight() } public Knight(string name) - : this(name, null) - { - } - - public Knight(string name, Player opponent) - : base(name, opponent) + : base(name) { Class = "Рыцарь"; - Usingskill = new KnightSkill(); + Skills.Add(new KnightSkill()); } } } diff --git a/RPG/KnightSkill.cs b/RPG/KnightSkill.cs index d65d257..892b64e 100644 --- a/RPG/KnightSkill.cs +++ b/RPG/KnightSkill.cs @@ -9,7 +9,7 @@ public class KnightSkill : IUseSkill public void UseSkill(Player user) { user.Opponent.Hp -= user.Strength * 1.3; - Logger.LogMessage($"({user.Class}) {user.Name} использует (Удар возмездия) и наносит урон {user.Strength * 1.3} противнику ({user.Opponent.Class}){user.Opponent.Name}."); + Logger.LogMessage($"({user.Class}) {user.Name} использует (Удар возмездия) и наносит урон {user.Strength * 1.3} противнику ({user.Opponent.Class}) {user.Opponent.Name}."); } } } diff --git a/RPG/Mage.cs b/RPG/Mage.cs index c8873a5..3368ee0 100644 --- a/RPG/Mage.cs +++ b/RPG/Mage.cs @@ -12,15 +12,10 @@ public Mage() } public Mage(string name) - : this(name, null) - { - } - - public Mage(string name, Player opponent) - : base(name, opponent) + : base(name) { Class = "Маг"; - Usingskill = new MageSkill(); + Skills.Add(new MageSkill()); } } } diff --git a/RPG/MageSkill.cs b/RPG/MageSkill.cs index ec746ed..7c12b29 100644 --- a/RPG/MageSkill.cs +++ b/RPG/MageSkill.cs @@ -8,7 +8,7 @@ public class MageSkill : IUseSkill { public void UseSkill(Player user) { - user.Opponent.IsSkipped = true; + user.Opponent.Effects.Add(new Skip()); Logger.LogMessage($"({user.Class}) {user.Name} использует (Заворожение) на ({user.Opponent.Class}) {user.Opponent.Name}."); } } diff --git a/RPG/Player.cs b/RPG/Player.cs index 56cbc64..4fd8cdb 100644 --- a/RPG/Player.cs +++ b/RPG/Player.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -15,14 +16,13 @@ public Player() } public Player(string name) - : this(name, null) { - } - - public Player(string name, Player opponent) - { - this.Name = name; - this.Opponent = opponent; + Name = name; + Hp = rand.Next(1, 100); + Strength = rand.Next(1, 99); + Skills = new List(); + Effects = new List(); + Skills.Add(new Attack()); } public string Class { get; protected set; } @@ -31,65 +31,30 @@ public Player(string name, Player opponent) public Player Opponent { get; set; } = null; - public double Hp { get; set; } = rand.Next(1, 101); + public double Hp { get; set; } - public int Strength { get; } = rand.Next(1, 101); + public int Strength { get; } - public bool IsDebuffed { get; set; } = false; + public bool IsStunned { get; set; } - public bool IsSkipped { get; set; } = false; + public IUseSkill Usingskill { get; set; } - public bool SkillUsed { get; set; } = false; + public List Skills { get; set; } - internal IUseSkill Usingskill { get; set; } - - public void Skip() - { - } + public List Effects { get; set; } - public virtual void Attack() + public void UseSkill() { - if (!IsSkipped) - { - if (!IsDebuffed) - { - Opponent.Hp -= Strength; - Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); - } - else - { - Hp -= 2; - Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); - Opponent.Hp -= Strength; - Logger.LogMessage($"({Class}) {Name} наносит урон {Strength} противнику ({Opponent.Class}) {Opponent.Name}."); - } - } - else { - Logger.LogMessage($"({Class}) {Name} пропускает ход."); - IsSkipped = false; + Usingskill.UseSkill(this); } } - public void UseSkill() + public void ProcEffects() { - if (!IsSkipped) - { - if (!IsDebuffed) - { - Usingskill.UseSkill(this); - } - else - { - Hp -= 2; - Logger.LogMessage($"({Class}) {Name} получает урон 2 от (Огненные стрелы)."); - Usingskill.UseSkill(this); - } - } - else + for (int i = 0; i < Effects.Count; i++) { - Logger.LogMessage($"({Class}) {Name} пропускает ход."); - IsSkipped = false; + Effects[i].Proc(this); } } } diff --git a/RPG/Skip.cs b/RPG/Skip.cs new file mode 100644 index 0000000..e6bc511 --- /dev/null +++ b/RPG/Skip.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Skip : IEffects + { + public void Proc(Player owner) + { + owner.IsStunned = true; + Logger.LogMessage($"({owner.Class}) {owner.Name} пропускает ход."); + } + } +} From 17045050bad6f309f047183e1a5c78fdbaca9ee6 Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Wed, 15 Apr 2020 16:06:45 +0300 Subject: [PATCH 16/18] fix --- RPG/Battle.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/RPG/Battle.cs b/RPG/Battle.cs index 8e58146..325d9fc 100644 --- a/RPG/Battle.cs +++ b/RPG/Battle.cs @@ -8,6 +8,7 @@ public static class Battle { public static Player BattlePlayers(Player p) { + Logger.LogBattle(p); Random rand = new Random(); while (p.Hp > 0 && p.Opponent.Hp > 0) { From e7f1692d513f35425d23fc9809619d54b352a221 Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Wed, 15 Apr 2020 16:16:52 +0300 Subject: [PATCH 17/18] fix --- .github/workflows/dotnetcore.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 32da533..792e246 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -23,5 +23,5 @@ jobs: dotnet test - name: Run tests run: | - cd RPG - dotnet build --configuration Release + cd RPG + dotnet build --configuration Release \ No newline at end of file From 5565d20a9b7e9842284d1b423210d7187e26fcb6 Mon Sep 17 00:00:00 2001 From: Aleksandr13254 Date: Wed, 15 Apr 2020 22:10:40 +0300 Subject: [PATCH 18/18] =?UTF-8?q?=D0=B2=D1=81=D1=91=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=B8=D0=BB,=20=D0=BF=D0=BE=D1=81=D0=BC?= =?UTF-8?q?=D0=BE=D1=82=D1=80=D0=B8=D1=82=D0=B5=20=D0=BF=D0=BE=D0=B6=D0=B0?= =?UTF-8?q?=D0=BB=D1=83=D0=B9=D1=81=D1=82=D0=B0!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RPG/Battle.cs | 10 +++++----- RPG/FireArrow.cs | 2 +- RPG/IEffects.cs | 2 +- RPG/Player.cs | 4 ++-- RPG/Skip.cs | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/RPG/Battle.cs b/RPG/Battle.cs index 325d9fc..213eb52 100644 --- a/RPG/Battle.cs +++ b/RPG/Battle.cs @@ -14,7 +14,7 @@ public static Player BattlePlayers(Player p) { int randomSkill1 = rand.Next(0, p.Skills.Count); int randomSkill2 = rand.Next(0, p.Opponent.Skills.Count); - p.ProcEffects(); + p.SrabatEffects(); if (p.IsStunned == false) { p.Usingskill = p.Skills[randomSkill1]; @@ -33,7 +33,7 @@ public static Player BattlePlayers(Player p) } } - p.Opponent.ProcEffects(); + p.Opponent.SrabatEffects(); if (p.Opponent.Hp > 0) { @@ -45,11 +45,11 @@ public static Player BattlePlayers(Player p) else { p.Opponent.IsStunned = false; - for (int i = 0; i < p.Effects.Count; i++) + for (int i = 0; i < p.Opponent.Effects.Count; i++) { - if (p.Effects[i] is Skip) + if (p.Opponent.Effects[i] is Skip) { - p.Effects.RemoveAt(i); + p.Opponent.Effects.RemoveAt(i); i--; } } diff --git a/RPG/FireArrow.cs b/RPG/FireArrow.cs index c2ae0a4..df3332e 100644 --- a/RPG/FireArrow.cs +++ b/RPG/FireArrow.cs @@ -8,7 +8,7 @@ public class FireArrow : IEffects { public const int DamageFireArrow = 2; - public void Proc(Player owner) + public void Srabat(Player owner) { owner.Hp -= DamageFireArrow; Logger.LogMessage($"({owner.Class}) {owner.Name} получает урон {DamageFireArrow} от эффекта Fire Arrow."); diff --git a/RPG/IEffects.cs b/RPG/IEffects.cs index febf14f..6c19a4f 100644 --- a/RPG/IEffects.cs +++ b/RPG/IEffects.cs @@ -6,6 +6,6 @@ namespace RPG { public interface IEffects { - void Proc(Player owner); + void Srabat(Player owner); } } diff --git a/RPG/Player.cs b/RPG/Player.cs index 4fd8cdb..28fa852 100644 --- a/RPG/Player.cs +++ b/RPG/Player.cs @@ -50,11 +50,11 @@ public void UseSkill() } } - public void ProcEffects() + public void SrabatEffects() { for (int i = 0; i < Effects.Count; i++) { - Effects[i].Proc(this); + Effects[i].Srabat(this); } } } diff --git a/RPG/Skip.cs b/RPG/Skip.cs index e6bc511..3ded930 100644 --- a/RPG/Skip.cs +++ b/RPG/Skip.cs @@ -6,7 +6,7 @@ namespace RPG { public class Skip : IEffects { - public void Proc(Player owner) + public void Srabat(Player owner) { owner.IsStunned = true; Logger.LogMessage($"({owner.Class}) {owner.Name} пропускает ход.");