using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Program { class Program { static void Main(string[] args) { //Feladat1(); Feladat2(); } static void Feladat2() { string path = @"..\..\..\Sources\dobasok.txt"; string path2 = @"..\..\..\Sources\dontesek.txt"; var dobasok = new List<int>(); var dontesek = new List<int>(); //dobasok var data = File.ReadAllText(path).Trim(); foreach (char c in data) { dobasok.Add(Convert.ToInt32($"{c}")); } //dontesek var data2 = File.ReadAllText(path2).Trim(); foreach (char c in data2) { dontesek.Add(Convert.ToInt32($"{c}")); } Jatekos alfa = new Jatekos(); alfa.Nev = "Alfa"; Jatekos beta = new Jatekos(); beta.Nev = "Beta"; Jatekos gamma = new Jatekos(); gamma.Nev = "Gamma"; List<Jatekos> jatekosok = new List<Jatekos>(); jatekosok.Add(alfa); jatekosok.Add(beta); jatekosok.Add(gamma); List<Kor> korok = new List<Kor>(); List<int> dobasokSmallerScope = new List<int>(); int jatekosCounter = 0; for (int i = 0; i < dobasok.Count; i++) { int dobas = dobasok[i]; int dontes = dontesek[i]; if (dontes == 1) { dobasokSmallerScope.Add(dobas); if (dobasokSmallerScope.Count == 5) { Kor kor = new Kor(); kor.dobasok = dobasokSmallerScope.ToArray(); kor.jatekos = jatekosok[jatekosCounter]; korok.Add(kor); dobasokSmallerScope.Clear(); if (jatekosCounter == 2) { jatekosCounter = 0; } else { jatekosCounter++; } continue; } } } // a feladat Console.WriteLine($"Teljes körök száma: {korok.Count / 3}"); // b feladat foreach (var item in korok) { } } static void Feladat1() { string path = @"..\..\..\Sources\idopontok.txt"; var idopontok = new List<Idopont>(); var data = File.ReadAllLines(path); foreach (var line in data) { var parts = line.Split(' '); Idopont idopont = new Idopont(int.Parse(parts[0]), int.Parse(parts[1])); idopontok.Add(idopont); } foreach (var idopont in idopontok) { Console.WriteLine($"{idopont.Name}, {idopont.ClockAngle()}°"); } Console.WriteLine($"Legnagyobb szögű időpont: {idopontok.OrderByDescending(x => x.Angle).First().Name}"); // nem biztos, hogy jó List<double> angleDifferences = new List<double>(); for (int i = 0; i < idopontok.Count - 1; i++) { angleDifferences.Add(Math.Abs(idopontok[i].Angle - idopontok[i + 1].Angle)); } Console.WriteLine($"Legkisebb változás: {angleDifferences.Min()}°"); var idopontok2 = new List<Idopont>(); int napok = 5; for (int i = 0; i < napok; i++) { for (int orak = 0; orak < 24; orak++) { for (int percek = 0; percek < 60; percek++) { Idopont idopont = new Idopont(orak, percek); idopont.ClockAngle(); idopontok2.Add(idopont); } } } string path2 = @"..\..\..\Sources\szogek.txt"; var data2 = File.ReadAllText(path2).Split(' '); List<double> anglesToLookFor = new List<double>(); foreach (var item in data2) { string formattedItem = item.Replace('.', ','); anglesToLookFor.Add(Double.Parse(formattedItem)); } int counter = 0; int iterations = 0; int napokCounter = 0; foreach (var item in idopontok2) { if (counter == anglesToLookFor.Count) { break; } if (item.Angle == anglesToLookFor[counter]) { counter++; } iterations++; if (iterations == 1440) { napokCounter++; } } Console.WriteLine($"{napokCounter}|{idopontok2[iterations].Name}"); } } }