Compare commits

..

No commits in common. "27f66da8f869317417f795d955e6fdc3aaddd823" and "bb1ec64afc2a98b7f9fe7932d80d18e15ad06366" have entirely different histories.

4 changed files with 17 additions and 291 deletions

View File

@ -1,23 +1,11 @@
J2566 131 32T3K 765
K7KK7 272 T55J5 684
AA222 222 AA8AA 21
222AA 123 KK677 28
44T55 467 AAAAA 123
4K339 546 KTJJT 220
42TT2 174 23332 1
TQTTT 710 A23A4 64
84766 682 QQQJA 483
K22KK 607 23456 64
77595 922 HNJIP 317
26778 768
JJ667 198
JJ2JJ 123
44Q9A 821
T6682 851
3A232 890
5Q5J4 691
79789 305
KK666 138
TT9TT 742
Q4276 489
6T48J 921

View File

@ -1,9 +0,0 @@
2J345 213
22345 425
2JJ34 654
22234 234
2JJJ3 623
22223 658
J2JJJ 987
2JJJJ 456
22222 604

View File

@ -99,63 +99,9 @@ for idx,i in enumerate(d):
#d.sort() #d.sort()
#d = sorted(d, key=lambda x: x[2]) d = sorted(d, key=lambda x: x[2])
def pp(x): print()
for p in x:
for q in p:
print(q,end='\t')
print()
x_1 = []
x_2 = []
x_3 = []
x_4 = []
x_5 = []
x_6 = []
x_7 = []
for y in d:
if y[2] == 1:
x_1.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 2:
x_2.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 3:
x_3.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 4:
x_4.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 5:
x_5.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 6:
x_6.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 7:
x_7.append(y+[[strength.index(c) for c in y[0]]])
x_1 = sorted(x_1, key=lambda x: x[3],reverse=True)
x_2 = sorted(x_2, key=lambda x: x[3],reverse=True)
x_3 = sorted(x_3, key=lambda x: x[3],reverse=True)
x_4 = sorted(x_4, key=lambda x: x[3],reverse=True)
x_5 = sorted(x_5, key=lambda x: x[3],reverse=True)
x_6 = sorted(x_6, key=lambda x: x[3],reverse=True)
x_7 = sorted(x_7, key=lambda x: x[3],reverse=True)
#def sortkey_part1(hand):
# return [score_hand(hand)] + ['23456789TJQKA'.index(c) for c in hand]
e = []
X = [x_1,x_2,x_3,x_4,x_5,x_6,x_7]
for n in X:
for m in n:
e.append(m)
pprint(e)
"""
pprint(d) pprint(d)
print() print()
for idx,i in enumerate(d): for idx,i in enumerate(d):
@ -172,11 +118,13 @@ for idx,i in enumerate(d):
if strength.find(tmp[x]) < strength.find(tmp2[x]): if strength.find(tmp[x]) < strength.find(tmp2[x]):
d[idx],d[idx+1] = d[idx+1],d[idx] d[idx],d[idx+1] = d[idx+1],d[idx]
break break
"""
result = 0 result = 0
for idx,i in enumerate(e): for idx,i in enumerate(d):
x = i[1] x = i[1]
result += (int(x) * (idx+1)) result += (int(x) * (idx+1))
pprint(d)
print(result) print(result)

View File

