Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace Laboratorinis_darbas_2__24_
- {
- class Program
- {
- const string CFr = "..\\..\\Trūkstami.csv";//tekstinis failas, kuriame bus spausdinami herojai su pasikartojančiomis savybėmis
- const string CFrr = "..\\..\\Klasės.csv";//tekstinis failas, kuriame bus spausdinamos herojų klasės
- const string CFrrr = "..\\..\\PradiniųDuomenųLentelė.txt";//tekstinis failas, kuriame lentelėje spausdinami pradiniai duomenys
- public const int RasiųSk = 3;
- public const int MaxHerojųSk = 1000;
- static void Main(string[] args)
- {
- Console.OutputEncoding = Encoding.UTF8;//koduotė UTF8, UTF8 standarto simboliams iššifruoti
- Rasė[] rasės = new Rasė[RasiųSk];
- KlasiųKonteineris Klasės;
- KlasiųKonteineris Trūkstamos0;
- KlasiųKonteineris Trūkstamos1;
- KlasiųKonteineris Trūkstamos2;
- rasės[0] = new Rasė("žmonės", "Šiauliai");
- rasės[1] = new Rasė("elfai", "Kaunas");
- rasės[2] = new Rasė("burtininkai", "Vilnius");
- String[] filePaths = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.csv");
- foreach (string path in filePaths)
- {
- Nuskaityti(path, rasės);
- }
- DaugiausiaiGyvybėsTaškų(rasės);
- KlasiųSąrašas(out Klasės, rasės[0]);
- KlasiųSąrašas(out Klasės, rasės[1]);
- KlasiųSąrašas(out Klasės, rasės[2]);
- Trūkstamos0 = TrūkstamosKlasės(rasės[0], Klasės);
- Trūkstamos1 = TrūkstamosKlasės(rasės[1], Klasės);
- Trūkstamos2 = TrūkstamosKlasės(rasės[2], Klasės);
- StreamWriter rašymas = new StreamWriter(CFr, false, Encoding.UTF8);
- SpausdintiTekstiniameFaileTrūkstamos(Trūkstamos0, rasės[0].HerojųRasė, rašymas);
- SpausdintiTekstiniameFaileTrūkstamos(Trūkstamos1, rasės[1].HerojųRasė, rašymas);
- SpausdintiTekstiniameFaileTrūkstamos(Trūkstamos2, rasės[2].HerojųRasė, rašymas);
- rašymas.Close();
- StreamWriter spausdinimas = new StreamWriter(CFrrr, false, Encoding.UTF8);
- SpausdintiPradiniusDuomenisLentelėje(rasės[0].HerojųRasė, rasės[0].PradinisMiestas, rasės[0], spausdinimas);
- SpausdintiPradiniusDuomenisLentelėje(rasės[1].HerojųRasė, rasės[1].PradinisMiestas, rasės[1], spausdinimas);
- SpausdintiPradiniusDuomenisLentelėje(rasės[2].HerojųRasė, rasės[2].PradinisMiestas, rasės[2], spausdinimas);
- spausdinimas.Close();
- SpausdintiTekstiniameFaileKlasės(Klasės);
- Console.Read();
- }
- private static Rasė ImtiRasęPagalMiestą(Rasė[] rasės, string pradinisMiestas)
- {
- for (int i = 0; i < RasiųSk; i++)
- {
- if (rasės[i].PradinisMiestas == pradinisMiestas)
- {
- return rasės[i];
- }
- }
- return null;
- }
- public static void Nuskaityti(string file, Rasė[] rasės)//duomenų nuskaitymo funkcija
- {
- string herojųRasė = null;
- string pradinisMiestas = null;
- using (StreamReader skaitymas = new StreamReader(@file, Encoding.UTF8))//duomenys įrašomi iš tekstinio failo
- {
- string linija = null;//duomenys skaitomi linijomis
- linija = skaitymas.ReadLine();
- if (linija != null)
- {
- herojųRasė = linija;
- linija = skaitymas.ReadLine();
- pradinisMiestas = linija;
- }
- Rasė rasė = ImtiRasęPagalMiestą(rasės, pradinisMiestas);
- while ((linija = skaitymas.ReadLine()) != null)//duomenys skaitomi iki kol linijoje nėra nieko
- {
- string[] reikšmės = linija.Split(';');// reikšmės skiriamos vienos nuo kitų ';'
- string vardas = reikšmės[0];
- string klasės_pavadinimas = reikšmės[1];
- int gyvybės_taškai = int.Parse(reikšmės[2]);
- int mana = int.Parse(reikšmės[3]);
- int žalos_taškai = int.Parse(reikšmės[4]);
- int gynybos_taškai = int.Parse(reikšmės[5]);
- int jėga = int.Parse(reikšmės[6]);
- int vikrumas = int.Parse(reikšmės[7]);
- int intelektas = int.Parse(reikšmės[8]);
- string ypatinga_galia = reikšmės[9];
- Herojus herojus = new Herojus(vardas, klasės_pavadinimas, gyvybės_taškai, mana, žalos_taškai, gynybos_taškai, jėga, vikrumas, intelektas, ypatinga_galia);
- rasė.Herojai.PridėtiHerojų(herojus);
- }
- }
- }
- private static void DaugiausiaiGyvybėsTaškų(Rasė[] Rasės)//funkcija ieškanti herojaus turinčio daugiausiai gyvybės taškų
- {
- Herojus Max;
- for (int j = 0; j < RasiųSk; j++)
- {
- Max = Rasės[j].Herojai.MaxHerojus();
- Console.WriteLine("Vardas: {0,10} Rasė: {1,14} Klasė: {2,10} Gyvybės Taškai: {3,2}", Max.Vardas, Rasės[j].HerojųRasė, Max.Klasė, Max.GyvybėsTaškai);
- }
- }
- public static void KlasiųSąrašas(out KlasiųKonteineris Klasės, Rasė Rasė)// metodas klasių sąrašui užpildyti
- {
- Klasės = new KlasiųKonteineris(10);
- for (int i = 0; i < Rasė.Herojai.Kiekis; i++)
- {
- Klasės.PridėtiKlasęJeiNeegzistuoja(Rasė.Herojai.ImtiHerojų(i).Klasė);
- }
- }
- public static KlasiųKonteineris TrūkstamosKlasės(Rasė rasė, KlasiųKonteineris Klasės)
- {
- KlasiųKonteineris Trūkstamos = new KlasiųKonteineris(10);
- for (int i = 0; i < rasė.Herojai.Kiekis; i++)
- {
- if (!Klasės.EgzistuojaKonteineryje(rasė.Herojai.ImtiHerojų(i).Klasė))
- {
- Trūkstamos.PridėtiKlasę(rasė.Herojai.ImtiHerojų(i).Klasė);
- }
- }
- return Trūkstamos;
- }
- static void SpausdintiTekstiniameFaileTrūkstamos(KlasiųKonteineris Trūkstamos, string rasė, StreamWriter rašymas)// rezultatų spausdinimas į tekstinį failą "Trūkstamos.csv"
- {
- rašymas.WriteLine("{0}:", rasė);
- if (Trūkstamos.Kiekis != 0)
- {
- for (int i = 0; i < Trūkstamos.Kiekis; i++)
- {
- rašymas.WriteLine("{0}", Trūkstamos.ImtiKlasę(i));
- }
- }
- else rašymas.WriteLine("VISI");
- }
- static void SpausdintiTekstiniameFaileKlasės(KlasiųKonteineris Klasės)// rezultatų spausdinimas į tekstinį failą "Klasės.csv"
- {
- StreamWriter rašymas = new StreamWriter(CFrr, false, Encoding.UTF8);
- if (Klasės.Kiekis != 0)
- {
- for (int i = 0; i < Klasės.Kiekis; i++)
- {
- rašymas.WriteLine("{0}", Klasės.ImtiKlasę(i));
- }
- }
- else rašymas.WriteLine("Klasių nėra");
- rašymas.Close();
- }
- static void SpausdintiPradiniusDuomenisLentelėje(string Rasė, string miestas, Rasė rasės, StreamWriter spausdinimas)//pradinių duomenų spausdinimas į lentelę tekstiniame faile
- {
- spausdinimas.WriteLine("Rasė: {0}\nPradinis Miestas: {1}", Rasė, miestas);
- const string viršus = "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\r\n"
- + "| Vardas |Klasė |Gyvybės taškai|Mana|Žalos taškai|Gynybos taškai|Jėga|Vikrumas|Intelektas|Ypatinga galia|\r\n"
- + "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _";
- spausdinimas.WriteLine(viršus);
- {
- for (int j = 0; j < rasės.Herojai.Kiekis; j++)
- {
- //kintamųjų formatavimas
- spausdinimas.WriteLine(rasės.ToString());
- }
- }
- spausdinimas.WriteLine("_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement