master
Peter Resch 5 years ago
parent 06c418021a
commit 966de05ae8

@ -8,7 +8,8 @@ ArgResults argResults;
void main(List<String> arguments) {
final parser = ArgParser()
..addOption('day', abbr: 'd', help: 'Select the day') //, callback: (day) => print('the day is aoc202012$day'))
..addFlag('list', abbr: 'l', help: 'List available days', callback: (_) => aoc2020.list());
..addFlag('list', abbr: 'l', help: 'List available days', callback: (_) => aoc2020.list())
..addFlag('runAll', abbr: 'r', help: 'Run all available days', callback: (_) => aoc2020.runAll());
argResults = parser.parse(arguments);
// final paths = argResults.rest;
// print('paths: ${paths}!');

@ -14,6 +14,25 @@ class aoc2020 {
];
static void list() async {
print('Days available:');
for (var index = 0; index < aocDays.length; index++) {
var aocReflect = reflect(aocDays[index]);
var classString = aocReflect.toString().split("'")[1];
print('${index + 1} : ${classString ?? 'null'}');
// var myclass = aocDays[index];
// await myclass.a(test: true);
// await myclass.b(test: true);
// print('$index : ${myclass.answerA ?? 'null'}');
// print('$index : ${myclass.answerB ?? 'null'}');
// await myclass.a();
// await myclass.b();
// print('$index : ${myclass.answerA ?? 'null'}');
// print('$index : ${myclass.answerB ?? 'null'}');
}
}
static void runAll() async {
print('Days available:');
for (var index = 0; index < aocDays.length; index++) {
var aocReflect = reflect(aocDays[index]);
@ -23,12 +42,12 @@ class aoc2020 {
var myclass = aocDays[index];
await myclass.a(test: true);
await myclass.b(test: true);
print('$index : ${myclass.answerA ?? 'null'}');
print('$index : ${myclass.answerB ?? 'null'}');
print('$classString A Test : ${myclass.answerA ?? 'null'}');
print('$classString B Test : ${myclass.answerB ?? 'null'}');
await myclass.a();
await myclass.b();
print('$index : ${myclass.answerA ?? 'null'}');
print('$index : ${myclass.answerB ?? 'null'}');
print('$classString A : ${myclass.answerA ?? 'null'}');
print('$classString B : ${myclass.answerB ?? 'null'}');
}
}
}

@ -9,13 +9,29 @@ class AOC20201201 extends AOCBase {
print("Running 'a'" + ((test ?? false) ? 'with test' : ''));
print('$classStringTest');
var mylist = await ReadData.readFileNum(filename);
print(mylist);
answerA = 0;
for (var index1 = 0; index1 < mylist.length - 1; index1++) {
for (var index2 = index1 + 1; index2 < mylist.length; index2++) {
if (mylist[index1] + mylist[index2] == 2020) {
answerA = mylist[index1] * mylist[index2];
}
}
}
}
@override
Future<void> b({bool test}) async {
print("Running 'b'");
answerB = 1;
var filename = (test ?? false) ? classStringTest : classString;
print("Running 'b'" + ((test ?? false) ? 'with test' : ''));
print('$classStringTest');
var mylist = await ReadData.readFileNum(filename);
for (var index1 = 0; index1 < mylist.length - 1; index1++) {
for (var index2 = index1 + 1; index2 < mylist.length; index2++) {
for (var index3 = index2 + 1; index3 < mylist.length; index3++) {
if (mylist[index1] + mylist[index2] + mylist[index3] == 2020) {
answerB = mylist[index1] * mylist[index2] * mylist[index3];
}
}
}
}
}
}

@ -6,7 +6,7 @@ class ReadData {
var file = File(fileName);
var contents = <String>[];
print('open file "$fileName"');
// print('open file "$fileName"');
if (await file.exists()) {
contents = await File(fileName).readAsLines();
} else {
@ -20,7 +20,7 @@ class ReadData {
var file = File(fileName);
var contents = <num>[];
print('open file "$fileName"');
// print('open file "$fileName"');
if (await file.exists()) {
var contentStrings = await File(fileName).readAsLines();
contents = contentStrings.map(num.parse).toList();

Loading…
Cancel
Save