Эта программа предназначена для определения класса Card
, который генерирует карту при каждом вызове (только ранг, без масти). Я сделал это не так, как в инструкции, поэтому теперь я совершенно не понимаю, как эта программа должна работать.
import random
class Card:
def __init__(self):
self.__value = 0
def deal(self):
self.__value(random.randint(1,13))
def set_value(self, value):
self.value = set_face_value
def get_value():
def set_face_value(self):
faces = {1: "Ace", 2: "two", 3: "Three", 4: "Four", 5: "Five", 6: "Six", 7: "Seven", 8: "Eight", 9: "Nine", 10: "Ten", 11: "Jack", 12: "Queen", 13: "King"}
self.face_value = faces[self.value]
def __str__(self):
return self.face_value
Мне пришлось стереть это, потому что я все еще пытаюсь понять, что я сделал не так. Это ее ответ на мою программу:
import random
class Card:
def __init__(self):
self.value = 0 # THIS SHOULD BE PRIVATE - PUT __ AS THE FIRST
# TWO CHARACTERS IN THE NAME
self.face_value = '' # YOU DO NOT SAVE THIS
# YOU SHOULD HAVE ONLY ONE DATA ATTRIBUTE
def deal(self):
self.set_value(random.randint(1,13))
# THIS METHOD DOES NOT NEED TO CALL "set_value
# IT SHOULD JUST SET THE self.__value ATTRIBUTE
def set_value(self, value):
self.value = value
self.set_face_value() # READ THE ASSIGNMENT - YOU DO NOT HAVE A
# SET FOR THE FACE VALUE
# YOU SHOULD NOT HAVE ANY SUCH METHOD IN YOUR CLASS
def set_face_value(self):
faces = {1: "Ace", 2: "two", 3: "Three", 4: "Four", 5: "Five", 6: "Six", 7: "Seven", 8: "Eight", 9: "Nine", 10: "Ten", 11: "Jack", 12: "Queen", 13: "King"}
self.face_value = faces[self.value]
# YOU SHOULD HAVE A "find_face_value" METHOD THAT RETURNS THE FACE VALUE BASED ON THE VALUE OF THE
# PRIVATE DATA ATTRIBUTE "__value"
# THIS IS NOT CORRECT
def __str__(self):
return self.face_value
И это ее критика:
- Вы определите метод
deal
в своей карточке класса: этот метод будет сдавать одну карту (используя генератор случайных чисел).
- Вы определите метод
find_face_value
, который будет возвращать номинальную стоимость для объекта карты. Вы удалите функцию display_face_value
из вашей программы.
- Ваша функция
deal_hand
передает список объектов в функцию display_hand
и функцию hand stats
(отправьте 5 карт из класса Card в функцию)
Итак, моя главная проблема - выполнить deal_hand
и показать руку 5, и это будет выглядеть так:
The 5-card hand is:
Jack
Three
Queen
Two
Seven
The average value of your hand is:
7.0
#Also it should display like this
print("Your card is", card)
Английский не мой родной язык, поэтому мне трудно понять, чего он действительно хочет.
Это атрибуты данных, которые они запрашивают:
Class name: Card
Data attributes: __value
Methods: __init__()
deal()
set_value()
get_value()
find_face_value()
__str__()