@ -1,201 +0,0 @@
#!/bin/python3
import re
import sys
from pprint import pprint
from collections import Counter
input_f = sys.argv[1]
d =[]
rank = 0
#prev 250197359
strength = 'AKQT98765432J'
print(strength)
with open(input_f) as file:
for line in file:
d.append(line.split())
pprint(d)
print()
def same_kind(x):
s = Counter(x)
for i in s.values():
if i == 4:
return True
return False
def five_of_kind(x):
if len(Counter(x)) == 1:
return True
return False
def full_house(x):
#print('full_house')
s = Counter(x)
if len(s) != 2:
return False
else:
tmp = list(s.values())
if (tmp[0] == 2 or tmp[0] == 3) and (tmp[1] == 2 or tmp[1] == 3):
return True
else:
return False
def three_of_kind(x):
s = Counter(x)
for i in s.values():
if i == 3:
return True
return False
def pairs(x):
s = Counter(x)
pairs = 0
for i in s.values():
if i == 2:
pairs += 1
return pairs
def c_pairs(x):
pairs = 0
for i in x.values():
if i == 2:
pairs += 1
return pairs
for idx,i in enumerate(d):
d[idx].append(rank)
card = d[idx][0]
tmp = Counter(card)
if card.find('J') != -1:
print(Counter(card))
c = list(Counter(card))
l = list(Counter(card).keys())
if list(tmp.most_common()[0])[0] == 'J' and list(tmp.most_common()[0])[1] == 5:
print(tmp)
continue
v = tmp['J']
del tmp['J']
h = list(tmp.most_common()[0])[0]
for j in range(0,v):
tmp.update(h)
print(tmp)
print()
if len(Counter(tmp)) == 1:
d[idx][2] = 7
continue
if list(Counter(tmp).most_common()[0])[1] == 4:
d[idx][2] = 6
continue
if list(Counter(tmp).most_common()[0])[1] == 3 and list(Counter(tmp).most_common()[1])[1] == 2:
d[idx][2] = 5
continue
if list(Counter(tmp).most_common()[0])[1] == 3:
d[idx][2] = 4
continue
if c_pairs(Counter(tmp)) == 2:
d[idx][2] = 3
continue
if c_pairs(Counter(tmp)) == 1:
d[idx][2] = 2
continue
if c_pairs(Counter(tmp)) == 0:
d[idx][2] = 1
continue
else:
# Five of a kind, where all five cards have the same label: AAAAA
if five_of_kind(d[idx][0]) == True:
d[idx][2] = 7
continue
#Four of a kind, where four cards have the same label and one card has a different label: AA8AA
if same_kind(d[idx][0]) == True:
d[idx][2] = 6
continue
#Full house, where three cards have the same label, and the remaining two cards share a different label: 23332
if full_house(d[idx][0]) == True:
d[idx][2] = 5
continue
#Three of a kind, where three cards have the same label, and the remaining two cards are each different from any other card in the hand: TTT98
if three_of_kind(d[idx][0]) == True:
d[idx][2] = 4
continue
#Two pair, where two cards share one label, two other cards share a second label, and the remaining card has a third label: 23432
if pairs(d[idx][0]) == 2:
d[idx][2] = 3
continue
#One pair, where two cards share one label, and the other three cards have a different label from the pair and each other: A23A4
if pairs(d[idx][0]) == 1:
d[idx][2] = 2
continue
#High card, where all cards' labels are distinct: 23456
if pairs(d[idx][0]) == 0:
d[idx][2] = 1
continue
#d.sort()
#d = sorted(d, key=lambda x: x[2])
def pp(x):
for p in x:
for q in p:
print(q,end='\t')
print()
x_1 = []
x_2 = []
x_3 = []
x_4 = []
x_5 = []
x_6 = []
x_7 = []
for y in d:
if y[2] == 1:
x_1.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 2:
x_2.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 3:
x_3.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 4:
x_4.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 5:
x_5.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 6:
x_6.append(y+[[strength.index(c) for c in y[0]]])
if y[2] == 7:
x_7.append(y+[[strength.index(c) for c in y[0]]])
x_1 = sorted(x_1, key=lambda x: x[3],reverse=True)
x_2 = sorted(x_2, key=lambda x: x[3],reverse=True)
x_3 = sorted(x_3, key=lambda x: x[3],reverse=True)
x_4 = sorted(x_4, key=lambda x: x[3],reverse=True)
x_5 = sorted(x_5, key=lambda x: x[3],reverse=True)
x_6 = sorted(x_6, key=lambda x: x[3],reverse=True)
x_7 = sorted(x_7, key=lambda x: x[3],reverse=True)
e = []
X = [x_1,x_2,x_3,x_4,x_5,x_6,x_7]
for n in X:
for m in n:
e.append(m)
pprint(e)
result = 0
for idx,i in enumerate(e):
x = i[1]
result += (int(x) * (idx+1))
print(result)