Example #1
0
    def test_passer_au_prochain_joueur(self):

        partie = Partie(5, 1)
        partie.joueur_courant = partie.joueurs[0]
        partie.sens = 1

        partie.passer_au_prochain_joueur()
        self.assertEqual(partie.joueur_courant.identifiant, 2)
        self.assertEqual(partie.joueur_suivant.identifiant, 3)

        partie.passer_au_prochain_joueur()
        self.assertEqual(partie.joueur_courant.identifiant, 3)
        self.assertEqual(partie.joueur_suivant.identifiant, 4)

        partie.passer_au_prochain_joueur()
        partie.passer_au_prochain_joueur()
        self.assertEqual(partie.joueur_courant.identifiant, 5)
        self.assertEqual(partie.joueur_suivant.identifiant, 1)

        partie.joueurs_actifs = [
            partie.joueurs[0], partie.joueurs[2], partie.joueurs[4]
        ]
        partie.joueur_suivant = partie.joueurs[0]

        partie.passer_au_prochain_joueur()
        self.assertEqual(partie.joueur_courant.identifiant, 1)
        self.assertEqual(partie.joueur_suivant.identifiant, 3)

        partie.passer_au_prochain_joueur()
        self.assertEqual(partie.joueur_courant.identifiant, 3)
        self.assertEqual(partie.joueur_suivant.identifiant, 5)

        partie.passer_au_prochain_joueur()
        self.assertEqual(partie.joueur_courant.identifiant, 5)
        self.assertEqual(partie.joueur_suivant.identifiant, 1)

        partie.sens = -1

        partie.joueur_suivant = partie.joueurs[2]

        self.assertEqual(partie.joueur_courant.identifiant, 5)
        self.assertEqual(partie.joueur_suivant.identifiant, 3)

        partie.passer_au_prochain_joueur()
        self.assertEqual(partie.joueur_courant.identifiant, 3)
        self.assertEqual(partie.joueur_suivant.identifiant, 1)

        partie.passer_au_prochain_joueur()
        self.assertEqual(partie.joueur_courant.identifiant, 1)
        self.assertEqual(partie.joueur_suivant.identifiant, 5)
Example #2
0
    def test_deplacer_les_dés_1_et_6(self):
        partie = Partie(2, 2)
        partie.sens = 1
        partie.joueur_courant = partie.joueurs[0]
        partie.determiner_joueur_suivant()

        # Cas 1: 1 dé de valeur 1 et 1 dé de valeur 6
        partie.joueurs[0].dés = [Dé(1), Dé(2), Dé(3), Dé(4), Dé(5), Dé(6)]
        partie.joueurs[1].dés = [Dé(2), Dé(2), Dé(4)]
        partie.deplacer_les_dés_1_et_6(1, 1)

        self.assertEqual(str([Dé(2), Dé(3), Dé(4), Dé(5)]),
                         str(partie.joueurs[0].dés))
        self.assertEqual(4, len(partie.joueurs[1]))

        # Cas 2: 5 dé de valeur 1 et 0 dé de valeur 6
        partie.joueurs[0].dés = [Dé(1), Dé(1), Dé(1), Dé(1), Dé(1)]
        partie.joueurs[1].dés = [Dé(2), Dé(2), Dé(4)]
        partie.deplacer_les_dés_1_et_6(5, 0)

        self.assertEqual(str([]), str(partie.joueurs[0].dés))
        self.assertEqual(3, len(partie.joueurs[1]))

        # Cas 3: 0 dé de valeur 1 et 5 dé de valeur 6
        partie.joueurs[0].dés = [Dé(6), Dé(6), Dé(6), Dé(6), Dé(6)]
        partie.joueurs[1].dés = [Dé(2), Dé(2), Dé(4)]
        partie.deplacer_les_dés_1_et_6(0, 5)

        self.assertEqual(str([]), str(partie.joueurs[0].dés))
        self.assertEqual(8, len(partie.joueurs[1]))
Example #3
0
    def test_determiner_joueur_suivant(self):

        partie = Partie(7, 6)
        partie.joueur_courant = partie.joueurs[5]

        # Cas 1: Sens horaire, on passe au prochain avec un retour au premier joueur
        partie.sens = 1
        partie.determiner_joueur_suivant()
        self.assertEqual(partie.joueurs[6], partie.joueur_suivant)

        partie.joueur_courant = partie.joueurs[6]
        partie.determiner_joueur_suivant()
        self.assertEqual(partie.joueurs[0], partie.joueur_suivant)

        # Cas 2: Sens anti-horaire, on passe au joueur précédent
        partie.sens = -1
        partie.joueur_courant = partie.joueurs[1]
        partie.determiner_joueur_suivant()
        self.assertEqual(partie.joueurs[0], partie.joueur_suivant)

        partie.joueur_courant = partie.joueurs[0]
        partie.determiner_joueur_suivant()
        self.assertEqual(partie.joueurs[6], partie.joueur_suivant)

        # Cas 3: Sens horaire, avec seulement quelques joueurs actifs.
        partie.sens = 1
        partie.joueurs_actifs = [
            partie.joueurs[1], partie.joueurs[4], partie.joueurs[6]
        ]
        partie.joueur_courant = partie.joueurs[4]

        partie.determiner_joueur_suivant()
        self.assertEqual(partie.joueurs[6], partie.joueur_suivant)

        partie.joueur_courant = partie.joueurs[6]
        partie.determiner_joueur_suivant()
        self.assertEqual(partie.joueurs[1], partie.joueur_suivant)

        # Cas 4: Sens anti-horaire, avec seulement quelques joueurs actifs
        partie.sens = -1

        partie.determiner_joueur_suivant()
        self.assertEqual(partie.joueurs[4], partie.joueur_suivant)

        partie.joueur_courant = partie.joueurs[1]
        partie.determiner_joueur_suivant()
        self.assertEqual(partie.joueurs[6], partie.joueur_suivant)