def testCalculForce0(self): c1 = Carte(0, 'X') c2 = Carte(2, 'B') c3 = Carte(3, 'C') g = GroupeCartes(c1, c2, c3) g.calculForce() self.assertEqual(g.force, 0)
def testCalculForce3(self): c1 = Carte(1, 'A') c2 = Carte(5, 'A') c3 = Carte(7, 'A') g = GroupeCartes(c1, c2, c3) g.calculForce() self.assertEqual(g.force, 3)
def testCalculForce1(self): c1 = Carte(1, 'E') c2 = Carte(6, 'B') c3 = Carte(3, 'C') g = GroupeCartes(c1, c2, c3) g.calculForce() self.assertEqual(g.force, 1)
def __init__(self, pos, plateau): ''' Crée une borne séparant les groupes de cartes g1 et g2. Paramètres ---------- Position sur le plateau Plateau ''' self.position = pos # la position de la borne sur le plateau self.premierComplete = 0 # conserve 1 ou 2 correspondant au côté du joueur ayant fini en premier self.plateau = plateau self.g1 = GroupeCartes( Carte(self.plateau.tapis[0][self.position].valeur, self.plateau.tapis[0][self.position].couleur), Carte(self.plateau.tapis[1][self.position].valeur, self.plateau.tapis[1][self.position].couleur), Carte(self.plateau.tapis[2][self.position].valeur, self.plateau.tapis[2][self.position].couleur)) # le groupe de cartes du côté du joueur 1 self.g2 = GroupeCartes( Carte(self.plateau.tapis[4][self.position].valeur, self.plateau.tapis[4][self.position].couleur), Carte(self.plateau.tapis[5][self.position].valeur, self.plateau.tapis[5][self.position].couleur), Carte(self.plateau.tapis[6][self.position].valeur, self.plateau.tapis[6][self.position].couleur)) # le groupe de cartes du côté du joueur 2 self.g1.carteCourante = 2 self.g2.carteCourante = 4
def rafraichir(self): ''' Rafraîchit le contenu de la borne à l'aide des éléments du tableau Paramètres ---------- Aucun ''' sauvegardeCarteCourante1 = self.g1.carteCourante sauvegardeCarteCourante2 = self.g2.carteCourante self.g1 = GroupeCartes( Carte(self.plateau.tapis[0][self.position].valeur, self.plateau.tapis[0][self.position].couleur), Carte(self.plateau.tapis[1][self.position].valeur, self.plateau.tapis[1][self.position].couleur), Carte(self.plateau.tapis[2][self.position].valeur, self.plateau.tapis[2][self.position].couleur)) self.g2 = GroupeCartes( Carte(self.plateau.tapis[4][self.position].valeur, self.plateau.tapis[4][self.position].couleur), Carte(self.plateau.tapis[5][self.position].valeur, self.plateau.tapis[5][self.position].couleur), Carte(self.plateau.tapis[6][self.position].valeur, self.plateau.tapis[6][self.position].couleur)) self.g1.carteCourante = sauvegardeCarteCourante1 self.g2.carteCourante = sauvegardeCarteCourante2
def testInit(self): p = Plateau(9) p.tapis[0][0] = Carte(1, 'A') p.tapis[1][0] = Carte(2, 'B') p.tapis[2][0] = Carte(3, 'C') p.tapis[4][0] = Carte(4, 'D') p.tapis[5][0] = Carte(5, 'E') p.tapis[6][0] = Carte(6, 'F') b = Borne(0, p) self.assertEqual( str(b.g1), str(GroupeCartes(Carte(1, 'A'), Carte(2, 'B'), Carte(3, 'C')))) self.assertEqual( str(b.g2), str(GroupeCartes(Carte(4, 'D'), Carte(5, 'E'), Carte(6, 'F')))) self.assertEqual(b.g1.carteCourante, 2) self.assertEqual(b.g2.carteCourante, 4)
def testEstCompletVrai(self): c1 = Carte(1, 'A') c2 = Carte(2, 'B') c3 = Carte(3, 'C') g = GroupeCartes(c1, c2, c3) self.assertEqual(g.estComplet(), True)
def testEstCompletFaux(self): c1 = Carte(0, 'X') c2 = Carte(0, 'X') c3 = Carte(0, 'X') g = GroupeCartes(c1, c2, c3) self.assertEqual(g.estComplet(), False)
def testInit(self): c1 = Carte(1, 'A') c2 = Carte(2, 'B') c3 = Carte(3, 'C') g = GroupeCartes(c1, c2, c3) self.assertEqual(g.totalPoints, 6)
def testInitVide(self): c1 = Carte(0, 'X') c2 = Carte(0, 'X') c3 = Carte(0, 'X') g = GroupeCartes(c1, c2, c3) self.assertEqual(g.totalPoints, 0)
class Borne(): def __init__(self, pos, plateau): ''' Crée une borne séparant les groupes de cartes g1 et g2. Paramètres ---------- Position sur le plateau Plateau ''' self.position = pos # la position de la borne sur le plateau self.premierComplete = 0 # conserve 1 ou 2 correspondant au côté du joueur ayant fini en premier self.plateau = plateau self.g1 = GroupeCartes( Carte(self.plateau.tapis[0][self.position].valeur, self.plateau.tapis[0][self.position].couleur), Carte(self.plateau.tapis[1][self.position].valeur, self.plateau.tapis[1][self.position].couleur), Carte(self.plateau.tapis[2][self.position].valeur, self.plateau.tapis[2][self.position].couleur)) # le groupe de cartes du côté du joueur 1 self.g2 = GroupeCartes( Carte(self.plateau.tapis[4][self.position].valeur, self.plateau.tapis[4][self.position].couleur), Carte(self.plateau.tapis[5][self.position].valeur, self.plateau.tapis[5][self.position].couleur), Carte(self.plateau.tapis[6][self.position].valeur, self.plateau.tapis[6][self.position].couleur)) # le groupe de cartes du côté du joueur 2 self.g1.carteCourante = 2 self.g2.carteCourante = 4 def __str__(self): ''' Affiche 'Contenu du groupe 1 - No de borne - Contenu du groupe 2'. Paramètres ---------- Aucun Renvoie ------- s: str La chaîne de caractères qui sera affichée via ''print'' ''' return str(self.g1) + ' - ' + str(self.position) + ' - ' + str(self.g2) def peutComparer(self): ''' Vérifie que chacun des groupes de cartes de part et d'autre de la borne est bien complet Paramètres ---------- Aucun Renvoie ------- True ou False ''' self.g1.calculForce() self.g2.calculForce() return (self.g1.estComplet() and self.g2.estComplet()) def comparer(self): ''' Compare les 2 groupes de cartes de chacun des côtés de la borne La victoire et donc la possession de la borne est attribuée au joueur possédant le groupe le plus fort et, en cas d'égalité, de plus haut total de points et, en cas d'égalité, le premier complété Paramètres ---------- Aucun ''' #Verif de possibilité de comparaison if self.peutComparer(): # Première condition de victoire via la force if (self.g1.force > self.g2.force): self.plateau.tapis[3][self.position] = 'J1' elif (self.g2.force > self.g1.force): self.plateau.tapis[3][self.position] = 'J2' else: # En cas d'égalité, on compare le total de points if (self.g1.totalPoints > self.g2.totalPoints): self.plateau.tapis[3][self.position] = 'J1' elif (self.g2.totalPoints > self.g1.totalPoints): self.plateau.tapis[3][self.position] = 'J2' else: # Enfin, en cas d'égalité à nouveau, le premier à avoir complété son côté gagne self.plateau.tapis[3][self.position] = 'J{0}'.format( self.premierComplete) def verifPremierComplete(self, jeu): ''' Accesseur de la variable d'instance premierComplete Parametres ---------- Jeu, la partie en cours ''' if jeu.joueurCourant == 1: if (self.g1.estComplet() and not self.g2.estComplet()): self.premierComplete = 1 else: if (self.g2.estComplet() and not self.g1.estComplet()): self.premierComplete = 2 def rafraichir(self): ''' Rafraîchit le contenu de la borne à l'aide des éléments du tableau Paramètres ---------- Aucun ''' sauvegardeCarteCourante1 = self.g1.carteCourante sauvegardeCarteCourante2 = self.g2.carteCourante self.g1 = GroupeCartes( Carte(self.plateau.tapis[0][self.position].valeur, self.plateau.tapis[0][self.position].couleur), Carte(self.plateau.tapis[1][self.position].valeur, self.plateau.tapis[1][self.position].couleur), Carte(self.plateau.tapis[2][self.position].valeur, self.plateau.tapis[2][self.position].couleur)) self.g2 = GroupeCartes( Carte(self.plateau.tapis[4][self.position].valeur, self.plateau.tapis[4][self.position].couleur), Carte(self.plateau.tapis[5][self.position].valeur, self.plateau.tapis[5][self.position].couleur), Carte(self.plateau.tapis[6][self.position].valeur, self.plateau.tapis[6][self.position].couleur)) self.g1.carteCourante = sauvegardeCarteCourante1 self.g2.carteCourante = sauvegardeCarteCourante2