import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/point.dart'; import 'package:aoc2020/model/pos.dart'; import 'package:aoc2020/model/readdata.dart'; import 'package:tuple/tuple.dart'; import 'dart:core'; class AOC20201212 extends AOCBase { var mylist = []; var loc = Point(0, 0); var commands = []; void init(bool test) async { mylist = await ReadData.readFile(classString, test: test); commands = mylist.map((line) => Tuple2(line.substring(0, 1), int.parse(line.substring(1)))).toList(); } @override Future a({bool test}) async { await init(test); Pos().reset(); for (var command in commands) { switch (command.item1) { case 'L': case 'R': Pos().rotate(command); break; default: Pos().move(command); } } answerA = Pos().ns.abs() + Pos().ew.abs(); } @override Future b({bool test}) async { await init(test); Pos().reset(); for (var command in commands) { switch (command.item1) { case 'L': case 'R': Pos().rotateSec2(command); break; default: Pos().moveSec2(command); } } answerB = Pos().ns.abs() + Pos().ew.abs(); } }