public void RunProgramFromFile(string filename, int version) { Regex maskRe = new Regex(@"mask = ([01X]{36})"); Regex memRe = new Regex(@"mem\[(\d+)\] = (\d+)"); string mask = ""; foreach (string line in FileReader.ReadFileOfStrings(filename)) { Match maskMatch = maskRe.Match(line); if (maskMatch.Success) { mask = maskMatch.Groups[1].Value; continue; } Match memMatch = memRe.Match(line); if (memMatch.Success) { int addr = int.Parse(memMatch.Groups[1].Value); int value = int.Parse(memMatch.Groups[2].Value); if (version == 1) { Mem[addr] = ApplyMask(value, mask); } else if (version == 2) { foreach (long floating in FloatingAddresses(addr, mask)) { Mem[floating] = value; } } } } }
public void NavigateByWaypointFromFile(string filename) { foreach (string instruction in FileReader.ReadFileOfStrings(filename)) { NavigateByWaypoint(instruction); } }
public void ReadFile(string filename) { List <string> file = FileReader.ReadFileOfStrings(filename); ArrivalTime = int.Parse(file[0]); ParseSchedule(file[1]); }
public void ReadProgamFromFile(string filename) { foreach (string line in FileReader.ReadFileOfStrings(filename)) { string[] ia = line.Split(' '); instructions.Add(new Instruction(ia[0], int.Parse(ia[1]))); } }
public static List <PassportInfo> ReadPassportsFromFile(string filename) { List <PassportInfo> passportList = new List <PassportInfo>(); PassportInfo passport = new PassportInfo(); foreach (string line in FileReader.ReadFileOfStrings(filename)) { if (line == "") { passportList.Add(passport); passport = new PassportInfo(); } else { foreach (string keyvalue in line.Split(' ')) { string[] kv = keyvalue.Split(':'); switch (kv[0]) { case "byr": passport.byr = int.Parse(kv[1]); break; case "iyr": passport.iyr = int.Parse(kv[1]); break; case "eyr": passport.eyr = int.Parse(kv[1]); break; case "hgt": passport.hgt = kv[1]; break; case "hcl": passport.hcl = kv[1]; break; case "ecl": passport.ecl = kv[1]; break; case "pid": passport.pid = kv[1]; break; case "cid": passport.cid = int.Parse(kv[1]); break; } } } } passportList.Add(passport); return(passportList); }
private void ReadFile(string filename) { int y = 0; foreach (string line in FileReader.ReadFileOfStrings(filename)) { for (int x = 0; x < line.Length; x++) { Grid[new Tuple <int, int, int, int>(x, y, 0, 0)] = line[x] == '#'; } y++; } }
void ReadFile(string filename) { foreach (string line in FileReader.ReadFileOfStrings(filename)) { if (line.Contains(':')) { string[] kv = line.Split(": "); Rules[kv[0]] = kv[1]; } else if (line == "") { continue; } else { Input.Add(line); } } }
public void ReadRulesFromFile(string filename) { Regex lineRe = new Regex(@"(.*) bags contain (.*)\."); Regex bagsRe = new Regex(@"(\d+) (.*?) bags?"); Rules = new Dictionary <string, List <BagAmount> >(); foreach (string line in FileReader.ReadFileOfStrings(filename)) { Match lineMatch = lineRe.Match(line); if (!lineMatch.Success) { throw new Exception($"No bags found in line '{line}'"); } List <BagAmount> bagList = new List <BagAmount>(); foreach (Match bagMatch in bagsRe.Matches(lineMatch.Groups[2].Value)) { BagAmount bagAmount = new BagAmount(); bagAmount.Type = bagMatch.Groups[2].Value; bagAmount.Amount = int.Parse(bagMatch.Groups[1].Value); bagList.Add(bagAmount); } Rules[lineMatch.Groups[1].Value] = bagList; } }
public static int SumDeclarationsEveryoneFromFile(string filename) { return(ParseDeclarations(FileReader.ReadFileOfStrings(filename)).Select(group => group.CountWhereEveryone()).Sum()); }
public Seating(string filename) { Seats = FileReader.ReadFileOfStrings(filename).Select(s => s.ToList <char>()).ToList(); Rows = Seats.Count; Cols = Seats[0].Count; }
public long SumOfExpressionsFromFile(bool precedence, string filename) { return(FileReader.ReadFileOfStrings(filename).Select(expression => Evaluate(precedence, expression)).Sum()); }
private void ReadFile(string filename) { bool checkTickets = false; bool parseMyTicket = false; Regex fieldRe = new Regex(@"(.*): (\d+)-(\d+) or (\d+)-(\d+)"); foreach (string line in FileReader.ReadFileOfStrings(filename)) { Match match = fieldRe.Match(line); if (match.Success) { Fields[match.Groups[1].Value] = new Field(int.Parse(match.Groups[2].Value), int.Parse(match.Groups[3].Value), int.Parse(match.Groups[4].Value), int.Parse(match.Groups[5].Value)); } if (line == "your ticket:") { parseMyTicket = true; continue; } if (parseMyTicket) { foreach (string strValue in line.Split(',')) { MyTicket.Add(int.Parse(strValue)); } parseMyTicket = false; continue; } if (line == "nearby tickets:") { checkTickets = true; continue; } if (checkTickets) { bool ticketValid = true; List <int> ticket = new List <int>(); foreach (string strValue in line.Split(',')) { int value = int.Parse(strValue); bool valid = false; foreach (Field field in Fields.Values) { if (field.IsValid(value)) { valid = true; break; } } if (valid) { ticket.Add(value); } else { Errors.Add(value); ticketValid = false; } } if (ticketValid) { NearbyTickets.Add(ticket); } } } }
public void TestReadFileOfStrings() { Assert.Equal(6, FileReader.ReadFileOfStrings("input/day1.txt").Count); }
public static int CheckPasswordsFromFileToboggan(string filename) { return(FileReader.ReadFileOfStrings(filename).Count(line => ParseAndCheckToboggan(line))); }
public Toboggan(string filename) { Slope = FileReader.ReadFileOfStrings(filename); RowLength = Slope[0].Length; }
public static List <int> ReadBoardingPassesFromFile(string filename) { return(FileReader.ReadFileOfStrings(filename).Select(pass => ParseBoardingPass(pass)).ToList()); }