В настоящее время я работаю над своим финальным проектом по основам программирования с Python, который представляет собой набор небольших игр. Я пытаюсь сделать игру «Старшей картой», в которой генерируются 2 случайных числа от 1 до 13 (номиналы колоды из 52 карт), затем сравниваются для более высокого числа и отображается победитель.
Мы должны иметь отдельные файлы для кода класса и программы. Вот так выглядит мой класс.
import random
class card:
def __init__(self, value):
self.card_value = value
def deal(self):
numb = random.randrange(1, 13)
def set_value(self, value):
self.card_value = value
def get_value(self):
return self.card_value
def find_face_value(self, numb):
#face = 'test'
print(numb)
if numb == 1:
print("numb == 1")
return 'Ace'
elif numb == 2:
return 'two'
## elif numb == 3:
## face = 'three'
## elif numb == 4:
## face = 'four'
## elif numb == 5:
## face = 'five'
## elif numb == 6:
## face = 'six'
## elif numb == 7:
## face = 'seven'
## elif numb == 8:
## face = 'eight'
## elif numb == 9:
## face = 'nine'
## elif numb == 10:
## face = 'ten'
## elif numb == 11:
## face = 'jack'
## elif numb == 12:
## face = 'queen'
## elif numb == 13:
## face = 'king'
#return face
def __str__(self):
return 'Numeric Value: ' + str(self.card_value)
Я прокомментировал эти (если онемел = = ...) утверждения b / c, которые я тестирую, чтобы узнать, смогу ли я получить один правильный возврат.
А вот и мой программный код для игры.
def high_card():
#player1_card = cardClass.card(random.randrange(1, 13))
player1_card = cardClass.card(1)
player2_card = cardClass.card(2)
card1 = player1_card.find_face_value(player1_card)
#player2_card = cardClass.card(random.randrange(1, 13))
card2 = player2_card.find_face_value(player2_card)
print('Player 1 got', card1, player1_card, '\nPlayer 2 got', card2, player2_card)
И это вывод, который я получаю, когда запускаю функцию high_card ().
>>> high_card()
Numeric Value: 1
Numeric Value: 2
Player 1 got None Numeric Value: 1
Player 2 got None Numeric Value: 2
Моя проблема в последних 2 строках вывода. Должно быть сказано: «Игрок 1 получил числовое значение Ace: 1» и «Игрок 2 получил числовое значение Ace: 2». Мне нужна функция find_face_value в моем классе, чтобы вернуть строку "лица" карты. Вместо этого Python печатает «None», подразумевая, что я ничего не возвращал внутри функции find_face_value. Я нахожусь в тупике, что нужно сделать, чтобы это работало, и буду очень признателен за помощь.