day 1 puzzle 1
This commit is contained in:
		
							
								
								
									
										108
									
								
								src/main.typ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								src/main.typ
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | ||||
| #import "@preview/cetz:0.3.1": canvas, draw | ||||
| #import "/src/utils.typ": * | ||||
|  | ||||
| #set document( | ||||
|   title: "Advent of Code 2024", | ||||
|   author: "Lord Baryhobal", | ||||
|   date: datetime.today() | ||||
| ) | ||||
| #show: template | ||||
|  | ||||
| #align(center, text(size: 2em)[*Advent of Code*]) | ||||
| #align(center, text(size: 1.5em)[*--- 2024 ---*]) | ||||
|  | ||||
| #v(1cm) | ||||
|  | ||||
| #align(center, text(size: 1.2em)[_by Lord Baryhobal_]) | ||||
|  | ||||
| #v(2cm) | ||||
|  | ||||
| /* | ||||
| #align(center, canvas({ | ||||
|   draw.merge-path( | ||||
|     { | ||||
|       draw.line((-0.5, 0), (0.5, 0), (0.5, 1)) | ||||
|       draw.arc-through((), (1.3, 0.9), (2, 1.2)) | ||||
|       draw.arc-through((), (1.3, 1.4), (0.5, 2)) | ||||
|       draw.arc-through((), (1.35, 1.8), (1.9, 1.9)) | ||||
|       draw.arc-through((), (1.3, 2.1), (0.4, 3)) | ||||
|       draw.arc-through((), (0.9, 2.7), (1.5, 2.8)) | ||||
|       draw.arc-through((), (0.5, 3.5), (0, 4.5)) | ||||
|        | ||||
|       draw.arc-through((), (-0.5, 3.5), (-1.5, 2.8)) | ||||
|       draw.arc-through((), (-0.9, 2.7), (-0.4, 3)) | ||||
|       draw.arc-through((), (-1.3, 2.1), (-1.9, 1.9)) | ||||
|       draw.arc-through((), (-1.35, 1.8), (-0.5, 2)) | ||||
|       draw.arc-through((), (-1.3, 1.4), (-2, 1.2)) | ||||
|       draw.arc-through((), (-1.3, 0.9), (-0.5, 1)) | ||||
|     }, | ||||
|     close: true, | ||||
|     fill: gradient.linear( | ||||
|       angle: 90deg, | ||||
|       rgb("#35AA48"), | ||||
|       rgb("#2C883A") | ||||
|     ), | ||||
|     stroke: none | ||||
|   ) | ||||
|   draw.rect( | ||||
|     (-0.5, 0), | ||||
|     (0.5, 0.9), | ||||
|     fill: rgb("#63584B"), | ||||
|     stroke: none | ||||
|   ) | ||||
| }))*/ | ||||
|  | ||||
|  | ||||
| #v(1fr) | ||||
|  | ||||
| #context { | ||||
|   let stars = star-state.final() | ||||
|   let star-cnt = stars.values().sum(default: 0) | ||||
|   let first-weekday = datetime( | ||||
|     year: 2024, | ||||
|     month: 12, | ||||
|     day: 1 | ||||
|   ).weekday() | ||||
|   let cells = ([],) * (first-weekday - 1) | ||||
|  | ||||
|   for i in range(1, 26) { | ||||
|     let cell = [#i] | ||||
|     if str(i) in stars.keys() { | ||||
|       cell = stack( | ||||
|         dir: ttb, | ||||
|         spacing: 0.2em, | ||||
|         cell, | ||||
|         h(3pt) + ((emoji.star,)* stars.at(str(i))).join() | ||||
|       ) | ||||
|       cell = link(label("day-" + str(i)), cell) | ||||
|     } | ||||
|  | ||||
|     cells.push(cell) | ||||
|   } | ||||
|  | ||||
|   [*Stars: #star-cnt / 50*] | ||||
|   table( | ||||
|     columns: (1fr,)*7, | ||||
|     inset: 0.8em, | ||||
|     align: center + horizon, | ||||
|     fill: (_, y) => if y > 0 and calc.rem(y, 2) == 0 {gray.lighten(70%)}, | ||||
|     table.header([*Mon*], [*Tue*], [*Wed*], [*Thu*], [*Fri*], [*Sat*], [*Sun*]), | ||||
|     ..cells | ||||
|   ) | ||||
| } | ||||
|  | ||||
| #pagebreak() | ||||
|  | ||||
| #box( | ||||
|   inset: 1em, | ||||
|   stroke: black, | ||||
|   width: 100%, | ||||
|   columns( | ||||
|     2, | ||||
|     outline( | ||||
|       indent: 1em | ||||
|     ) | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| #make-day(1, stars: 1) | ||||
		Reference in New Issue
	
	Block a user