Skip to content

Instantly share code, notes, and snippets.

@tong92
tong92 / aoc-2021-16.js
Created March 25, 2022 13:49
aoc-2021-16.js
const hexToBits = (hex) => hex.map(parseHex).join('')
const parseHex = (h) => HexMap[h]
const HexMap = {
0:'0000',
1:'0001',
2:'0010',
3:'0011',
4:'0100',
@tong92
tong92 / .scala
Created June 5, 2020 13:11
ch2-user
case class User(name: String, friends: Set[Int] = Set()) {
def isDirectFriendOf(user: Int): Boolean = friends.contains(user)
def befriend(user: Int): User = copy(friends = friends + user)
}
case class UserWorld(users: List[User] = Nil) {
def befriend(uA: Int, uB: Int): UserWorld =
UserWorld(users.updated(uA, users(uA).befriend(uB))
.updated(uB, users(uB).befriend(uA))
)
case class Container(amount: Double = 0.0, connects: Set[Int] = Set()) {
def getAmount: Double = amount
def addWater(water: Double): Container = copy(amount = water + amount)
}
case class ContainerWorld(containers: List[Container] = Nil) {
def addWater(index: Int, water: Double): ContainerWorld = {
ContainerWorld(containers.updated(index, containers(index).addWater(water)))
}
@tong92
tong92 / ch1.scala
Last active June 5, 2020 12:18
ch1.scala
case class Container(amount: Double = 0.0, connects: Set[Int] = Set()) {
def getAmount: Double = amount
def addWater(water: Double): Container = copy(amount = water + amount)
}
case class ContainerWorld(containers: List[Container] = Nil) {
def addWater(index: Int, water: Double): ContainerWorld = {
ContainerWorld(containers.updated(index, containers(index).addWater(water)))
}
decodeMorse = function(morseCode){
return wordSpliter(morseCode)
.map(word => letterSpliter(word))
.map(letters => letterDecoder(letters))
.join(' ')
}
wordSpliter = function(morseCode){
return morseCode.trim().split(' ')
}