From 484fe4f53bb95b33ca2fb5a65a9440157c495451 Mon Sep 17 00:00:00 2001 From: User of DK306 Date: Sat, 22 Feb 2020 09:36:51 +0400 Subject: [PATCH 1/3] =?UTF-8?q?=D1=81=D0=B0=D0=B9=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soldatov.github.io/images/gerb.png | Bin 0 -> 71767 bytes soldatov.github.io/index.html | 36 ++++++++++++++ soldatov.github.io/style/Soldatov1.css | 65 +++++++++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 soldatov.github.io/images/gerb.png create mode 100644 soldatov.github.io/index.html create mode 100644 soldatov.github.io/style/Soldatov1.css diff --git a/soldatov.github.io/images/gerb.png b/soldatov.github.io/images/gerb.png new file mode 100644 index 0000000000000000000000000000000000000000..44b0e8d34bb821bb2dcfa54ba3d94a070977565c GIT binary patch literal 71767 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 O0000>vVAd literal 0 HcmV?d00001 diff --git a/soldatov.github.io/index.html b/soldatov.github.io/index.html new file mode 100644 index 0000000..689490b --- /dev/null +++ b/soldatov.github.io/index.html @@ -0,0 +1,36 @@ + + + + + + +

+ Солдатов Михаил +
+ +
+
+

Register

+

Please fill in this form to create an account.

+
+ + + + + + + + + +
+ +

By creating an account you agree to our Terms & Privacy.

