Итак, я делаю игру в блэкджек, и вот как я определил функцию добавления карты, когда игрок требует ее:
def addcard(self):
self.cards.append(self.a.deal())
for a in range(0,len(self.cards)):
self.value = self.value + values[self.cards[a]]
Значения - это словарь, который присваивает номера карт к некоторой ценности. Карты - это список, определенный в объекте класса «Рука». Этот класс рук принимает в качестве атрибута экземпляр отдельного класса «колода» (в данном случае он называется «а»), для которого определена функция «раздача» (функция раздачи просто возвращает первую карту в колоде). Проблема состоит в том, что карты значений содержат ключи с именами «Два», «Три», «Джек» и т. Д. c, в то время как функция раздачи возвращает строки типа «Два сердца» и т. Д. c. Теперь я не могу изменить названия ключей, потому что именно так я решил сформулировать список карт:
suits = ['Hearts','Spades','Diamonds','Clubs']
ranks = ['Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Jack','King', 'Queen','Ace']
values = {'Two':2,'Three':3,'Four':4,'Five':5,'Six':6,'Seven':7,'Eight':8,'Nine':9,'Ten':10,'Jack':10,'King':10,'Queen':10,'Ace':11}
class Deck:
def __init__(self):
self.deck = []
for rank in ranks:
for suit in suits:
self.deck.append(rank +' '+'of'+' '+suit)
Так что смена ключей испортит мою колоду. По сути, мне нужно разобраться в этом беспорядке. Есть ли способ индексировать список так, чтобы он занимал только первое слово каждого элемента ??