Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
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)
Пример #4
0
    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("חייבים לשחק לפחות סיבוב אחד בשביל לקבוע מי מנצח")