From 8dd076347d16b5b082ef0916a1c41f183d356068 Mon Sep 17 00:00:00 2001 From: Rokas Puzonas Date: Sun, 8 May 2022 12:31:34 +0300 Subject: [PATCH] feat: add commets and annotations for `L4.LD_24` --- .github/workflows/generate-and-upload.yml | 4 +- L4/LD_24/App_Data/Actors1.txt | 12 +++-- L4/LD_24/App_Data/Actors2.txt | 17 ++----- L4/LD_24/App_Data/Actors3.txt | 13 +++--- L4/LD_24/App_Data/Klasės.csv | 5 +- L4/LD_24/App_Data/Riktine.csv | 10 +--- L4/LD_24/App_Data/Trūkstami.csv | 4 +- L4/LD_24/Code/Actor.cs | 31 +++++++++++++ L4/LD_24/Code/Hero.cs | 29 ++++++++++++ L4/LD_24/Code/InOutUtils.cs | 42 ++++++++++++++++- L4/LD_24/Code/NPC.cs | 20 ++++++++ L4/LD_24/Code/TaskUtils.cs | 40 ++++++++++++++++ L4/LD_24/Forma1.aspx.cs | 3 ++ L4/LD_24/Forma1Utils.cs | 54 ++++++++++++++-------- L4/LD_24/LD_24.csproj | 14 +++--- L4/LD_24/interface-scheme.png | Bin 0 -> 7216 bytes L4/LD_24/tests/1/inputs/Actors1.txt | 3 ++ L4/LD_24/tests/1/inputs/Actors2.txt | 7 +++ L4/LD_24/tests/1/inputs/Actors3.txt | 7 +++ L4/LD_24/tests/1/outputs/Klasės.csv | 5 ++ L4/LD_24/tests/1/outputs/Riktine.csv | 7 +++ L4/LD_24/tests/1/outputs/Trūkstami.csv | 2 + L4/LD_24/tests/1/outputs/web.png | Bin 0 -> 31875 bytes L4/LD_24/tests/2/inputs/Actors1.txt | 7 +++ L4/LD_24/tests/2/inputs/Actors2.txt | 5 ++ L4/LD_24/tests/2/inputs/Actors3.txt | 7 +++ L4/LD_24/tests/2/outputs/Klasės.csv | 5 ++ L4/LD_24/tests/2/outputs/Riktine.csv | 2 + L4/LD_24/tests/2/outputs/Trūkstami.csv | 2 + L4/LD_24/tests/2/outputs/web.png | Bin 0 -> 34680 bytes L4/LD_24Tests/screenshot1.png | Bin 0 -> 11765 bytes report.toml | 50 ++++++++++++++++++-- 32 files changed, 342 insertions(+), 65 deletions(-) create mode 100644 L4/LD_24/interface-scheme.png create mode 100644 L4/LD_24/tests/1/inputs/Actors1.txt create mode 100644 L4/LD_24/tests/1/inputs/Actors2.txt create mode 100644 L4/LD_24/tests/1/inputs/Actors3.txt create mode 100644 L4/LD_24/tests/1/outputs/Klasės.csv create mode 100644 L4/LD_24/tests/1/outputs/Riktine.csv create mode 100644 L4/LD_24/tests/1/outputs/Trūkstami.csv create mode 100644 L4/LD_24/tests/1/outputs/web.png create mode 100644 L4/LD_24/tests/2/inputs/Actors1.txt create mode 100644 L4/LD_24/tests/2/inputs/Actors2.txt create mode 100644 L4/LD_24/tests/2/inputs/Actors3.txt create mode 100644 L4/LD_24/tests/2/outputs/Klasės.csv create mode 100644 L4/LD_24/tests/2/outputs/Riktine.csv create mode 100644 L4/LD_24/tests/2/outputs/Trūkstami.csv create mode 100644 L4/LD_24/tests/2/outputs/web.png create mode 100644 L4/LD_24Tests/screenshot1.png diff --git a/.github/workflows/generate-and-upload.yml b/.github/workflows/generate-and-upload.yml index 67fac49..3cde591 100644 --- a/.github/workflows/generate-and-upload.yml +++ b/.github/workflows/generate-and-upload.yml @@ -16,6 +16,8 @@ on: - 'L2/LD_24/**' - 'L3/LD_24/**' - 'L3/LD_24Tests/**' + - 'L4/LD_24/**' + - 'L4/LD_24Tests/**' jobs: generate-and-upload: @@ -24,7 +26,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Generate report - uses: RokasPuzonas/ktu-oop-report-generator@v2.0.8 + uses: RokasPuzonas/ktu-oop-report-generator@v2.0.9 with: dotnet-version: ${{ env.DOTNET_VERSION }} config-filename: ${{ env.CONFIG_FILENAME }} diff --git a/L4/LD_24/App_Data/Actors1.txt b/L4/LD_24/App_Data/Actors1.txt index 2a02e69..56fe628 100644 --- a/L4/LD_24/App_Data/Actors1.txt +++ b/L4/LD_24/App_Data/Actors1.txt @@ -1,5 +1,7 @@ -Orc -Amandatown -Mercedes;Warrior;24;18;13;17;Cummings, Lehner and Wilkinson -Kelvin;Warrior;5;4;17;11;Waelchi, Kulas and Bruen -Domenico;Archer;24;10;3;25;Jacobi Group +Elf +Konopelskitown +Gail;Mage;6;23;24;17;Hand, Cummerata and Wolff +Garret;Mage;5;11;1;10;13;22;14;4 +Maybelle;Hunter;21;11;25;17;24;25;5;5 +Amy;Warrior;11;5;13;15;12;4;3;23 +Natalie;Warrior;18;23;25;14;West Inc diff --git a/L4/LD_24/App_Data/Actors2.txt b/L4/LD_24/App_Data/Actors2.txt index 3b706d3..0c9c442 100644 --- a/L4/LD_24/App_Data/Actors2.txt +++ b/L4/LD_24/App_Data/Actors2.txt @@ -1,12 +1,5 @@ -Halfling -Leifberg -Clare;Warrior;17;2;7;23;14;23;19;6 -Drake;Hunter;10;15;18;3;Will - Yost -Mike;Necromancer;18;24;3;11;23;11;22;9 -Cathryn;Warrior;20;1;14;9;2;22;6;18 -Tobin;Necromancer;12;14;21;18;Hermann, Cole and Gislason -Yasmine;Archer;6;24;3;4;O'Keefe and Sons -Shanna;Necromancer;3;5;15;14;Mraz, Jenkins and Bosco -Otha;Warrior;24;22;13;15;2;13;17;13 -Cletus;Necromancer;4;8;20;16;Moen - Roberts -Katelynn;Hunter;2;24;9;9;Feil Inc +Elf +Port Sierraton +Lyla;Archer;5;10;5;21;Crona - Abshire +Ruthe;Necromancer;7;21;11;10;McDermott, Satterfield and Reichel +Berneice;Mage;6;23;23;6;Sawayn - Kovacek diff --git a/L4/LD_24/App_Data/Actors3.txt b/L4/LD_24/App_Data/Actors3.txt index 8af34a3..9101fc9 100644 --- a/L4/LD_24/App_Data/Actors3.txt +++ b/L4/LD_24/App_Data/Actors3.txt @@ -1,6 +1,7 @@ -Fairy -Celestineville -Alec;Hunter;20;14;13;4;9;6;21;23 -Summer;Warrior;6;11;23;7;19;12;19;24 -Rylan;Archer;13;17;23;20;10;10;17;7 -Gisselle;Warrior;11;10;11;5;6;16;6;12 +Orc +North Anastacio +Will;Mage;18;24;21;3;25;17;4;21 +Brennan;Mage;2;5;4;8;Lindgren, Spinka and Walsh +Jannie;Hunter;15;5;25;10;Kub - Flatley +Nicolette;Archer;11;9;3;17;16;10;18;15 +Noe;Warrior;3;7;14;16;Bradtke, Deckow and Larson diff --git a/L4/LD_24/App_Data/Klasės.csv b/L4/LD_24/App_Data/Klasės.csv index bbc2a53..91aa36a 100644 --- a/L4/LD_24/App_Data/Klasės.csv +++ b/L4/LD_24/App_Data/Klasės.csv @@ -1,4 +1,5 @@ -Warrior -Archer +Mage Hunter +Warrior +Archer Necromancer diff --git a/L4/LD_24/App_Data/Riktine.csv b/L4/LD_24/App_Data/Riktine.csv index 77ad195..e3ce63c 100644 --- a/L4/LD_24/App_Data/Riktine.csv +++ b/L4/LD_24/App_Data/Riktine.csv @@ -1,8 +1,2 @@ -Halfling;Leifberg;Clare;Warrior;17;2;7;23;14;23;19;6 -Fairy;Celestineville;Summer;Warrior;6;11;23;7;19;12;19;24 -Fairy;Celestineville;Alec;Hunter;20;14;13;4;9;6;21;23 -Halfling;Leifberg;Mike;Necromancer;18;24;3;11;23;11;22;9 -Orc;Amandatown;Domenico;Archer;24;10;3;25;Jacobi Group -Halfling;Leifberg;Yasmine;Archer;6;24;3;4;O'Keefe and Sons -Halfling;Leifberg;Katelynn;Hunter;2;24;9;9;Feil Inc -Orc;Amandatown;Mercedes;Warrior;24;18;13;17;Cummings, Lehner and Wilkinson +Orc;North Anastacio;Brennan;Mage;2;5;4;8;Lindgren, Spinka and Walsh +Elf;Port Sierraton;Lyla;Archer;5;10;5;21;Crona - Abshire diff --git a/L4/LD_24/App_Data/Trūkstami.csv b/L4/LD_24/App_Data/Trūkstami.csv index 1d684be..c65238f 100644 --- a/L4/LD_24/App_Data/Trūkstami.csv +++ b/L4/LD_24/App_Data/Trūkstami.csv @@ -1,2 +1,2 @@ -Orc -Fairy + + diff --git a/L4/LD_24/Code/Actor.cs b/L4/LD_24/Code/Actor.cs index 9f94814..651d80b 100644 --- a/L4/LD_24/Code/Actor.cs +++ b/L4/LD_24/Code/Actor.cs @@ -5,15 +5,42 @@ using System.Web; namespace LD_24.Code { + /// + /// Abstract actor class + /// public abstract class Actor { + /// + /// Race of actor + /// public string Race { get; set; } + /// + /// Starting town of actor + /// public string StartingTown { get; set; } + /// + /// Name of actor + /// public string Name { get; set; } + /// + /// Class of actor + /// public string Class { get; set; } + /// + /// Health points of actor + /// public int Health { get; set; } + /// + /// Mana points of actor + /// public int Mana { get; set; } + /// + /// Attack points of actor + /// public int Attack { get; set; } + /// + /// Defense points of actor + /// public int Defense { get; set; } public Actor(string race, string startingTown, string name, string @class, int health, int mana, int attack, int defense) @@ -28,6 +55,10 @@ namespace LD_24.Code Defense = defense; } + /// + /// Serialize an actor into a valid CSV line + /// + /// A string representing the whole actor public abstract string ToCSVLine(); } } \ No newline at end of file diff --git a/L4/LD_24/Code/Hero.cs b/L4/LD_24/Code/Hero.cs index ada81ef..29bc885 100644 --- a/L4/LD_24/Code/Hero.cs +++ b/L4/LD_24/Code/Hero.cs @@ -5,11 +5,26 @@ using System.Web; namespace LD_24.Code { + /// + /// Class for a single hero + /// public class Hero : Actor, IComparable, IEquatable { + /// + /// Power points of hero + /// public int Power { get; set; } + /// + /// Agility points of hero + /// public int Agility { get; set; } + /// + /// Intellect points of hero + /// public int Intellect { get; set; } + /// + /// Special points of hero + /// public int Special { get; set; } public Hero(string race, string startingTown, string name, string @class, int health, int mana, int attack, int defense, int power, int agility, int intellect, int special) : base(race, startingTown, name, @class, health, mana, attack, defense) @@ -20,16 +35,30 @@ namespace LD_24.Code Special = special; } + /// + /// Compare hero to hero by intellect + /// + /// + /// public int CompareTo(Hero other) { return Intellect.CompareTo(other.Intellect); } + /// + /// Check if 2 heros have the same intellect + /// + /// + /// public bool Equals(Hero other) { return Intellect.Equals(other.Intellect); } + /// + /// Serialize a hero to a CSV line + /// + /// public override string ToCSVLine() { return string.Join(";", Race, StartingTown, Name, Class, Health, Mana, Attack, Defense, Power, Agility, Intellect, Special); diff --git a/L4/LD_24/Code/InOutUtils.cs b/L4/LD_24/Code/InOutUtils.cs index b424f0a..d5a1d33 100644 --- a/L4/LD_24/Code/InOutUtils.cs +++ b/L4/LD_24/Code/InOutUtils.cs @@ -9,12 +9,20 @@ using System.Text; namespace LD_24.Code { + /// + /// Utility class for reading/writing to files + /// public static class InOutUtils { private static readonly List Races = new List { "Human", "Orc", "Elf", "Dwarf", "Fairy", "Halfling" }; private static readonly List Classess = new List { "Warrior", "Hunter", "Archer", "Mage", "Necromancer" }; private static readonly Faker faker = new Faker(); + /// + /// Read line by lines from a file + /// + /// Target file + /// Lines public static IEnumerable ReadLines(string filename) { using (var reader = new StreamReader(filename)) @@ -31,6 +39,12 @@ namespace LD_24.Code } } + /// + /// Read actors from a file + /// + /// Target file + /// A list of actors + /// Throws if a given line in a file is incorrect public static List ReadActors(string filename) { var actors = new List(); @@ -68,13 +82,17 @@ namespace LD_24.Code return actors; } + /// + /// Generate file with actors + /// + /// Target file public static void GenerateFakeActors(string filename) { using (var writer = new StreamWriter(filename)) { writer.WriteLine(faker.PickRandom(Races)); writer.WriteLine(faker.Address.City()); - int count = faker.Random.Number(2, 10); + int count = faker.Random.Number(1, 5); for (int i = 0; i < count; i++) { string name = faker.Name.FirstName(); @@ -100,6 +118,13 @@ namespace LD_24.Code } } + /// + /// Read all files from a directory that have actors + /// + /// + /// + /// + /// public static List ReadActorsDir(string directory, string pattern = "*.txt") { if (!Directory.Exists(directory)) @@ -114,6 +139,11 @@ namespace LD_24.Code return merged; } + /// + /// Writes a list of classes to a file + /// + /// Target file + /// Target classes public static void PrintClassesCSV(string filename, List classes) { using (var writer = new StreamWriter(filename, false, Encoding.UTF8)) @@ -125,6 +155,11 @@ namespace LD_24.Code } } + /// + /// Prints missing actors to a file + /// + /// Target file + /// Missing actor race names public static void PrintMissingActors(string filename, Tuple, List> missingActors) { using (var writer = new StreamWriter(filename, false, Encoding.UTF8)) @@ -134,6 +169,11 @@ namespace LD_24.Code } } + /// + /// Prints a team of actors to a file + /// + /// Target file + /// Target actors public static void PrintTeam(string filename, List team) { using (var writer = new StreamWriter(filename, false, Encoding.UTF8)) diff --git a/L4/LD_24/Code/NPC.cs b/L4/LD_24/Code/NPC.cs index e0d37f4..2d33b94 100644 --- a/L4/LD_24/Code/NPC.cs +++ b/L4/LD_24/Code/NPC.cs @@ -5,8 +5,14 @@ using System.Web; namespace LD_24.Code { + /// + /// Class for storing a single NPC + /// public class NPC : Actor, IComparable, IEquatable { + /// + /// blah blah blah blah + /// public string Guild { get; set; } public NPC(string race, string startingTown, string name, string @class, int health, int mana, int attack, int defense, string guild) : base(race, startingTown, name, @class, health, mana, attack, defense) @@ -14,16 +20,30 @@ namespace LD_24.Code Guild = guild; } + /// + /// blah blah + /// + /// + /// public int CompareTo(NPC other) { return Attack.CompareTo(other.Attack); } + /// + /// blah blah blah + /// + /// + /// public bool Equals(NPC other) { return Attack.Equals(other.Attack); } + /// + /// blah blah? + /// + /// public override string ToCSVLine() { return string.Join(";", Race, StartingTown, Name, Class, Health, Mana, Attack, Defense, Guild); diff --git a/L4/LD_24/Code/TaskUtils.cs b/L4/LD_24/Code/TaskUtils.cs index f22742e..aea4e5d 100644 --- a/L4/LD_24/Code/TaskUtils.cs +++ b/L4/LD_24/Code/TaskUtils.cs @@ -5,8 +5,16 @@ using System.Web; namespace LD_24.Code { + /// + /// Utility class for storing unrelated methods + /// public static class TaskUtils { + /// + /// Find the actors which have the most health by class + /// + /// + /// public static Dictionary FindMostHealthByClass(List actors) { Dictionary mostHealth = new Dictionary(); @@ -23,6 +31,11 @@ namespace LD_24.Code return mostHealth; } + /// + /// Find all unique classes from a list of actors + /// + /// + /// public static List FindAllClasses(List actors) { List result = new List(); @@ -36,6 +49,11 @@ namespace LD_24.Code return result; } + /// + /// Find all unique races from a list of actors + /// + /// + /// public static List FindAllRaces(List actors) { List races = new List(); @@ -49,6 +67,11 @@ namespace LD_24.Code return races; } + /// + /// Finds which races are missing an NPC or Hero + /// + /// + /// A tuple where Item1 is missing Heros, and Item2 is missing NPCs public static Tuple, List> FindMissingActors(List actors) { var races = FindAllRaces(actors); @@ -68,6 +91,11 @@ namespace LD_24.Code return Tuple.Create(missingHeroes, missingNPCs); } + /// + /// Find the actors which have the most health in their respective classes + /// + /// + /// public static List FilterMostHealthByClass(List actors) { List filtered = new List(); @@ -82,6 +110,12 @@ namespace LD_24.Code return filtered; } + /// + /// Filter out heros which, don't meet the min intellect (exclusively) + /// + /// + /// + /// public static List FilterHeroesByIntellect(List actors, int minIntellect) { List filtered = new List(); @@ -95,6 +129,12 @@ namespace LD_24.Code return filtered; } + /// + /// Filter out NPC which, don't meet the max attack (exclusively) + /// + /// + /// + /// public static List FilterNPCsByAttack(List actors, int maxAttack) { List filtered = new List(); diff --git a/L4/LD_24/Forma1.aspx.cs b/L4/LD_24/Forma1.aspx.cs index 898b3f7..1b2897c 100644 --- a/L4/LD_24/Forma1.aspx.cs +++ b/L4/LD_24/Forma1.aspx.cs @@ -10,6 +10,9 @@ using System.Diagnostics; namespace LD_24 { + /// + /// Main Form + /// public partial class Forma1 : System.Web.UI.Page { private List actors = null; diff --git a/L4/LD_24/Forma1Utils.cs b/L4/LD_24/Forma1Utils.cs index d07ce12..9732e60 100644 --- a/L4/LD_24/Forma1Utils.cs +++ b/L4/LD_24/Forma1Utils.cs @@ -9,7 +9,15 @@ namespace LD_24 { public partial class Forma1 : System.Web.UI.Page { - public static IEnumerable> ShowTable(Table table, IEnumerable list, params string[] columns) + /// + /// Show a table to the Web UI + /// + /// + /// + /// + /// + /// + public static IEnumerable> ShowTable(Table table, IEnumerable list, params string[] columns) { TableHeaderRow header = new TableHeaderRow(); foreach (string column in columns) @@ -22,7 +30,7 @@ namespace LD_24 foreach (T item in list) { TableRow row = new TableRow(); - yield return Tuple.Create(item, row); + yield return Tuple.Create(item, row.Cells); table.Rows.Add(row); noRows = false; } @@ -35,33 +43,43 @@ namespace LD_24 } } + /// + /// Show a list of actors in a table + /// + /// + /// public static void ShowActors(Table table, IEnumerable actors) { foreach (var tuple in ShowTable(table, actors, "Rasė", "Miestas", "Vardas", "Klasė", "Gyvybė", "Mana", "Žala", "Šarvai")) { - Actor actor = tuple.Item1; - TableRow row = tuple.Item2; - row.Cells.Add(new TableCell { Text = actor.Race }); - row.Cells.Add(new TableCell { Text = actor.StartingTown }); - row.Cells.Add(new TableCell { Text = actor.Name }); - row.Cells.Add(new TableCell { Text = actor.Class }); - row.Cells.Add(new TableCell { Text = actor.Health.ToString() }); - row.Cells.Add(new TableCell { Text = actor.Mana.ToString() }); - row.Cells.Add(new TableCell { Text = actor.Attack.ToString() }); - row.Cells.Add(new TableCell { Text = actor.Defense.ToString() }); + var actor = tuple.Item1; + var cells = tuple.Item2; + cells.Add(new TableCell { Text = actor.Race }); + cells.Add(new TableCell { Text = actor.StartingTown }); + cells.Add(new TableCell { Text = actor.Name }); + cells.Add(new TableCell { Text = actor.Class }); + cells.Add(new TableCell { Text = actor.Health.ToString() }); + cells.Add(new TableCell { Text = actor.Mana.ToString() }); + cells.Add(new TableCell { Text = actor.Attack.ToString() }); + cells.Add(new TableCell { Text = actor.Defense.ToString() }); } } + /// + /// Show a list of healthy actors to a table + /// + /// + /// public static void ShowHealthyActors(Table table, IEnumerable actors) { foreach (var tuple in ShowTable(table, actors, "Vardas", "Rasė", "Klasė", "Gyvybė")) { - Actor actor = tuple.Item1; - TableRow row = tuple.Item2; - row.Cells.Add(new TableCell { Text = actor.Name }); - row.Cells.Add(new TableCell { Text = actor.Race }); - row.Cells.Add(new TableCell { Text = actor.Class }); - row.Cells.Add(new TableCell { Text = actor.Health.ToString() }); + var actor = tuple.Item1; + var cells = tuple.Item2; + cells.Add(new TableCell { Text = actor.Name }); + cells.Add(new TableCell { Text = actor.Race }); + cells.Add(new TableCell { Text = actor.Class }); + cells.Add(new TableCell { Text = actor.Health.ToString() }); } } } diff --git a/L4/LD_24/LD_24.csproj b/L4/LD_24/LD_24.csproj index 0b2d286..584f4fb 100644 --- a/L4/LD_24/LD_24.csproj +++ b/L4/LD_24/LD_24.csproj @@ -71,9 +71,6 @@ - - - @@ -97,9 +94,6 @@ - - - Web.config @@ -108,7 +102,13 @@ Web.config - + + + + + + + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) diff --git a/L4/LD_24/interface-scheme.png b/L4/LD_24/interface-scheme.png new file mode 100644 index 0000000000000000000000000000000000000000..71794d81f546091cc3dca5f3acf5309b8a4c78d6 GIT binary patch literal 7216 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 literal 0 HcmV?d00001 diff --git a/L4/LD_24/tests/1/inputs/Actors1.txt b/L4/LD_24/tests/1/inputs/Actors1.txt new file mode 100644 index 0000000..bc4b585 --- /dev/null +++ b/L4/LD_24/tests/1/inputs/Actors1.txt @@ -0,0 +1,3 @@ +Elf +Padbergborough +Verla;Warrior;16;23;16;23;21;12;2;10 diff --git a/L4/LD_24/tests/1/inputs/Actors2.txt b/L4/LD_24/tests/1/inputs/Actors2.txt new file mode 100644 index 0000000..2e81a0d --- /dev/null +++ b/L4/LD_24/tests/1/inputs/Actors2.txt @@ -0,0 +1,7 @@ +Dwarf +Verdiebury +Toney;Hunter;20;2;9;11;13;6;17;16 +Andreanne;Warrior;14;25;6;23;Rempel LLC +Octavia;Necromancer;16;20;13;14;Considine, Runte and Mosciski +Ocie;Warrior;14;16;22;7;14;3;3;18 +Vicente;Hunter;16;20;24;3;Farrell, Watsica and O'Keefe diff --git a/L4/LD_24/tests/1/inputs/Actors3.txt b/L4/LD_24/tests/1/inputs/Actors3.txt new file mode 100644 index 0000000..97e60dd --- /dev/null +++ b/L4/LD_24/tests/1/inputs/Actors3.txt @@ -0,0 +1,7 @@ +Orc +East Chelseyberg +Shaina;Archer;20;2;23;1;Wintheiser, Heidenreich and Hansen +Lucie;Archer;12;16;14;2;9;5;19;15 +Doyle;Archer;12;14;18;3;10;10;18;1 +Amir;Mage;15;9;16;2;Steuber Group +Muhammad;Necromancer;2;19;12;2;3;7;22;2 diff --git a/L4/LD_24/tests/1/outputs/Klasės.csv b/L4/LD_24/tests/1/outputs/Klasės.csv new file mode 100644 index 0000000..e919372 --- /dev/null +++ b/L4/LD_24/tests/1/outputs/Klasės.csv @@ -0,0 +1,5 @@ +Warrior +Hunter +Necromancer +Archer +Mage diff --git a/L4/LD_24/tests/1/outputs/Riktine.csv b/L4/LD_24/tests/1/outputs/Riktine.csv new file mode 100644 index 0000000..32fecea --- /dev/null +++ b/L4/LD_24/tests/1/outputs/Riktine.csv @@ -0,0 +1,7 @@ +Elf;Padbergborough;Verla;Warrior;16;23;16;23;21;12;2;10 +Dwarf;Verdiebury;Ocie;Warrior;14;16;22;7;14;3;3;18 +Dwarf;Verdiebury;Toney;Hunter;20;2;9;11;13;6;17;16 +Orc;East Chelseyberg;Doyle;Archer;12;14;18;3;10;10;18;1 +Orc;East Chelseyberg;Lucie;Archer;12;16;14;2;9;5;19;15 +Orc;East Chelseyberg;Muhammad;Necromancer;2;19;12;2;3;7;22;2 +Dwarf;Verdiebury;Andreanne;Warrior;14;25;6;23;Rempel LLC diff --git a/L4/LD_24/tests/1/outputs/Trūkstami.csv b/L4/LD_24/tests/1/outputs/Trūkstami.csv new file mode 100644 index 0000000..f14e63e --- /dev/null +++ b/L4/LD_24/tests/1/outputs/Trūkstami.csv @@ -0,0 +1,2 @@ + +Elf diff --git a/L4/LD_24/tests/1/outputs/web.png b/L4/LD_24/tests/1/outputs/web.png new file mode 100644 index 0000000000000000000000000000000000000000..156f5b318775a140e56dce9bf1eb1f0ece25a812 GIT binary patch literal 31875 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 A{{R30 literal 0 HcmV?d00001 diff --git a/L4/LD_24/tests/2/inputs/Actors1.txt b/L4/LD_24/tests/2/inputs/Actors1.txt new file mode 100644 index 0000000..56fe628 --- /dev/null +++ b/L4/LD_24/tests/2/inputs/Actors1.txt @@ -0,0 +1,7 @@ +Elf +Konopelskitown +Gail;Mage;6;23;24;17;Hand, Cummerata and Wolff +Garret;Mage;5;11;1;10;13;22;14;4 +Maybelle;Hunter;21;11;25;17;24;25;5;5 +Amy;Warrior;11;5;13;15;12;4;3;23 +Natalie;Warrior;18;23;25;14;West Inc diff --git a/L4/LD_24/tests/2/inputs/Actors2.txt b/L4/LD_24/tests/2/inputs/Actors2.txt new file mode 100644 index 0000000..0c9c442 --- /dev/null +++ b/L4/LD_24/tests/2/inputs/Actors2.txt @@ -0,0 +1,5 @@ +Elf +Port Sierraton +Lyla;Archer;5;10;5;21;Crona - Abshire +Ruthe;Necromancer;7;21;11;10;McDermott, Satterfield and Reichel +Berneice;Mage;6;23;23;6;Sawayn - Kovacek diff --git a/L4/LD_24/tests/2/inputs/Actors3.txt b/L4/LD_24/tests/2/inputs/Actors3.txt new file mode 100644 index 0000000..9101fc9 --- /dev/null +++ b/L4/LD_24/tests/2/inputs/Actors3.txt @@ -0,0 +1,7 @@ +Orc +North Anastacio +Will;Mage;18;24;21;3;25;17;4;21 +Brennan;Mage;2;5;4;8;Lindgren, Spinka and Walsh +Jannie;Hunter;15;5;25;10;Kub - Flatley +Nicolette;Archer;11;9;3;17;16;10;18;15 +Noe;Warrior;3;7;14;16;Bradtke, Deckow and Larson diff --git a/L4/LD_24/tests/2/outputs/Klasės.csv b/L4/LD_24/tests/2/outputs/Klasės.csv new file mode 100644 index 0000000..91aa36a --- /dev/null +++ b/L4/LD_24/tests/2/outputs/Klasės.csv @@ -0,0 +1,5 @@ +Mage +Hunter +Warrior +Archer +Necromancer diff --git a/L4/LD_24/tests/2/outputs/Riktine.csv b/L4/LD_24/tests/2/outputs/Riktine.csv new file mode 100644 index 0000000..e3ce63c --- /dev/null +++ b/L4/LD_24/tests/2/outputs/Riktine.csv @@ -0,0 +1,2 @@ +Orc;North Anastacio;Brennan;Mage;2;5;4;8;Lindgren, Spinka and Walsh +Elf;Port Sierraton;Lyla;Archer;5;10;5;21;Crona - Abshire diff --git a/L4/LD_24/tests/2/outputs/Trūkstami.csv b/L4/LD_24/tests/2/outputs/Trūkstami.csv new file mode 100644 index 0000000..c65238f --- /dev/null +++ b/L4/LD_24/tests/2/outputs/Trūkstami.csv @@ -0,0 +1,2 @@ + + diff --git a/L4/LD_24/tests/2/outputs/web.png b/L4/LD_24/tests/2/outputs/web.png new file mode 100644 index 0000000000000000000000000000000000000000..b71cbb2a065d31479658b294aab1871d809ec2bf GIT binary patch literal 34680 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%0A}#fj)fo4D0G2Lro3SW`syd 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%0AXsiR)8X5b6Vl(K0o9aq3~vZ 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 literal 0 HcmV?d00001 diff --git a/report.toml b/report.toml index a8b3f15..3048e1b 100644 --- a/report.toml +++ b/report.toml @@ -13,7 +13,7 @@ guide = """ kad neįmanoma susitiki. """ problem = """ -LD_24. Susitikimas. +LD_24. **Susitikimas.** Grupė draugų nusprendė susitikti mieste, o po to kartu eiti valgyti picos. Bet tuomet jie susiginčijo, kur geriausia susitikti, ir kurioje picerijoje valgyti. @@ -58,7 +58,7 @@ guide = """ * Spausti "Atrinkti" mygtuką """ problem = """ -LD_24. Detalės. +LD_24. **Detalės.** Internetinėje parduotuvėje pirkėjai užsisakinėja robotų gamybai reikalingus įtaisus. Suraskite populiariausią įtaisą, kiek tokių įtaisų parduota ir už @@ -99,7 +99,7 @@ tests_screenshots = [ "L3/LD_24Tests/screenshot3.PNG" ] problem = """ -LD_24. Detalės. +LD_24. **Detalės.** Internetinėje parduotuvėje pirkėjai užsisakinėja robotų gamybai reikalingus įtaisus. Suraskite populiariausią įtaisą, kiek tokių įtaisų parduota ir už @@ -121,6 +121,50 @@ didesnė kaip k eurų (n ir k įvedami klaviatūra). [[sections]] title = "Polimorfizmas ir išimčių valdymas (L4)" +project = "L4/LD_24" +tests_project = "L4/LD_24Tests" +interface_scheme = "L4/LD_24/interface-scheme.png" +guide = """ +* Atsidaryti tinklalapį +* Įvesti minimalus herojaus intelekto kiekį +* Įvesti maksimalus NPC žalos kiekį +* Spausti "Vykdyti" mygtuką +""" +tests_screenshots = [ + "L4/LD_24Tests/screenshot1.png" +] +problem = """ +U4_24. **Kompiuterinis žaidimas.** + +Žaidimo pasaulyje yra dviejų tipų veikėjai - žaidėjo valdomi herojai bei +kompiuterio valdomi „NPC“ (non playable character). Sugrupavote žaidimo veikėjus pagal rases, ir surašėte +jų duomenis į skirtingus failus. Duomenų formatas toks: pirmoje eilutėje – rasės pavadinimas. Antroje – +pradinis miestas. Toliau informacija apie žaidimo veikėjus. Sukurkite abstrakčią klasę „Actor“ (savybės - +vardas, klasė, gyvybės taškai, mana, žalos taškai, gynybos taškai), kurią paveldės klasės “Hero” (savybės – +jėga, vikrumas, intelektas, ypatinga galia), “NPC” (savybė – gildija). + +* Raskite kiekvienos klasės daugiausiai gyvybės taškų turintį veikėją, ekrane atspausdinkite jo vardą, +rasę, klasę ir gyvybės taškų kiekį. +* Sudarykite visų veikėjų klasių sąrašą ir įrašykite į failą „Klasės.csv“ . +* Norite, jog kiekviena rasė turėtų bent po vieną kiekvienos klasės herojų ir NPC. Raskite, kokių +klasių herojų ar NPC „trūksta“ kiekvienai rasei. Į failą „Trūkstami.csv“ įrašykite kiekvienos rasės +pavadinimą, trūkstamų herojų klasių sąrašą, trūkstamų NPC klasių sąrašą. +* Sudarykite ir surikiuokite bendrą veikėjų rinktinę. Į šią rinktinę patenka herojai, jei jų intelekto +reikšmė viršija nurodytą dydį. Į šią rinktinę patenka NPC, jei jų žalos taškai neviršija nurodyto +dydžio. Herojus rikiuokite pagal intelektą, o NPC – pagal žalos taškus. Rezultatus įrašykite į failą +„Rinktine.csv“. +""" [[sections]] title = "Deklaratyvusis programavimas (L5)" +problem = """ +LDD_24. **Leidėjai.** + +Žmonės užsisako spaudą. Užsakymas vyksta metų ribose. Pirmoje failo eilutėje +nurodyta įvedimo data (failų daug), o tolesnėse eilutėse nurodyta prenumeratoriaus pavardė, adresas, +laikotarpio pradžia (nurodyta sveiku skaičiumi 1..12), laikotarpio ilgis, leidinio kodas, leidinių kiekis. +Atskirame faile duota tokia informacija apie leidinius: kodas, pavadinimas, leidėjo pavadinimas, vieno +mėnesio kaina. Suskaičiuoti kiekvienam leidėjui nurodyto mėnesio (įvedama klaviatūra) pajamas. +Atspausdinkite leidėjų pajamas, surikiuotas pagal dydį ir leidėjų pavadinimus, nurodant ir leidėjų +leidinius su jų atneštomis pajamomis. Leidėjų pavadinimai neturi kartotis. +"""