Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Clunky solution in Clear category for Magic with 5 cards by mindaugas.dadurkevicius
RANKS = tuple('A 2 3 4 5 6 7 8 9 10 J Q K'.split())
SUITS = tuple('♣♦♥♠')
def bot(*cards, n=1):
for i in cards:
for i2 in cards:
if (i.split()[1] == i2.split()[1]) & (i != i2):
c1 = i
c2 = i2
cards = list(cards)
cards.remove(c1)
cards.remove(c2)
if abs(RANKS.index(c1.split()[0]) - RANKS.index(c2.split()[0])) <= 6:
diff = abs(RANKS.index(c1.split()[0]) - RANKS.index(c2.split()[0]))
if RANKS.index(c1.split()[0]) < RANKS.index(c2.split()[0]):
return_card = c1
else:
return_card = c2
else:
diff = len(RANKS) - abs(RANKS.index(c1.split()[0]) - RANKS.index(c2.split()[0]))
if RANKS.index(c1.split()[0]) < RANKS.index(c2.split()[0]):
return_card = c2
else:
return_card = c1
cards = [itm for x in RANKS for y in SUITS for itm in cards if (itm.split()[0] == x) & (itm.split()[1] == y)]
return_cards = []
if diff == 6:
return_cards = [cards[0], cards[2], cards[1]]
elif diff == 5:
return_cards = [cards[0], cards[1], cards[2]]
elif diff == 4:
return_cards = [cards[1], cards[2], cards[0]]
elif diff == 3:
return_cards = [cards[1], cards[0], cards[2]]
elif diff == 2:
return_cards = [cards[2], cards[1], cards[0]]
else:
return_cards = [cards[2], cards[0], cards[1]]
return_cards.insert((n-1) % 4, return_card)
return return_cards
def magician(*cards, n=1):
c1 = cards[(n - 1) % 4]
cards = list(cards)
cards.remove(c1)
card_order = [itm for x in RANKS for y in SUITS for itm in cards if (itm.split()[0] == x) & (itm.split()[1] == y)]
if card_order == cards:
diff = 5
elif [card_order[0], card_order[2], card_order[1]] == cards:
diff = 6
elif [card_order[1], card_order[0], card_order[2]] == cards:
diff = 3
elif [card_order[1], card_order[2], card_order[0]] == cards:
diff = 4
elif [card_order[2], card_order[0], card_order[1]] == cards:
diff = 1
else:
diff = 2
my_rank = RANKS[(RANKS.index(c1.split()[0]) + diff) % 13]
return my_rank + ' ' + c1.split()[1]
Dec. 19, 2019
Comments: