def test_get_winner_player1_win(self): """checks thw winner is player 1""" player1 = Player("ohad") player2 = Player("polly") game = CardGame(player1.name, player2.name) game.player2.player_hand = [Card(8, 3), Card(9, 4), Card(13, 4)] game.player1.player_hand = [Card(7, 3)] winner = game.get_winner() self.assertEqual(player1.name, winner)
def test_get_winner_draw(self): """checks if the result is draw""" player1 = Player("ohad") player2 = Player("polly") game = CardGame(player1.name, player2.name) game.player2.player_hand = [Card(8, 3), Card(9, 4), Card(13, 4)] game.player1.player_hand = [Card(7, 3), Card(10, 4), Card(12, 4)] winner = game.get_winner() self.assertEqual(None, winner)
class TestCardGame(TestCase): def setUp(self): self.game_test = CardGame("dima", "shachar") def test_num_cards_not_int(self): """בודקת שהמערכת מציגה שגיאה כאשר כמות הקלפים לחלוקה אינו מספר תקין""" with self.assertRaises(SystemExit): self.game_test = CardGame("dima", "shachar", "bdika") def test_no_name_input(self): """בודקת האם המשחק עובד כאשר לא מזינים בכלל פרטים. לא כמות קלפים לחלוקה ולא שמות שחקנים""" self.game_test = CardGame() self.assertEqual(self.game_test.player_1.name, "player-1") self.assertEqual(self.game_test.player_2.name, "player-2") self.assertEqual(self.game_test.player_1.num_cards, 10) self.assertEqual(self.game_test.player_2.num_cards, 10) def test_get_winner(self): """בודקת כאשר יש לשחקן השני פחות קלפים שהשם שלו חוזר""" card1 = Card(1, 1) card2 = Card(2, 2) card3 = Card(3, 3) self.game_test.player_1.player_deck = [card1, card2] self.game_test.player_2.player_deck = [card3] self.assertIn("shachar", self.game_test.get_winner()) # self.assertIn(self.game_test.player_2.name, self.game_test.get_winner()) def test_get_winner_none(self): """בודקת במידה והרשימות של שני השחקנים באותו אורך שהיא מחזירה none""" card1 = Card(1, 1) card2 = Card(2, 2) card3 = Card(5, 2) card4 = Card(7, 4) self.game_test.player_1.player_deck = [card1, card2] self.game_test.player_2.player_deck = [card3, card4] self.assertIsNone(self.game_test.get_winner()) def test_new_game(self): """בודקת שבמידה והפונקציה לא הופעלה מהקונסטרקטור היא מחזירה שגיאה""" with self.assertRaises(SystemExit): self.game_test.new_game() def test_new_game_20(self): """בודקת שבאמת מחלקת את כמות הקלפים שהמשתמש ביקש""" self.game_test = CardGame("dima", "shachar", 20) self.assertEqual(len(self.game_test.player_1.player_deck), 20) self.assertEqual(len(self.game_test.player_2.player_deck), 20) def test_new_game_0(self): """בודקת שמחזירה שגיאה כאשר מספר הקלפים לחלוקה הוא 0""" with self.assertRaises(SystemExit): self.game_test = CardGame("dima", "shachar", 0) def test_new_game_minus(self): """בודקת שמחזירה שגיאה כאשר מספר הקלפים לחלוקה הוא מינוס""" with self.assertRaises(SystemExit): self.game_test = CardGame("dima", "shachar", -5) def test_new_game_30(self): """בודקת מה קורה אם הזנו מעל 26 קלפים לכל אחד""" self.game_test = CardGame("dima", "shachar", 30) self.assertEqual(len(self.game_test.player_1.player_deck), 26)
count += 1 # count בודקת לנו האם המשחק רץ לפחות סיבוב אחד print(f"round {i}!!!") card1 = play1.player_1.get_card() # שולפת קלף משחקן ראשון print(f"card of {play1.player_1.name}: {card1}") card2 = play1.player_2.get_card() # שולפת קלף משחקן שני print(f"card of {play1.player_2.name}: {card2}") if card1 > card2: # בודקת מי המנצח בסיבוב הנוכחי play1.player_2.add_card(card1) play1.player_2.add_card(card2) print(f"the winner is {play1.player_1.name}") else: play1.player_1.add_card(card1) play1.player_1.add_card(card2) print(f"the winner is {play1.player_2.name}") print(play1.player_1.show()) print(play1.player_2.show()) print("=====================") if len(play1.player_1.player_deck) == 0 or len( play1.player_2.player_deck) == 0: # אם לאחד מהשחקנים נגמר הקלפים המשחק נגמר והוא המנצח print("\ngame over") break if count > 0: # אם המשחק לא פעל לפחות פעם אחת, תוצג שגיאה מתאימה if play1.get_winner() == None: print("\ndraw") else: print("\nthe winner in game is", play1.get_winner()) else: print("חייבים לשחק לפחות סיבוב אחד בשביל לקבוע מי מנצח")