+ +
+ + +
+ + \ No newline at end of file diff --git a/soldatov.github.io/style/Soldatov1.css b/soldatov.github.io/style/Soldatov1.css new file mode 100644 index 0000000..50e546d --- /dev/null +++ b/soldatov.github.io/style/Soldatov1.css @@ -0,0 +1,65 @@ +.text{ + margin-left: 18%; + border: 4px double red; + position: absolute; + max-width: 82%; +} +.ISUCT{ + margin-right: 82%; + border: 4px double black; +} + +* {box-sizing: border-box} + +/* Add padding to containers */ +.container { + padding: 16px; +} + +/* Full-width input fields */ +input[type=text], input[type=password] { + width: 100%; + padding: 15px; + margin: 5px 0 22px 0; + display: inline-block; + border: none; + background: #f1f1f1; +} + +input[type=text]:focus, input[type=password]:focus { + background-color: #ddd; + outline: none; +} + +/* Overwrite default styles of hr */ +hr { + border: 1px solid #f1f1f1; + margin-bottom: 25px; +} + +/* Set a style for the submit/register button */ +.registerbtn { + background-color: #4CAF50; + color: white; + padding: 16px 20px; + margin: 8px 0; + border: none; + cursor: pointer; + width: 100%; + opacity: 0.9; +} + +.registerbtn:hover { + opacity:1; +} + +/* Add a blue text color to links */ +a { + color: dodgerblue; +} + +/* Set a grey background color and center the text of the "sign in" section */ +.signin { + background-color: #f1f1f1; + text-align: center; +} \ No newline at end of file From 0301cba98474de954e693e2ac68b2f7660629e96 Mon Sep 17 00:00:00 2001 From: "misha.soldatov.96@mail.ru" Date: Mon, 9 Mar 2020 16:51:32 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D1=80=D0=BF=D0=B3=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.sln | 25 ++++ RPG/Abilities.cs | 11 ++ RPG/Archer.cs | 24 ++++ RPG/ArchertAbility.cs | 15 ++ RPG/Attack.cs | 14 ++ RPG/Game.cs | 317 ++++++++++++++++++++++++++++++++++++++++++ RPG/Knight.cs | 24 ++++ RPG/KnightAbility.cs | 15 ++ RPG/Mage.cs | 24 ++++ RPG/MageAbility.cs | 15 ++ RPG/Player.cs | 57 ++++++++ RPG/RPG.csproj | 8 ++ 12 files changed, 549 insertions(+) create mode 100644 RPG.sln create mode 100644 RPG/Abilities.cs create mode 100644 RPG/Archer.cs create mode 100644 RPG/ArchertAbility.cs create mode 100644 RPG/Attack.cs create mode 100644 RPG/Game.cs create mode 100644 RPG/Knight.cs create mode 100644 RPG/KnightAbility.cs create mode 100644 RPG/Mage.cs create mode 100644 RPG/MageAbility.cs create mode 100644 RPG/Player.cs create mode 100644 RPG/RPG.csproj diff --git a/RPG.sln b/RPG.sln new file mode 100644 index 0000000..aa70abb --- /dev/null +++ b/RPG.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29306.81 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RPG", "RPG\RPG.csproj", "{9DCB304A-3927-42E8-9D29-FB0820354E4E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DCB304A-3927-42E8-9D29-FB0820354E4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DCB304A-3927-42E8-9D29-FB0820354E4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DCB304A-3927-42E8-9D29-FB0820354E4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DCB304A-3927-42E8-9D29-FB0820354E4E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DA76A8FB-E2E4-4D4E-AD81-8576A401E586} + EndGlobalSection +EndGlobal diff --git a/RPG/Abilities.cs b/RPG/Abilities.cs new file mode 100644 index 0000000..6a1983b --- /dev/null +++ b/RPG/Abilities.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public interface Abilities + { + void Ability(Player player); + } +} diff --git a/RPG/Archer.cs b/RPG/Archer.cs new file mode 100644 index 0000000..81400dc --- /dev/null +++ b/RPG/Archer.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + class Archer : Player + { + public Archer() + : this("Неизвестно") + { + } + public Archer(string name) + : this(name, null) + { + } + public Archer(string name, Player enemy) + : base(name, enemy) + { + Class = "Archer"; + UseAbility.Add(new ArcherAbility()); + } + } +} \ No newline at end of file diff --git a/RPG/ArchertAbility.cs b/RPG/ArchertAbility.cs new file mode 100644 index 0000000..5a05d57 --- /dev/null +++ b/RPG/ArchertAbility.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class ArcherAbility : Abilities + { + public void Ability(Player player) + { + player.Enemy.Effects.Add("Fire arrows"); + Console.WriteLine("Player: {player.Class} use Fire arrows to {player.Enemy.Class}, {player.Enemy.Name}"); + } + } +} \ No newline at end of file diff --git a/RPG/Attack.cs b/RPG/Attack.cs new file mode 100644 index 0000000..cf21220 --- /dev/null +++ b/RPG/Attack.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class Attack : Abilities + { + public void Ability(Player player) + { + player.Enemy.HP = player.Enemy.HP - player.Strong; + } + } +} diff --git a/RPG/Game.cs b/RPG/Game.cs new file mode 100644 index 0000000..8ac342d --- /dev/null +++ b/RPG/Game.cs @@ -0,0 +1,317 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace RPG +{ + public class Game + { + private static int team1Points = 0; + private static int team2Points = 0; + + static void Main(string[] args) + { + List team1 = new List(); + List team2 = new List(); + Console.WriteLine("Введи кол-во игроков"); + int numberOfPlayers = Convert.ToInt32(Console.ReadLine()); + string[] names = { "player1", "player2", "player3", "player4", "player5", "player6", "player7", "player8", "player9", "player10", "player11", "player12", "player13", "player14", "player15", "player16" }; + if ((numberOfPlayers % 2 != 0) || (numberOfPlayers <= 0) || (numberOfPlayers > 16)) + { + // Console.WriteLine("Вы ввели некоректное кол-во игроков"); + throw new ArgumentOutOfRangeException("incorect number of players"); + } + + Console.WriteLine(" "); + Console.WriteLine("Team1"); + for (int i = 0; i < numberOfPlayers / 2; i++) + { + Random rnd = new Random(); + int a = rnd.Next(0, 3); + if (a == 0) + { + team1.Add(new Knight(names[i])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Knight", i + 1, names[i]); + } + + if (a == 1) + { + team1.Add(new Archer()); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Archer", i + 1, names[i]); + } + + if (a == 2) + { + team1.Add(new Mage()); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Mage", i + 1, names[i]); + } + } + + Console.WriteLine("Team2"); + for (int i = numberOfPlayers / 2; i < numberOfPlayers; i++) + { + Random rnd = new Random(); + int a = rnd.Next(0, 3); + if (a == 0) + { + team2.Add(new Knight(names[i], team1[i - (numberOfPlayers / 2)])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Knight", i + 1, names[i]); + } + + if (a == 1) + { + team2.Add(new Archer(names[i], team1[i - (numberOfPlayers / 2)])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Archer", i + 1, names[i]); + } + + if (a == 2) + { + team2.Add(new Mage(names[i], team1[i - (numberOfPlayers / 2)])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Mage", i + 1, names[i]); + } + } + + Console.WriteLine(" "); + Console.WriteLine("Team1 vs Team2"); + + for (int i = 0; i < numberOfPlayers / 2; i++) + { + team1[i].Enemy = team2[i]; + + // Console.WriteLine(team1[i].Enemy); + Console.Write(team1[i]); + Console.Write(" vs "); + Console.WriteLine(team2[i]); + } + + Console.WriteLine(" "); + + for (int i = 0; i < numberOfPlayers / 2; i++) + { + Console.Write(team1[i]); + Console.Write(" vs "); + Console.WriteLine(team2[i]); + Fight(team1[i]); + } + + if (team1Points > team2Points) + { + Console.WriteLine("team1 win"); + } + + if (team2Points > team1Points) + { + Console.WriteLine("team2 win"); + } + + if (team2Points == team1Points) + { + Console.WriteLine("draw"); + } + } + + private static void Fight(Player player) + { + int turnNumber = 1; + int cooldownTeam1 = 0; + int cooldownTeam2 = 0; + Random rnd = new Random(); + Console.WriteLine(" "); + Console.WriteLine("{0} have {1}, his strong: {2}", player, player.HP, player.Strong); + Console.WriteLine("{0} have {1}, his strong: {2}", player.Enemy, player.Enemy.HP, player.Enemy.Strong); + while (player.HP > 0 && player.Enemy.HP > 0) + { + Console.WriteLine(" "); + Console.WriteLine("round {0}", turnNumber); + Console.WriteLine(" "); + + turnNumber++; + + Random b = new Random(); + var arr1 = new[] { 0, 1 }; + var rndMember = arr1[b.Next(arr1.Length)]; + + // int cooldown=0; + + // Console.WriteLine("rndMember={0}", rndMember); + if (player.Effects.Contains("Freezing")) + { + Console.WriteLine("{0} skip tyrn because of Freezing", player); + } + else + { + if (player.Effects.Contains("Fire arrows")) + { + player.HP = player.HP - 2; + if (player.HP > 0) + { + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player, player.HP); + } + + if (player.HP < 0) + { + team2Points = team2Points + 1; + player.HP = 0; + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine("{0}, win", player.Enemy); + Console.WriteLine(" "); + team2Points++; + break; + } + } + else + { + if ((rndMember != 0) && (cooldownTeam1 != 3)) + { + if (player.ToString() == "RPG.Knight") + { + Console.WriteLine("{0} use his ultimate Abilitiy and given damage equal 130% of his strong: {1}", player, player.Strong * 1.3); + player.Enemy.HP = player.Enemy.HP - (player.Strong * 1.3); + cooldownTeam1 = 3; + } + + if (player.ToString() == "RPG.Mage") + { + Console.WriteLine("{0} use his ultimate Abilitiy skipping turn on: {1}", player, player.Enemy); + player.Enemy.Effects.Add("Freezing"); + cooldownTeam1 = 3; + } + + if (player.ToString() == "RPG.Archer") + { + Console.WriteLine("{0} use his ultimate Abilitiy Fire arrows on: {1}", player, player.Enemy); + player.Enemy.Effects.Add("Fire arrows"); + cooldownTeam1 = 3; + } + } + else + { + player.Enemy.HP = player.Enemy.HP - player.Strong; + Console.WriteLine("{0} deal damage to {1} : {2}", player, player.Enemy, player.Strong); + + // if (cooldown == 0) { cooldown = 0; } + if ((cooldownTeam1 > 0) && (cooldownTeam1 < 4)) + { + cooldownTeam1--; + } + } + } + } + + // Console.WriteLine("{0} deal damage to {1} : {2}", player, player.Enemy, player.Strong); + if (player.Enemy.HP < 0) + { + team1Points = team1Points + 1; + player.Enemy.HP = 0; + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine("{0}, win", player); + Console.WriteLine(" "); + team1Points++; + break; + } + else + { + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + } + + Console.WriteLine(" "); + + /*if (player.Enemy.HP > 0) + { + Console.WriteLine("{0} deal damage to {1} : {2}", player.Enemy, player, player.Enemy.Strong); + // player.Enemy.Ability(); + player.HP = player.HP - player.Enemy.Strong; + }*/ + + if (player.Enemy.HP > 0) + { + if (player.Enemy.Effects.Contains("Freezing")) + { + Console.WriteLine("{0} skip tyrn because of Freezing", player.Enemy); + } + else + { + if (player.Enemy.Effects.Contains("Fire arrows")) + { + player.Enemy.HP = player.Enemy.HP - 2; + if (player.Enemy.HP > 0) + { + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player.Enemy, player.Enemy.HP); + } + + if (player.Enemy.HP < 0) + { + team1Points = team1Points + 1; + player.Enemy.HP = 0; + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0}, win", player); + Console.WriteLine(" "); + team1Points++; + break; + } + } + else + { + if ((rndMember != 0) && (cooldownTeam2 != 3)) + { + if (player.ToString() == "RPG.Knight") + { + Console.WriteLine("{0} use his ultimate Abilitiy and given damage equal 130% of his strong: {1}", player.Enemy, player.Enemy.Strong * 1.3); + player.HP = player.HP - (player.Enemy.Strong * 1.3); + cooldownTeam2 = 3; + } + + if (player.ToString() == "RPG.Mage") + { + Console.WriteLine("{0} use his ultimate Abilitiy skipping turn on: {1}", player.Enemy, player); + player.Effects.Add("Freezing"); + cooldownTeam2 = 3; + } + + if (player.ToString() == "RPG.Archer") + { + Console.WriteLine("{0} use his ultimate Abilitiy Fire arrows on: {1}", player, player.Enemy); + player.Effects.Add("Fire arrows"); + cooldownTeam2 = 3; + } + } + else + { + player.HP = player.HP - player.Strong; + Console.WriteLine("{0} deal damage to {1} : {2}", player.Enemy, player, player.Enemy.Strong); + + // if (cooldown == 0) { cooldown = 0; } + if ((cooldownTeam2 > 0) && (cooldownTeam2 < 4)) + { + cooldownTeam2--; + } + } + } + } + } + + if (player.HP < 0) + { + player.HP = 0; + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine("{0}, win", player.Enemy); + Console.WriteLine(" "); + team2Points++; + break; + } + else + { + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + } + + Console.WriteLine(" "); + } + } + } +} diff --git a/RPG/Knight.cs b/RPG/Knight.cs new file mode 100644 index 0000000..fe0cd25 --- /dev/null +++ b/RPG/Knight.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + class Knight : Player + { + public Knight() + : this("Неизвестно") + { + } + public Knight(string name) + : this(name, null) + { + } + public Knight(string name, Player enemy) + : base(name, enemy) + { + Class = "Knight"; + UseAbility.Add(new KnightAbility()); + } + } +} diff --git a/RPG/KnightAbility.cs b/RPG/KnightAbility.cs new file mode 100644 index 0000000..9907fe6 --- /dev/null +++ b/RPG/KnightAbility.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class KnightAbility : Abilities + { + public void Ability (Player player) + { + player.Enemy.HP = player.Enemy.HP - player.Strong* 1.3; + Console.WriteLine("Player: {player.Class} use retaliation strike and deal damage {plyer.Strong * 1.3} to {player.Enemy.Class}, {player.Enemy.Name}"); + } + } +} diff --git a/RPG/Mage.cs b/RPG/Mage.cs new file mode 100644 index 0000000..971b1db --- /dev/null +++ b/RPG/Mage.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + class Mage : Player + { + public Mage() + : this("Неизвестно") + { + } + public Mage(string name) + : this(name, null) + { + } + public Mage(string name, Player enemy) + : base(name, enemy) + { + Class = "Mage"; + UseAbility.Add(new MageAbility()); + } + } +} \ No newline at end of file diff --git a/RPG/MageAbility.cs b/RPG/MageAbility.cs new file mode 100644 index 0000000..0c78e61 --- /dev/null +++ b/RPG/MageAbility.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public class MageAbility : Abilities + { + public void Ability(Player player) + { + player.Enemy.Effects.Add("Freezing"); + Console.WriteLine("Player: {player.Class} use retaliation strike and deal damage {plyer.Strong * 1.3} to {player.Enemy.Class}, {player.Enemy.Name}"); + } + } +} diff --git a/RPG/Player.cs b/RPG/Player.cs new file mode 100644 index 0000000..558296e --- /dev/null +++ b/RPG/Player.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; + + +namespace RPG +{ + public abstract class Player + { + private static readonly Random rnd = new Random(); + public Player() + : this("Неизвестно") + { + } + public Player(string name) + : this(name, null) + { + } + public Player(string name, Player enemy) + { + Name = name; + Enemy = enemy; + UseAbility.Add(new Attack()); + } + public string Class { get; protected set; } + public string Name { get; set; } + public Player Enemy { get; set; } = null; + public double HP { get; set; } = rnd.Next(1, 100); + public int Strong { get; } = rnd.Next(1, 99); + public Abilities UsingAbility { get; set; } + + public List UseAbility = new List(); + public List Effects = new List(); + public void Ability() + { + if (!Effects.Contains("Freezing")) + { + if (!Effects.Contains("Fire arrows")) + { + UsingAbility.Ability(this); + } + else + { + HP = HP - 2; + Console.WriteLine("Player: {Name}, Class: {Class} take 2 damage from fire arrows"); + UsingAbility.Ability(this); + } + } + else + { + Console.WriteLine("Player: {Name}, Class{Class} skip pass"); + Effects.Remove("Freezing"); + } + } + + } +} diff --git a/RPG/RPG.csproj b/RPG/RPG.csproj new file mode 100644 index 0000000..23df604 --- /dev/null +++ b/RPG/RPG.csproj @@ -0,0 +1,8 @@ + + + + Exe + netcoreapp2.1 + + + From 936476373ea0f5073796379c316b63356bc1ca4f Mon Sep 17 00:00:00 2001 From: "misha.soldatov.96@mail.ru" Date: Tue, 28 Apr 2020 14:03:52 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D1=80=D0=BF=D0=B3=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=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.sln | 4 +- RPG/Game.cs | 499 +++++++++++++++++++++++++++++++++++++++++++------- RPG/Logger.cs | 18 ++ RPG/Player.cs | 5 +- 4 files changed, 456 insertions(+), 70 deletions(-) create mode 100644 RPG/Logger.cs diff --git a/RPG.sln b/RPG.sln index aa70abb..01cbade 100644 --- a/RPG.sln +++ b/RPG.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29306.81 +# Visual Studio 15 +VisualStudioVersion = 15.0.28010.2026 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RPG", "RPG\RPG.csproj", "{9DCB304A-3927-42E8-9D29-FB0820354E4E}" EndProject diff --git a/RPG/Game.cs b/RPG/Game.cs index 8ac342d..cb5b79c 100644 --- a/RPG/Game.cs +++ b/RPG/Game.cs @@ -4,21 +4,54 @@ namespace RPG { + public enum CharacterClass + { + Knight, + Archer, + Mage + } + + public enum CharacterAbilities + { + Freezing, //заморозка + Fire_arrows, //огненные стрелы + Сritical_damage //критический урон + } public class Game { - private static int team1Points = 0; - private static int team2Points = 0; + private static int EnemyNumber; + private static double T1HP = 0; + private static double T2HP = 0; + private static double TeamAlive1(int numberOfPlayers, List team1) + { + T1HP = 0; + for (int i = 0; i < numberOfPlayers / 2; i++) + { + //Console.WriteLine("team1: {0} , his HP{1}", team1[i], team1[i].HP); + T1HP = T1HP + team1[i].HP; + } + return T1HP; + } + private static double TeamAlive2 (int numberOfPlayers, List team2) + { + T2HP = 0; + for (int i = numberOfPlayers / 2; i < numberOfPlayers; i++) + { + //double T2HP; + /*Console.WriteLine(T2HP); + Console.WriteLine(team2[i-6]); + Console.WriteLine(team2[i-6].HP);*/ + T2HP = T2HP + team2[i- numberOfPlayers / 2].HP; + } + return T2HP; + } - static void Main(string[] args) + private static void PickPlayer(int numberOfPlayers, List team1, List team2) { - List team1 = new List(); - List team2 = new List(); - Console.WriteLine("Введи кол-во игроков"); - int numberOfPlayers = Convert.ToInt32(Console.ReadLine()); + string[] names = { "player1", "player2", "player3", "player4", "player5", "player6", "player7", "player8", "player9", "player10", "player11", "player12", "player13", "player14", "player15", "player16" }; if ((numberOfPlayers % 2 != 0) || (numberOfPlayers <= 0) || (numberOfPlayers > 16)) { - // Console.WriteLine("Вы ввели некоректное кол-во игроков"); throw new ArgumentOutOfRangeException("incorect number of players"); } @@ -26,48 +59,48 @@ static void Main(string[] args) Console.WriteLine("Team1"); for (int i = 0; i < numberOfPlayers / 2; i++) { - Random rnd = new Random(); - int a = rnd.Next(0, 3); - if (a == 0) - { - team1.Add(new Knight(names[i])); - Console.WriteLine("Player number: {0}, named: {1}, take a character: Knight", i + 1, names[i]); - } - - if (a == 1) + CharacterClass yourPlayerClass = (CharacterClass)(new Random()).Next(0, 3); + switch (yourPlayerClass) { - team1.Add(new Archer()); - Console.WriteLine("Player number: {0}, named: {1}, take a character: Archer", i + 1, names[i]); - } - - if (a == 2) - { - team1.Add(new Mage()); - Console.WriteLine("Player number: {0}, named: {1}, take a character: Mage", i + 1, names[i]); + case CharacterClass.Knight: + team1.Add(new Knight(names[i])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Knight", i + 1, names[i]); + Console.WriteLine("HIS HP: {0} HIS STRONG {1}", team1[i].HP, team1[i].Strong); + break; + case CharacterClass.Archer: + team1.Add(new Archer(names[i])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Archer", i + 1, names[i]); + Console.WriteLine("HIS HP: {0} HIS STRONG {1}", team1[i].HP, team1[i].Strong); + break; + case CharacterClass.Mage: + team1.Add(new Mage(names[i])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Mage", i + 1, names[i]); + Console.WriteLine("HIS HP: {0} HIS STRONG {1}", team1[i].HP, team1[i].Strong); + break; } } Console.WriteLine("Team2"); for (int i = numberOfPlayers / 2; i < numberOfPlayers; i++) { - Random rnd = new Random(); - int a = rnd.Next(0, 3); - if (a == 0) - { - team2.Add(new Knight(names[i], team1[i - (numberOfPlayers / 2)])); - Console.WriteLine("Player number: {0}, named: {1}, take a character: Knight", i + 1, names[i]); - } - - if (a == 1) + CharacterClass yourPlayerClass = (CharacterClass)(new Random()).Next(0, 3); + switch (yourPlayerClass) { - team2.Add(new Archer(names[i], team1[i - (numberOfPlayers / 2)])); - Console.WriteLine("Player number: {0}, named: {1}, take a character: Archer", i + 1, names[i]); - } - - if (a == 2) - { - team2.Add(new Mage(names[i], team1[i - (numberOfPlayers / 2)])); - Console.WriteLine("Player number: {0}, named: {1}, take a character: Mage", i + 1, names[i]); + case CharacterClass.Knight: + team2.Add(new Knight(names[i])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Knight", i + 1, names[i]); + Console.WriteLine("HIS HP: {0}, HIS STRONG {1}", team2[i- numberOfPlayers/2].HP, team2[i- numberOfPlayers / 2].Strong); + break; + case CharacterClass.Archer: + team2.Add(new Archer(names[i])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Archer", i + 1, names[i]); + Console.WriteLine("HIS HP: {0} HIS STRONG {1}", team2[i - numberOfPlayers / 2].HP, team2[i- numberOfPlayers / 2].Strong); + break; + case CharacterClass.Mage: + team2.Add(new Mage(names[i])); + Console.WriteLine("Player number: {0}, named: {1}, take a character: Mage", i + 1, names[i]); + Console.WriteLine("HIS HP: {0} HIS STRONG {1}", team2[i - numberOfPlayers / 2].HP, team2[i- numberOfPlayers / 2].Strong); + break; } } @@ -76,41 +109,190 @@ static void Main(string[] args) for (int i = 0; i < numberOfPlayers / 2; i++) { - team1[i].Enemy = team2[i]; - - // Console.WriteLine(team1[i].Enemy); Console.Write(team1[i]); Console.Write(" vs "); Console.WriteLine(team2[i]); } + } + static void Main(string[] args) + { + int turn_number=1; + List team1 = new List(); + List team2 = new List(); + Console.WriteLine("Введи кол-во игроков"); + int numberOfPlayers = Convert.ToInt32(Console.ReadLine()); + int[] cooldown = new int[numberOfPlayers]; + PickPlayer(numberOfPlayers, team1, team2); + Console.WriteLine(" "); + for (int i = 0; i < numberOfPlayers; i++) + { + cooldown[i] = 0; + } - for (int i = 0; i < numberOfPlayers / 2; i++) + while ((TeamAlive1(numberOfPlayers, team1) > 0) && (TeamAlive2(numberOfPlayers, team2)>0)) { - Console.Write(team1[i]); - Console.Write(" vs "); - Console.WriteLine(team2[i]); - Fight(team1[i]); + Console.WriteLine("turn number: {0}", turn_number); + Console.WriteLine(" "); + Console.WriteLine("{0}+{1}+{2}+{3}+{4}+{5}= ", team1[0].HP, team1[1].HP, team1[2].HP, team1[3].HP, team1[4].HP, team1[5].HP); + Console.Write("HPTeam1: {0}", TeamAlive1(numberOfPlayers, team1)); + Console.WriteLine(" "); + Console.WriteLine("HPTeam2: {0}", TeamAlive2(numberOfPlayers, team2)); + Console.WriteLine(" "); + for (int i = 0; i < numberOfPlayers / 2; i++) + { + Random rnd = new Random(); + int enemyNumber = rnd.Next(0, numberOfPlayers/2); + if (team1[i].HP > 0) + { + Fight(team1[i], enemyNumber, cooldown[i], 1, team1, team2); + } + else + { + Console.WriteLine("You are dead"); + } + } + for (int i = numberOfPlayers / 2 + 1 ; i < numberOfPlayers; i++) + { + Random rnd = new Random(); + int enemyNumber = rnd.Next(0, numberOfPlayers / 2); + if (team2[i- numberOfPlayers / 2].HP > 0) + { + Fight(team2[i- numberOfPlayers / 2], enemyNumber, cooldown[i], 2, team1, team2); + } + } + Console.WriteLine(" "); + Console.WriteLine("Оставшееся здоровье у героев после раунда {0}", turn_number); + for (int i = 0; i < numberOfPlayers / 2; i++) + { + Console.WriteLine("player number {0} named {1}, have {2} ", i, team1[i], team1[i].HP); + } + for (int i = numberOfPlayers / 2; i < numberOfPlayers; i++) + { + Console.WriteLine("player number {0} named {1}, have {2} ", i, team2[i - numberOfPlayers / 2], team2[i - numberOfPlayers / 2].HP); + } + turn_number++; } - if (team1Points > team2Points) + Console.WriteLine(" "); + Console.WriteLine("Оставшееся здоровье у героев"); + + for (int i = 0; i < numberOfPlayers/2; i++) { - Console.WriteLine("team1 win"); + Console.WriteLine("player number {0} named {1}, have {2} ",i,team1[i], team1[i].HP); } - if (team2Points > team1Points) + for (int i = numberOfPlayers / 2; i < numberOfPlayers; i++) { - Console.WriteLine("team2 win"); + Console.WriteLine("player number {0} named {1}, have {2} ", i, team2[i- numberOfPlayers / 2], team2[i- numberOfPlayers / 2].HP); } - if (team2Points == team1Points) + if (TeamAlive1(numberOfPlayers, team1) == 0) + { + Console.WriteLine("Team2 win"); + } + else { - Console.WriteLine("draw"); + Console.WriteLine("Team1 win"); } + } - private static void Fight(Player player) + private static void Fight(Player player, int enemyNumber, int kd, int TeamTurn, List team1, List team2) + { + Random rnd = new Random(); + Random b = new Random(); + var arr1 = new[] { 0, 1 }; + var rndMember = arr1[b.Next(arr1.Length)]; + int turnNumber = 1; + int TT = TeamTurn; + + if (TT == 1) + { + player.Enemy = team2[enemyNumber]; + } + else + { + player.Enemy = team1[enemyNumber]; + } + if (player.Effects.Contains("Freezing")) + { + Console.WriteLine("{0} skip tyrn because of Freezing", player); + } + else + { + if (player.Effects.Contains("Fire arrows")) + { + player.HP = player.HP - 2; + if (player.HP > 0) + { + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player, player.HP); + } + + if (player.HP < 0) + { + player.HP = 0; + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine(" "); + //goto link1; + return ; + } + } + else + { + if ((rndMember != 0) && (kd != 3)) + { + if (player.ToString() == "RPG.Knight") + { + + Console.WriteLine("{0} use his ultimate Abilitiy and given damage equal 130% of his strong: {1}", player, player.Strong * 1.3); + player.Enemy.HP = player.Enemy.HP - (player.Strong * 1.3); + if (player.Enemy.HP <0) + { + player.Enemy.HP = 0; + } + kd = 3; + } + + if (player.ToString() == "RPG.Mage") + { + Console.WriteLine("{0} use his ultimate Abilitiy skipping turn on: {1}", player, player.Enemy); + player.Enemy.Effects.Add("Freezing"); + kd = 3; + } + + if (player.ToString() == "RPG.Archer") + { + Console.WriteLine("{0} use his ultimate Abilitiy Fire arrows on: {1}", player, player.Enemy); + player.Enemy.Effects.Add("Fire arrows"); + kd = 3; + } + } + else + { + player.Enemy.HP = player.Enemy.HP - player.Strong; + Console.WriteLine("{0} deal damage to {1} : {2}", player, player.Enemy, player.Strong); + if (player.Enemy.HP<0) + { + player.Enemy.HP = 0; + } + Console.WriteLine("{0} have {1} ", player.Enemy, player.Enemy.HP); + + if ((kd > 0) && (kd < 4)) + { + kd--; + } + } + } + } + //link1: + Console.WriteLine(" "); + //turnNumber++; + } + + /*private static void Fight(Player player, int enemyNumber) { int turnNumber = 1; int cooldownTeam1 = 0; @@ -131,8 +313,6 @@ private static void Fight(Player player) var arr1 = new[] { 0, 1 }; var rndMember = arr1[b.Next(arr1.Length)]; - // int cooldown=0; - // Console.WriteLine("rndMember={0}", rndMember); if (player.Effects.Contains("Freezing")) { @@ -190,7 +370,6 @@ private static void Fight(Player player) player.Enemy.HP = player.Enemy.HP - player.Strong; Console.WriteLine("{0} deal damage to {1} : {2}", player, player.Enemy, player.Strong); - // if (cooldown == 0) { cooldown = 0; } if ((cooldownTeam1 > 0) && (cooldownTeam1 < 4)) { cooldownTeam1--; @@ -219,12 +398,200 @@ private static void Fight(Player player) Console.WriteLine(" "); - /*if (player.Enemy.HP > 0) + if (player.Enemy.HP > 0) + { + if (player.Enemy.Effects.Contains("Freezing")) + { + Console.WriteLine("{0} skip tyrn because of Freezing", player.Enemy); + } + else + { + if (player.Enemy.Effects.Contains("Fire arrows")) + { + player.Enemy.HP = player.Enemy.HP - 2; + if (player.Enemy.HP > 0) + { + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player.Enemy, player.Enemy.HP); + } + + if (player.Enemy.HP < 0) + { + team1Points = team1Points + 1; + player.Enemy.HP = 0; + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0}, win", player); + Console.WriteLine(" "); + team1Points++; + break; + } + } + else + { + if ((rndMember != 0) && (cooldownTeam2 != 3)) + { + if (player.ToString() == "RPG.Knight") + { + Console.WriteLine("{0} use his ultimate Abilitiy and given damage equal 130% of his strong: {1}", player.Enemy, player.Enemy.Strong * 1.3); + player.HP = player.HP - (player.Enemy.Strong * 1.3); + cooldownTeam2 = 3; + } + + if (player.ToString() == "RPG.Mage") + { + Console.WriteLine("{0} use his ultimate Abilitiy skipping turn on: {1}", player.Enemy, player); + player.Effects.Add("Freezing"); + cooldownTeam2 = 3; + } + + if (player.ToString() == "RPG.Archer") + { + Console.WriteLine("{0} use his ultimate Abilitiy Fire arrows on: {1}", player, player.Enemy); + player.Effects.Add("Fire arrows"); + cooldownTeam2 = 3; + } + } + else + { + player.HP = player.HP - player.Strong; + Console.WriteLine("{0} deal damage to {1} : {2}", player.Enemy, player, player.Enemy.Strong); + + // if (cooldown == 0) { cooldown = 0; } + if ((cooldownTeam2 > 0) && (cooldownTeam2 < 4)) + { + cooldownTeam2--; + } + } + } + } + } + + if (player.HP < 0) + { + player.HP = 0; + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine("{0}, win", player.Enemy); + Console.WriteLine(" "); + team2Points++; + break; + } + else + { + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + } + + Console.WriteLine(" "); + } + }*/ + + /*private static void Fight(Player player) + { + int turnNumber = 1; + int[] cooldown = new int[numberOfPlayers]; + int cooldownTeam1 = 0; + int cooldownTeam2 = 0; + Random rnd = new Random(); + Console.WriteLine(" "); + Console.WriteLine("{0} have {1}, his strong: {2}", player, player.HP, player.Strong); + Console.WriteLine("{0} have {1}, his strong: {2}", player.Enemy, player.Enemy.HP, player.Enemy.Strong); + while (player.HP > 0 && player.Enemy.HP > 0) + { + Console.WriteLine(" "); + Console.WriteLine("round {0}", turnNumber); + Console.WriteLine(" "); + + turnNumber++; + + Random b = new Random(); + var arr1 = new[] { 0, 1 }; + var rndMember = arr1[b.Next(arr1.Length)]; + + // Console.WriteLine("rndMember={0}", rndMember); + if (player.Effects.Contains("Freezing")) { - Console.WriteLine("{0} deal damage to {1} : {2}", player.Enemy, player, player.Enemy.Strong); - // player.Enemy.Ability(); - player.HP = player.HP - player.Enemy.Strong; - }*/ + Console.WriteLine("{0} skip tyrn because of Freezing", player); + } + else + { + if (player.Effects.Contains("Fire arrows")) + { + player.HP = player.HP - 2; + if (player.HP > 0) + { + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player, player.HP); + } + + if (player.HP < 0) + { + team2Points = team2Points + 1; + player.HP = 0; + Console.WriteLine("{0} take 2 damage from Fire arrows, his HP {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine("{0}, win", player.Enemy); + Console.WriteLine(" "); + team2Points++; + break; + } + } + else + { + if ((rndMember != 0) && (cooldownTeam1 != 3)) + { + if (player.ToString() == "RPG.Knight") + { + Console.WriteLine("{0} use his ultimate Abilitiy and given damage equal 130% of his strong: {1}", player, player.Strong * 1.3); + player.Enemy.HP = player.Enemy.HP - (player.Strong * 1.3); + cooldownTeam1 = 3; + } + + if (player.ToString() == "RPG.Mage") + { + Console.WriteLine("{0} use his ultimate Abilitiy skipping turn on: {1}", player, player.Enemy); + player.Enemy.Effects.Add("Freezing"); + cooldownTeam1 = 3; + } + + if (player.ToString() == "RPG.Archer") + { + Console.WriteLine("{0} use his ultimate Abilitiy Fire arrows on: {1}", player, player.Enemy); + player.Enemy.Effects.Add("Fire arrows"); + cooldownTeam1 = 3; + } + } + else + { + player.Enemy.HP = player.Enemy.HP - player.Strong; + Console.WriteLine("{0} deal damage to {1} : {2}", player, player.Enemy, player.Strong); + + if ((cooldownTeam1 > 0) && (cooldownTeam1 < 4)) + { + cooldownTeam1--; + } + } + } + } + + // Console.WriteLine("{0} deal damage to {1} : {2}", player, player.Enemy, player.Strong); + if (player.Enemy.HP < 0) + { + team1Points = team1Points + 1; + player.Enemy.HP = 0; + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + Console.WriteLine("{0}, win", player); + Console.WriteLine(" "); + team1Points++; + break; + } + else + { + Console.WriteLine("{0} have {1}", player, player.HP); + Console.WriteLine("{0} have {1}", player.Enemy, player.Enemy.HP); + } + + Console.WriteLine(" "); if (player.Enemy.HP > 0) { @@ -312,6 +679,6 @@ private static void Fight(Player player) Console.WriteLine(" "); } - } + }*/ } } diff --git a/RPG/Logger.cs b/RPG/Logger.cs new file mode 100644 index 0000000..4730291 --- /dev/null +++ b/RPG/Logger.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace RPG +{ + public static class Logger + { + public static void LUseAbility(Player player) + { + Console.WriteLine(player.ToString(), "{ 0} use his ultimate Abilitiy"); + } + public static void LTakeDamage(Player player, float damage) + { + Console.WriteLine(player.Enemy.ToString(), player.ToString(), damage, "{0}, take damage from {1} equal {2}"); + } + } +} diff --git a/RPG/Player.cs b/RPG/Player.cs index 558296e..6cf6adc 100644 --- a/RPG/Player.cs +++ b/RPG/Player.cs @@ -25,8 +25,9 @@ public Player(string name, Player enemy) public string Class { get; protected set; } public string Name { get; set; } public Player Enemy { get; set; } = null; - public double HP { get; set; } = rnd.Next(1, 100); - public int Strong { get; } = rnd.Next(1, 99); + public Player EnemyNumber { get; set; } = null; + public double HP { get; set; } = rnd.Next(70, 100); + public int Strong { get; } = rnd.Next(10, 20); public Abilities UsingAbility { get; set; } public List UseAbility = new List();