Решение на От ливадите до Лас Вегас (и назад) от Кирил Кирилов

Обратно към всички решения

Към профила на Кирил Кирилов

Резултати

  • 3 точки от тестове
  • 0 бонус точки
  • 3 точки общо
  • 5 успешни тест(а)
  • 10 неуспешни тест(а)

Код

from random import random
from random import randint
class Card:
possible_suits = ["clubs", "hearts", "diamonds", "spades"]
possible_faces = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
def __init__(self, suit, face):
self.suit = suit
self.face = face
def get_suit(self):
return self.suit
def get_face(self):
return self.face
def __repr__(self):
return self.suit + " " + self.face
class Deck:
def __init__(self, face_filter=None):
self.cards = []
if face_filter is not None:
faces = face_filter
else:
faces = Card.possible_faces
for face in faces:
for suit in Card.possible_suits:
self.cards.append(Card(suit, face))
def shuffle(self):
random.shuffle(self.cards)
# [1,2,3,4, 5,6,7,8]
def cut(self):
random_index = randint(0, len(self.cards) - 1)
self.cards = self.cards[random_index:] + self.cards[:random_index]
def get_cards(self):
return self.cards
class Player:
def __init__(self):
self.cards = []
def get_cards(self):
return self.cards
class Game:
def __init__(self, number_of_players, dealing_direction, dealing_instructions):
self.game_deck = None
self.players = Deck()
for _ in range(number_of_players):
self.players.append(Player())
def prepare_deck(self):
for player in self.players:
self.game_deck.get_cards += player.get_cards
def deal_deck(self):
pass
def get_deck(self):
return self.game_deck

Лог от изпълнението

EE.....EEEEEEEE
======================================================================
ERROR: test_correct_deck_init (test.TestBelot)
Test initialization with correct deck.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'Belot' is not defined

======================================================================
ERROR: test_correct_direction_and_players_deal (test.TestBelot)
Test dealing with correct direction and players.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'Belot' is not defined

======================================================================
ERROR: test_shuffling_deck (test.TestDeck)
Test shuffling a deck.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
AttributeError: 'builtin_function_or_method' object has no attribute 'shuffle'

======================================================================
ERROR: test_collecting_cards_before_dealing (test.TestGame)
Test collecting the cards before a new deal.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
AttributeError: 'Deck' object has no attribute 'append'

======================================================================
ERROR: test_dealing_ltr (test.TestGame)
Test dealing the cards left to right.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
AttributeError: 'Deck' object has no attribute 'append'

======================================================================
ERROR: test_dealing_rtl (test.TestGame)
Test dealing the cards right to left.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
AttributeError: 'Deck' object has no attribute 'append'

======================================================================
ERROR: test_players_creation (test.TestGame)
Test creation and retrieval of players.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
AttributeError: 'Deck' object has no attribute 'append'

======================================================================
ERROR: test_prepare_deck (test.TestGame)
Test preparing the deck for dealing.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
AttributeError: 'Deck' object has no attribute 'append'

======================================================================
ERROR: test_correct_deck_init (test.TestPoker)
Test initialization with correct deck.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'Poker' is not defined

======================================================================
ERROR: test_correct_direction_and_players_deal (test.TestPoker)
Test dealing with correct direction and players.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'Poker' is not defined

----------------------------------------------------------------------
Ran 15 tests in 0.156s

FAILED (errors=10)

История (1 версия и 4 коментара)

Кирил обнови решението на 15.11.2022 17:58 (преди над 1 година)

+from random import random
+from random import randint
+
+
+class Card:
+ possible_suits = ["clubs", "hearts", "diamonds", "spades"]
+ possible_faces = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
+
+ def __init__(self, suit, face):
+ self.suit = suit
+ self.face = face
+
+ def get_suit(self):
+ return self.suit
+
+ def get_face(self):
+ return self.face
+
+ def __repr__(self):
+ return self.suit + " " + self.face
+
+
+class Deck:
+ def __init__(self, face_filter=None):
+ self.cards = []
+ if face_filter is not None:
+ faces = face_filter
+ else:
+ faces = Card.possible_faces
+ for face in faces:
+ for suit in Card.possible_suits:
+ self.cards.append(Card(suit, face))
+
+ def shuffle(self):
+ random.shuffle(self.cards)
+
+ # [1,2,3,4, 5,6,7,8]
+ def cut(self):
+ random_index = randint(0, len(self.cards) - 1)
+ self.cards = self.cards[random_index:] + self.cards[:random_index]
+
+ def get_cards(self):
+ return self.cards
+
+
+class Player:
+ def __init__(self):
+ self.cards = []
+
+ def get_cards(self):
+ return self.cards
+
+
+class Game:
+ def __init__(self, number_of_players, dealing_direction, dealing_instructions):
+ self.game_deck = None
+ self.players = Deck()
+ for _ in range(number_of_players):
+ self.players.append(Player())
+
+ def prepare_deck(self):
+ for player in self.players:
+ self.game_deck.get_cards += player.get_cards
+
+ def deal_deck(self):
+ pass
+
+ def get_deck(self):
+ return self.game_deck

Обещаващо начало. Ако имаше повече време, вярвам, че щеше да решиш за пълен брой точки. надявам се другият път да успееш да го направиш по-рано, за да получиш повече.