Files
Advent2023/7/advent_1.py

57 lines
1.4 KiB
Python
Raw Normal View History

2023-12-07 16:32:15 +02:00
#!/usr/bin/env python
2023-12-07 22:07:17 +02:00
2023-12-07 16:32:15 +02:00
class HandClass:
def __init__(self, bid, cards):
self.bid = bid
self.cards = cards
2023-12-07 22:07:17 +02:00
self.cardnumbers = []
self.numbers = {}
2023-12-07 16:32:15 +02:00
x = [*cards]
2023-12-07 22:07:17 +02:00
for i in x:
self.cardnumbers.append(self.cardnumber(i))
if i not in self.numbers:
self.numbers[self.cardnumber(i)] = 1
else:
self.numbers[self.cardnumber(i)] += 1
x.sort(key=self.cardnumber, reverse=True)
2023-12-07 16:32:15 +02:00
self.sorted = x
2023-12-07 22:07:17 +02:00
self.handstrength()
2023-12-07 16:32:15 +02:00
2023-12-07 22:07:17 +02:00
def cardnumber(self, x: str):
2023-12-07 16:32:15 +02:00
if x.isdigit():
return int(x)
if x == "T":
return 10
2023-12-07 22:07:17 +02:00
if x == "J":
2023-12-07 16:32:15 +02:00
return 11
2023-12-07 22:07:17 +02:00
if x == "Q":
2023-12-07 16:32:15 +02:00
return 12
2023-12-07 22:07:17 +02:00
if x == "K":
2023-12-07 16:32:15 +02:00
return 13
2023-12-07 22:07:17 +02:00
if x == "A":
2023-12-07 16:32:15 +02:00
return 14
return 0
2023-12-07 22:07:17 +02:00
def handstrength(self):
print(self.numbers.values())
if len(set(self.cardnumbers)) == 1:
return 5
if len(self.numbers)==2:
print("2")
2023-12-07 16:32:15 +02:00
def __str__(self):
2023-12-07 22:07:17 +02:00
return f"Cards: {self.cards} Bid: {self.bid}, sorted: {self.sorted}, num {self.cardnumbers}, numcount {self.numbers}"
2023-12-07 16:32:15 +02:00
def __repr__(self):
return str(self)
with open("data.txt") as file:
lines = [line.rstrip() for line in file]
hands = []
for line in lines:
2023-12-07 22:07:17 +02:00
halves = line.split(" ")
2023-12-07 16:32:15 +02:00
hands.append(HandClass(halves[1], halves[0]))
print(hands[-1])