Day 1
This commit is contained in:
@@ -8,7 +8,8 @@ ArgResults argResults;
|
|||||||
void main(List<String> arguments) {
|
void main(List<String> arguments) {
|
||||||
final parser = ArgParser()
|
final parser = ArgParser()
|
||||||
..addOption('day', abbr: 'd', help: 'Select the day') //, callback: (day) => print('the day is aoc202012$day'))
|
..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);
|
argResults = parser.parse(arguments);
|
||||||
// final paths = argResults.rest;
|
// final paths = argResults.rest;
|
||||||
// print('paths: ${paths}!');
|
// print('paths: ${paths}!');
|
||||||
|
|||||||
@@ -14,6 +14,25 @@ class aoc2020 {
|
|||||||
];
|
];
|
||||||
|
|
||||||
static void list() async {
|
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:');
|
print('Days available:');
|
||||||
for (var index = 0; index < aocDays.length; index++) {
|
for (var index = 0; index < aocDays.length; index++) {
|
||||||
var aocReflect = reflect(aocDays[index]);
|
var aocReflect = reflect(aocDays[index]);
|
||||||
@@ -23,12 +42,12 @@ class aoc2020 {
|
|||||||
var myclass = aocDays[index];
|
var myclass = aocDays[index];
|
||||||
await myclass.a(test: true);
|
await myclass.a(test: true);
|
||||||
await myclass.b(test: true);
|
await myclass.b(test: true);
|
||||||
print('$index : ${myclass.answerA ?? 'null'}');
|
print('$classString A Test : ${myclass.answerA ?? 'null'}');
|
||||||
print('$index : ${myclass.answerB ?? 'null'}');
|
print('$classString B Test : ${myclass.answerB ?? 'null'}');
|
||||||
await myclass.a();
|
await myclass.a();
|
||||||
await myclass.b();
|
await myclass.b();
|
||||||
print('$index : ${myclass.answerA ?? 'null'}');
|
print('$classString A : ${myclass.answerA ?? 'null'}');
|
||||||
print('$index : ${myclass.answerB ?? 'null'}');
|
print('$classString B : ${myclass.answerB ?? 'null'}');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,13 +9,29 @@ class AOC20201201 extends AOCBase {
|
|||||||
print("Running 'a'" + ((test ?? false) ? 'with test' : ''));
|
print("Running 'a'" + ((test ?? false) ? 'with test' : ''));
|
||||||
print('$classStringTest');
|
print('$classStringTest');
|
||||||
var mylist = await ReadData.readFileNum(filename);
|
var mylist = await ReadData.readFileNum(filename);
|
||||||
print(mylist);
|
for (var index1 = 0; index1 < mylist.length - 1; index1++) {
|
||||||
answerA = 0;
|
for (var index2 = index1 + 1; index2 < mylist.length; index2++) {
|
||||||
|
if (mylist[index1] + mylist[index2] == 2020) {
|
||||||
|
answerA = mylist[index1] * mylist[index2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> b({bool test}) async {
|
Future<void> b({bool test}) async {
|
||||||
print("Running 'b'");
|
var filename = (test ?? false) ? classStringTest : classString;
|
||||||
answerB = 1;
|
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 file = File(fileName);
|
||||||
var contents = <String>[];
|
var contents = <String>[];
|
||||||
|
|
||||||
print('open file "$fileName"');
|
// print('open file "$fileName"');
|
||||||
if (await file.exists()) {
|
if (await file.exists()) {
|
||||||
contents = await File(fileName).readAsLines();
|
contents = await File(fileName).readAsLines();
|
||||||
} else {
|
} else {
|
||||||
@@ -20,7 +20,7 @@ class ReadData {
|
|||||||
var file = File(fileName);
|
var file = File(fileName);
|
||||||
var contents = <num>[];
|
var contents = <num>[];
|
||||||
|
|
||||||
print('open file "$fileName"');
|
// print('open file "$fileName"');
|
||||||
if (await file.exists()) {
|
if (await file.exists()) {
|
||||||
var contentStrings = await File(fileName).readAsLines();
|
var contentStrings = await File(fileName).readAsLines();
|
||||||
contents = contentStrings.map(num.parse).toList();
|
contents = contentStrings.map(num.parse).toList();
|
||||||
|
|||||||
Reference in New Issue
Block a user