Skip to content

Instantly share code, notes, and snippets.

View samwho's full-sized avatar
🦀
Still in love with Rust.

Sam Rose samwho

🦀
Still in love with Rust.
View GitHub Profile
@samwho
samwho / aoc2023-1.py
Last active December 1, 2023 22:27
aoc2023-1.py
import re
word_numbers = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
real_numbers = [str(i) for i in range(1, 10)]
numbers_re = "|".join(real_numbers + word_numbers)
first_re = rf"^.*?({numbers_re}).*$"
last_re = rf"^.*({numbers_re}).*?$"
@samwho
samwho / git_repo_size.py
Created November 25, 2023 17:35
git_repo_size.py
import re
import subprocess
DIVIDER_RE = r"^.+\s+[0-9a-f]+$"
ITEM_RE = r"^.+\s+.+\s+.*$"
def get_line_changes_over_time():
process = subprocess.Popen(
[
from typing import Optional
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
def list(l: list) -> Optional[ListNode]:
@samwho
samwho / 2.js
Created November 4, 2022 01:52
let width = 800;
let height = 800;
let xdots = 30;
let ydots = 30;
class Turtle {
constructor(position) {
this.position = position;
this.direction = createVector(0, -1);
this.color = color(255, 255, 255);
@samwho
samwho / 1.js
Created November 3, 2022 21:46
let width = 800;
let height = 600;
let particles = [];
class Particle {
constructor(position, velocity, color) {
this.position = position;
this.velocity = velocity;
this.color = color;
}
require 'set'
class Node
attr_accessor :value, :parent
def initialize(value = nil, parent = nil)
@is_word = false
@parent = parent
@value = value
@children = {}
from typing import List
class Item:
name: str
degradation: int = 1
quality_min: int = 0
quality_max: int = 50
def __init__(self, name: str, sell_in: int, quality: int):
#!/usr/bin/env python
import enum
from random import randrange
from typing import Optional
class QuestionGenerator:
def __init__(self, category: str) -> None:
self.category = category
@samwho
samwho / blackjack.py
Created April 19, 2022 10:31
Blackjack
import random
import enum
from typing import List, Optional
class Value(enum.IntEnum):
ACE = 11
TWO = 2
THREE = 3
FOUR = 4
@samwho
samwho / time.rs
Created September 8, 2020 10:48
Detecting backward jumps in time.
use std::io::stdout;
use std::{io::Write, time::SystemTime};
use std::{thread::sleep, time::Duration};
fn main() {
let sleep_duration = Duration::from_millis(1);
loop {
sleep(sleep_duration);
let now = SystemTime::now();
if let Err(e) = now.elapsed() {