Pour la deuxième partie, j'ai opté pour une solution où je remplace les tuiles de base par des tuiles de 3x3
Je remplie ensuite en faisant les cellules en bordure de la map.
Note: Ce code doit être utilisée --Xms2G pour avoir une stack plus grande que celle par défaut.
publicenumPipe{V('|',Arrays.asList(Direction.N,Direction.S),newint[][]{newint[]{0,1,0},newint[]{0,1,0},newint[]{0,1,0}}),// is a vertical pipe connecting north and south.H('-',Arrays.asList(Direction.E,Direction.W),newint[][]{newint[]{0,0,0},newint[]{1,1,1},newint[]{0,0,0}}),// is a horizontal pipe connecting east and west.L('L',Arrays.asList(Direction.N,Direction.E),newint[][]{newint[]{0,1,0},newint[]{0,1,1},newint[]{0,0,0}}),// , is a 90-degree bend connecting north and east.J('J',Arrays.asList(Direction.N,Direction.W),newint[][]{newint[]{0,1,0},newint[]{1,1,0},newint[]{0,0,0}}),// is a 90-degree bend connecting north and west._7('7',Arrays.asList(Direction.S,Direction.W),newint[][]{newint[]{0,0,0},newint[]{1,1,0},newint[]{0,1,0}}),// is a 90-degree bend connecting south and west.F('F',Arrays.asList(Direction.S,Direction.E),newint[][]{newint[]{0,0,0},newint[]{0,1,1},newint[]{0,1,0}}),// is a 90-degree bend connecting south and east.D('.',Collections.emptyList(),newint[][]{newint[]{0,0,0},newint[]{0,0,0},newint[]{0,0,0}}),// is ground; there is no pipe in this tile.S('S',Arrays.asList(Direction.N,Direction.S,Direction.E,Direction.W),newint[][]{newint[]{0,1,0},newint[]{1,1,1},newint[]{0,1,0}}),// is the starting position of the// animal; there is a pipe on this// tile, but your sketch doesn't// show what shape the pipe has.;charc;List<Direction>directions;int[][]matrix;Pipe(charc,List<Direction>directions,int[][]matrix){this.c=c;this.directions=directions;this.matrix=matrix;}booleanacceptFrom(Directiond){returndirections.contains(d);}}
# Ma solution
Posté par syj . En réponse au message Advent of Code 2023 : Jour 10. Évalué à 1.
Pour la deuxième partie, j'ai opté pour une solution où je remplace les tuiles de base par des tuiles de 3x3
Je remplie ensuite en faisant les cellules en bordure de la map.
Note: Ce code doit être utilisée --Xms2G pour avoir une stack plus grande que celle par défaut.