//Iesko zaidejo, turincio geriausia asmenini rezultata, pagal KDA santyki (nuzudymai + dalyvavimai nuzudymuose)/mirtys t.y. (K+A)/D private static void GerAsmRez(ZaidimoRatas[] zaidimai) { Turnyras[] VisiZaid = new Turnyras[MaxZaid]; int count = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < zaidimai[i].ZaidCount; j++) { if (!VisiZaid.Contains(zaidimai[i].Zaidejai[j])) { VisiZaid[count] = zaidimai[i].Zaidejai[j]; count++; } } } for (int i = 0; i < count; i++) { VisiZaid[i].Sunaik = 0; VisiZaid[i].Zuvo = 1; VisiZaid[i].Dalyvav = 0; for (int j = 0; j < 3; j++) { for (int k = 0; k < zaidimai[j].ZaidCount; k++) { if (VisiZaid[i].Pavarde == zaidimai[j].Zaidejai[k].Pavarde) { VisiZaid[i].Sunaik += zaidimai[j].Zaidejai[k].Sunaik; VisiZaid[i].Zuvo += zaidimai[j].Zaidejai[k].Zuvo; VisiZaid[i].Dalyvav += zaidimai[j].Zaidejai[k].Dalyvav; } } } } for (int i = 0; i < count; i++) { VisiZaid[i].KDA = (VisiZaid[i].Sunaik + VisiZaid[i].Dalyvav) / VisiZaid[i].Zuvo; } Turnyras GeriausiasKDA = new Turnyras(); GeriausiasKDA.KDA = 0; for (int i = 0; i < count; i++) { if (VisiZaid[i].KDA > GeriausiasKDA.KDA) { GeriausiasKDA = VisiZaid[i]; } } Console.WriteLine(); Console.WriteLine("------------------------------------------------------------------"); Console.WriteLine("----------Zaidejas-pasiekes-geriausia-asmenini-rezultata----------"); Console.WriteLine("------------------------------------------------------------------"); Console.WriteLine(" Vardas, pavarde | Komanda | Pozicija | Cempionas "); Console.WriteLine("------------------------------------------------------------------"); Console.WriteLine(" {0} {1} | {2} | {3} | {4} ", GeriausiasKDA.Vardas, GeriausiasKDA.Pavarde, GeriausiasKDA.Komanda, GeriausiasKDA.Pozicija, GeriausiasKDA.Cemp); Console.WriteLine("------------------------------------------------------------------"); }
//Iesko zaideju zaidzianciu "Top" pozicijoje ----------------------------------------------- private static void TopPozicija(ZaidimoRatas[] zaidimai) { Turnyras TinkPozicja = new Turnyras(); //susikurti operatoriu TinkPozicja.Pozicija = "Top"; //jam prsikirtu top zodeli using (StreamWriter writer = new StreamWriter(@"Top.csv")) { writer.WriteLine("RatoNr,Komanda,Pavarde,Vardas,Cempionas"); writer.WriteLine(); for (int i = 0; i < 3; i++) { writer.Write("{0}-as ratas", i + 1); for (int j = 0; j < zaidimai[i].ZaidCount; j++) { if (zaidimai[i].Zaidejai[j] == TinkPozicja) //siuncia i bool operator, nereik rasyt zaidimai[i].Zaidejai[j].Vardas, kadangi { if (i == 0) // ji palygins auskciau { writer.WriteLine(zaidimai[i].Zaidejai[j].ToString2()); // nusiuncia i to string, suraso tvarkingai, maziau rasymo } else if (zaidimai[i - 1].Zaidejai[j].Vardas != zaidimai[i].Zaidejai[j].Vardas) { writer.WriteLine(zaidimai[i].Zaidejai[j].ToString2()); } } } writer.WriteLine(); } } /*using (StreamWriter writer = new StreamWriter(@"Top.csv")) * { * writer.WriteLine("RatoNr,Komanda,Pavarde,Vardas,Cempionas"); * writer.WriteLine(); * for (int i = 0; i < 3; i++) * { * writer.Write("{0}-as ratas",i+1); * * for (int j = 0; j < zaidimai[i].ZaidCount; j++) * { * if (zaidimai[i].Zaidejai[j].Pozicija == "Top") * if (i == 0) * writer.WriteLine(zaidimai[i].Zaidejai[j].ToString2()); * //writer.WriteLine(",{0},{1},{2},{3}", zaidimai[i].Zaidejai[j].Komanda, zaidimai[i].Zaidejai[j].Pavarde, zaidimai[i].Zaidejai[j].Vardas, zaidimai[i].Zaidejai[j].Cemp); * else //if (i == 1) * if (zaidimai[i - 1].Zaidejai[j].Vardas != zaidimai[i].Zaidejai[j].Vardas) * writer.WriteLine(zaidimai[i].Zaidejai[j].ToString2()); * //writer.WriteLine(",{0},{1},{2},{3}", zaidimai[i].Zaidejai[j].Komanda, zaidimai[i].Zaidejai[j].Pavarde, zaidimai[i].Zaidejai[j].Vardas, zaidimai[i].Zaidejai[j].Cemp); * // else if (zaidimai[i - 1].Zaidejai[j].Vardas != zaidimai[i].Zaidejai[j].Vardas) * // writer.WriteLine(",{0},{1},{2},{3}", zaidimai[i].Zaidejai[j].Komanda, zaidimai[i].Zaidejai[j].Pavarde, zaidimai[i].Zaidejai[j].Vardas, zaidimai[i].Zaidejai[j].Cemp); * } * writer.WriteLine(); * } * }*/ }
public bool Equals(Turnyras turnyras) { //tikrina, ar objektas egzistuoja if (Object.ReferenceEquals(turnyras, null)) { return(false); } //Tikrina, ar tokia pati klasė if (this.GetType() != turnyras.GetType()) { return(false); } // Grąžiname true, jei objektų laukai (savybės) sutampa return(Pozicija == turnyras.Pozicija); }
//nuskaito pradinius duomenis --------------------------------------------- private static void ReadData(string file, ZaidimoRatas[] zaidimai) { string ratas = null; string data = null; using (StreamReader reader = new StreamReader(@file)) { string line = null; if ((line = reader.ReadLine()) != null) { ratas = line; } if ((line = reader.ReadLine()) != null) { data = line; } ZaidimoRatas zaidimoratas = GetZaidimoRata(zaidimai, ratas); while (null != (line = reader.ReadLine())) { string[] values = line.Split(','); string vardas = values[0]; string pavarde = values[1]; string komanda = values[2]; string pozicija = values[3]; string cemp = values[4]; int sunaik = int.Parse(values[5]); int zuvo = int.Parse(values[6]); int dalyvav = int.Parse(values[7]); Turnyras turnyras = new Turnyras(vardas, pavarde, komanda, pozicija, cemp, sunaik, zuvo, dalyvav); if (!zaidimoratas.Zaidejai.Contains(turnyras)) { zaidimoratas.AddTurnyras(turnyras); } } } }
//failo nuskaitimas private static void ReadData(out Turnyras[] turnyras, out int turnCount) //parsines sias reiksmes { turnCount = 0; //kiek is viso yra zaideju turnyras = new Turnyras[MaxZaid]; //maksimalus zaideju skaicius using (StreamReader reader = new StreamReader("Data.csv")) { string line = null; while (null != (line = reader.ReadLine())) { string[] values = line.Split(','); // kaip bus skiriama eilute string vardas = values[0]; string pavarde = values[1]; string komanda = values[2]; string pozicija = values[3]; string cemp = values[4]; int sunaik = int.Parse(values[5]); int zuvo = int.Parse(values[6]); int dalyvav = int.Parse(values[7]); Turnyras turnyr = new Turnyras(vardas, pavarde, komanda, pozicija, cemp, sunaik, zuvo, dalyvav); turnyras[turnCount++] = turnyr; //skaitliuka didina vienetu } } }
static void Main(string[] args) { ZaidimoRatas[] zaidimai = new ZaidimoRatas[3]; zaidimai[0] = new ZaidimoRatas("1"); zaidimai[1] = new ZaidimoRatas("2"); zaidimai[2] = new ZaidimoRatas("3"); string[] filePaths = Directory.GetFiles(Directory.GetCurrentDirectory(), "*new.txt");//nuskaito visus failus, siusdamas po viena i ReadData metoda foreach (string path in filePaths) { ReadData(path, zaidimai); } using (StreamWriter writer = new StreamWriter(@"PradinaiDuomenys.txt")) for (int i = 0; i < 3; i++) { writer.WriteLine("--------------------------------------------Ratas-{0}-----------------------------------------", zaidimai[i].Ratas); writer.WriteLine(); for (int j = 0; j < zaidimai[i].ZaidCount; j++) { writer.WriteLine(zaidimai[i].Zaidejai[j].ToString()); // writer.WriteLine("{0,-10} | {1,-15} | {2,-15} | {3,-10} | {4,-10} | {5,-5} | {6,-5} | {7,-5}", zaidimai[i].Zaidejai[j].Vardas, zaidimai[i].Zaidejai[j].Pavarde, zaidimai[i].Zaidejai[j].Komanda, zaidimai[i].Zaidejai[j].Pozicija, zaidimai[i].Zaidejai[j].Cemp, zaidimai[i].Zaidejai[j].Sunaik, zaidimai[i].Zaidejai[j].Zuvo, zaidimai[i].Zaidejai[j].Dalyvav); // panaudoju ToString } writer.WriteLine(); } GerAsmRez(zaidimai); UniversaliausiasCemp(zaidimai); PakiteZaidejai(zaidimai); TopPozicija(zaidimai); // suraso visas skirtingas pozicijas Turnyras[] VisiZaid = new Turnyras[MaxZaid]; int count = 0; //suraso visu triju ratu info i viena masyva for (int i = 0; i < 3; i++) { for (int j = 0; j < zaidimai[i].ZaidCount; j++) { if (!VisiZaid.Contains(zaidimai[i].Zaidejai[j])) { VisiZaid[count] = zaidimai[i].Zaidejai[j]; count++; } } } // suraso pozicijas i viena masyva string[] PozMas = new string[count]; for (int i = 0; i < count; i++) { PozMas[i] = VisiZaid[i].Pozicija; } int newcount = 0; string[] NewMas = new string[count]; for (int i = 0; i < 1; i++) { NewMas[i] = PozMas[i]; newcount++; } int a; for (int i = 0; i < count; i++) { a = 0; for (int j = 0; j < newcount; j++) { if (PozMas[i] != NewMas[j]) { a += 1; } } if (a == newcount) { NewMas[newcount] = PozMas[i]; newcount++; } } Console.WriteLine(); Console.WriteLine("Pozicijos, kurios yra:"); for (int i = 0; i < newcount; i++) { Console.WriteLine("{0}", NewMas[i]); } }
public void AddTurnyras(Turnyras turnyras) { Zaidejai[ZaidCount] = turnyras; ZaidCount++; }
public ZaidimoRatas(string ratas) { Ratas = ratas; Zaidejai = new Turnyras[MaxZaid]; }
public ZaidimoRatas(string ratas, string data) { Ratas = ratas; Data = data; Zaidejai = new Turnyras[MaxZaid]; }