저는 현재 존 젤 (John Zelle)의 파이썬 프로그래밍 : 컴퓨터 과학 개론 (Introduction to Computer Science)에서 10 장의 걸림돌을 짚어보고 있습니다. 왜 그리고 어떻게 운동을하고 문제에 접근하는 방법에 대한 도움이 필요합니다. 이 연습을 통해 Card
클래스를 사용하여 n 개의 카드를 표시하는 프로그램을 만들고 다음과 같은 방법이 필요합니다.파이썬 교과서 요구 사항에 따라 '클래스 카드'를 구현하는 방법
__init__(self, rank, suit):
getRank(self)
getSuite(self)
BJValue(self)
__str__(self)
으로 터무니 : 그것은 또한 무작위 카드의 N 수를 생성하는 응용 프로그램 내에서 호출해야 쉬운 이게 내가이 클래스를 구현하려고하는 벽에 부딪혔다는 것이다. 나는 52 장의 카드 덱을 생성하는 간단한 앱을 만들었고 사용자에게 원하는 카드의 개수를 묻고 그 카드로 손을 채웠다. 핸드가 생성되면 카드 특정 클래스의 혜택을 볼 수 없습니다. 여기 내 작업 코드는 지금까지의 : 나는 임의 N 카드의 손을 생성 한 그래서 일단
import random
class Card:
def __init__(self, rank, suite):
self.rank = rank
self.suite = suite
def getRank(self):
return self.rank
def getSuite(self):
return self.suite
def BJValue(self):
if self.rank == 'Ace':
return 1
elif self.rank == 'Jack' or self.rank == 'Queen' or self.rank == 'King':
return 10
else:
return int(self.rank)
def __str__(self):
return ('{0} of {1}'.format(self.rank, self.suite))
def shuffled_deck():
deck = []
for suite in ['Clubs', 'Diamonds', 'Hearts', 'Spades']:
for num in ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']:
deck.append([num, suite])
random.shuffle(deck)
return deck
def main():
deck = shuffled_deck()
hand = []
print('>> Card Generator v1 <<')
while True:
try:
n = int(input('Please enter the number of cards to display (1-7): '))
except ValueError:
print('Invalid input, please enter a number!\n')
else:
if n < 1 or n > 7:
print('Please enter a number between 1-7!\n')
else:
break
print('Your hand is:')
for i in range(n):
hand.append(deck[i])
main()
, 나는 그것을 구현하는 경우에도 카드 클래스를 사용에서 내가 도움이 될 방법을 볼 수 없거나 . n은 1-7 사이의 임의의 숫자이므로 n 각 카드 개체를 저장하고 각 변수를 Card
의 인스턴스에 할당 할 변수가 필요합니다. 내가 손으로 각 카드를 hand[i]
으로 보여줄 수 있는데, Card
클래스를 필요로하지 않고 range(n)
까지 반복하지만,이 프로젝트에서 기대하는 바가 아닙니다. 나는이 문제에 대해 어떻게 생각해야하는지에 대한 조언을 찾고 있으므로이 필수 클래스를 사용할 수 있습니다.
deck.append([num, suite])
이것은 deck
변수 52 개 Card
개체의 목록을 만드는
deck.append(Card(num, suite))
에 : 그것은 당신이 당신의 코드를 변경해야 할 유일한 것은 보이는
왜 n 개의 변수가 필요합니까? 그냥 그 무작위 카드에 대한 목록을 사용하십시오! –
왜 당신은 2013 년에 파이썬으로 getter와 setter를 배우고 있습니까? –
'스위트'라기보다는 '수트'를 의미합니까? –