Exemplo n.º 1
0
 def testVictoireFalse(self):
     #On vérifie la victoire dans les cas False TrueJ1 TrueJ2
     j = Jeu()
     j.plateau.tapis[3][:] = [
         'J1', 'XX', 'XX', 'J2', 'J1', 'XX', 'XX', 'XX', 'XX'
     ]
     self.assertEqual(j.testVictoire()[0], False)
Exemplo n.º 2
0
 def testPlacerJ1(self):
     j = Jeu()
     joueur1 = Joueur(6, 1, j)
     joueur1.piocher()
     strCarte = str(joueur1[0])
     joueur1.placer(0, 0)
     self.assertEqual(str(j.plateau.tapis[2][0]), strCarte)
     self.assertEqual(j.borne1.g1.carteCourante, 1)
Exemplo n.º 3
0
 def testVictoireCond2(self):
     #On vérifie la victoire dans le cas condition 2 = 3 bornes consécutives
     j = Jeu()
     j.plateau.tapis[3][:] = [
         'J1', 'J2', 'J2', 'J2', 'J1', 'XX', 'XX', 'XX', 'XX'
     ]
     self.assertEqual(j.testVictoire()[0], True)
     self.assertEqual(j.testVictoire()[1], 'VJ2')
Exemplo n.º 4
0
 def testVictoireCond1(self):
     #On vérifie la victoire dans le cas condition 1 = 5 bornes gagnées
     j = Jeu()
     j.plateau.tapis[3][:] = [
         'J1', 'J1', 'XX', 'J2', 'J1', 'XX', 'J1', 'XX', 'J1'
     ]
     self.assertEqual(j.testVictoire()[0], True)
     self.assertEqual(j.testVictoire()[1], 'VJ1')
Exemplo n.º 5
0
 def testPlacerJ2(self):
     j = Jeu()
     joueur2 = Joueur(6, 2, j)
     joueur2.piocher()
     strCarte = str(joueur2[0])
     j.joueurCourant = 2
     joueur2.placer(0, 0)
     self.assertEqual(str(j.plateau.tapis[4][0]), strCarte)
     self.assertEqual(j.borne1.g2.carteCourante, 5)
Exemplo n.º 6
0
    def testJouer(self):
        j = Jeu()
        Toto = Joueur(6, randint(1, 3), j)
        Toto.piocher()
        no = 0
        no_borne = 1

        Toto.jouer(no, no_borne)
        self.assertEqual(1, len(Toto))
Exemplo n.º 7
0
 def testPremierComplete(self, j=Jeu()):
     p = j.plateau
     p.tapis[0][0] = Carte(1, 'C')
     p.tapis[1][0] = Carte(3, 'D')
     p.tapis[2][0] = Carte(3, 'B')
     p.tapis[4][0] = Carte(1, 'B')
     p.tapis[5][0] = Carte(3, 'E')
     p.tapis[6][0] = Carte(0, 'X')
     b = Borne(0, p)
     b.verifPremierComplete(j)
     self.assertEqual(b.premierComplete, 1)
Exemplo n.º 8
0
    def __init__(self):

        super(MyWindow, self).__init__()
        # Configuration de l'interface utilisateur.

        QtWidgets.QMainWindow.__init__(self)
        self.ui = uic.loadUi('interface.ui', self)

        # Mise en place du fond d'écran
        palette = QtGui.QPalette()
        pixmap = QtGui.QPixmap("tapis.jpg")
        palette.setBrush(QtGui.QPalette.Background, QtGui.QBrush(pixmap))
        self.setPalette(palette)  #background
        self.show()

        self.jeu = Jeu()

        self.carteEnCours = ""

        self.dictionnaireCarteCourante = {}
        self.dictionnaireCarteCourante[0] = 3
        self.dictionnaireCarteCourante[1] = 2
        self.dictionnaireCarteCourante[2] = 1
        self.dictionnaireCarteCourante[4] = 1
        self.dictionnaireCarteCourante[5] = 2
        self.dictionnaireCarteCourante[6] = 3

        #Mise en place d'un dictionnaire pour sauvegarder les différents widgets plus simplement
        self.dictionnaire = {}
        # Sauvegarde des conteneurs du côté du joueur 1
        self.dictionnaire['J1B11'] = self.J1B11
        self.dictionnaire['J1B12'] = self.J1B12
        self.dictionnaire['J1B13'] = self.J1B13
        self.dictionnaire['J1B21'] = self.J1B21
        self.dictionnaire['J1B22'] = self.J1B22
        self.dictionnaire['J1B23'] = self.J1B23
        self.dictionnaire['J1B31'] = self.J1B31
        self.dictionnaire['J1B32'] = self.J1B32
        self.dictionnaire['J1B33'] = self.J1B33
        self.dictionnaire['J1B41'] = self.J1B41
        self.dictionnaire['J1B42'] = self.J1B42
        self.dictionnaire['J1B43'] = self.J1B43
        self.dictionnaire['J1B51'] = self.J1B51
        self.dictionnaire['J1B52'] = self.J1B52
        self.dictionnaire['J1B53'] = self.J1B53
        self.dictionnaire['J1B61'] = self.J1B61
        self.dictionnaire['J1B62'] = self.J1B62
        self.dictionnaire['J1B63'] = self.J1B63
        self.dictionnaire['J1B71'] = self.J1B71
        self.dictionnaire['J1B72'] = self.J1B72
        self.dictionnaire['J1B73'] = self.J1B73
        self.dictionnaire['J1B81'] = self.J1B81
        self.dictionnaire['J1B82'] = self.J1B82
        self.dictionnaire['J1B83'] = self.J1B83
        self.dictionnaire['J1B91'] = self.J1B91
        self.dictionnaire['J1B92'] = self.J1B92
        self.dictionnaire['J1B93'] = self.J1B93
        # Sauvegarde des conteneurs du côté du joueur 2
        self.dictionnaire['J2B11'] = self.J2B11
        self.dictionnaire['J2B12'] = self.J2B12
        self.dictionnaire['J2B13'] = self.J2B13
        self.dictionnaire['J2B21'] = self.J2B21
        self.dictionnaire['J2B22'] = self.J2B22
        self.dictionnaire['J2B23'] = self.J2B23
        self.dictionnaire['J2B31'] = self.J2B31
        self.dictionnaire['J2B32'] = self.J2B32
        self.dictionnaire['J2B33'] = self.J2B33
        self.dictionnaire['J2B41'] = self.J2B41
        self.dictionnaire['J2B42'] = self.J2B42
        self.dictionnaire['J2B43'] = self.J2B43
        self.dictionnaire['J2B51'] = self.J2B51
        self.dictionnaire['J2B52'] = self.J2B52
        self.dictionnaire['J2B53'] = self.J2B53
        self.dictionnaire['J2B61'] = self.J2B61
        self.dictionnaire['J2B62'] = self.J2B62
        self.dictionnaire['J2B63'] = self.J2B63
        self.dictionnaire['J2B71'] = self.J2B71
        self.dictionnaire['J2B72'] = self.J2B72
        self.dictionnaire['J2B73'] = self.J2B73
        self.dictionnaire['J2B81'] = self.J2B81
        self.dictionnaire['J2B82'] = self.J2B82
        self.dictionnaire['J2B83'] = self.J2B83
        self.dictionnaire['J2B91'] = self.J2B91
        self.dictionnaire['J2B92'] = self.J2B92
        self.dictionnaire['J2B93'] = self.J2B93

        # Sauvegarde des boutons poussoirs borne
        self.dictionnaire['B1'] = self.bouton_borne1
        self.dictionnaire['B2'] = self.bouton_borne2
        self.dictionnaire['B3'] = self.bouton_borne3
        self.dictionnaire['B4'] = self.bouton_borne4
        self.dictionnaire['B5'] = self.bouton_borne5
        self.dictionnaire['B6'] = self.bouton_borne6
        self.dictionnaire['B7'] = self.bouton_borne7
        self.dictionnaire['B8'] = self.bouton_borne8
        self.dictionnaire['B9'] = self.bouton_borne9

        # Sauvegarde des boutons poussoirs carte (main du joueur)
        self.dictionnaire['C1'] = self.bouton_carte1
        self.dictionnaire['C2'] = self.bouton_carte2
        self.dictionnaire['C3'] = self.bouton_carte3
        self.dictionnaire['C4'] = self.bouton_carte4
        self.dictionnaire['C5'] = self.bouton_carte5
        self.dictionnaire['C6'] = self.bouton_carte6

        # Association des fonctions aux actions du menu
        self.ui.actionJvIA0.triggered.connect(self.startJvIA0)
        self.ui.actionJvIA1.triggered.connect(self.startJvIA1)
        self.ui.actionJvIA2.triggered.connect(self.startJvIA2)
        self.ui.actionJvIA3.triggered.connect(self.startJvIA3)
        self.ui.actionIA0vIA0.triggered.connect(self.startIA0vIA0)
        self.ui.actionIA0vIA1.triggered.connect(self.startIA0vIA1)
        self.ui.actionIA0vIA2.triggered.connect(self.startIA0vIA2)
        self.ui.actionIA0vIA3.triggered.connect(self.startIA0vIA3)
        self.ui.actionIA1vIA1.triggered.connect(self.startIA1vIA1)
        self.ui.actionIA1vIA2.triggered.connect(self.startIA1vIA2)
        self.ui.actionIA1vIA3.triggered.connect(self.startIA1vIA3)
        self.ui.actionIA2vIA2.triggered.connect(self.startIA2vIA2)
        self.ui.actionIA2vIA3.triggered.connect(self.startIA2vIA3)
        self.ui.actionIA3vIA3.triggered.connect(self.startIA3vIA3)

        # Association des fonctions aux actions des boutons poussoirs

        # Menu
        self.ui.bouton_sauvegarder.clicked.connect(self.jeu.saveIHM)

        self.ui.bouton_nouvellePartie.clicked.connect(self.montreIA)
        self.ui.bouton_simulation.clicked.connect(self.montreIASimulation)

        self.ui.bouton_IA0.clicked.connect(self.startJvIA0)
        self.ui.bouton_IA1.clicked.connect(self.startJvIA1)
        self.ui.bouton_IA2.clicked.connect(self.startJvIA2)
        self.ui.bouton_IA3.clicked.connect(self.startJvIA3)
        self.ui.bouton_IA0vIA0.clicked.connect(self.startIA0vIA0)
        self.ui.bouton_IA0vIA1.clicked.connect(self.startIA0vIA1)
        self.ui.bouton_IA0vIA2.clicked.connect(self.startIA0vIA2)
        self.ui.bouton_IA0vIA3.clicked.connect(self.startIA0vIA3)
        self.ui.bouton_IA1vIA1.clicked.connect(self.startIA1vIA1)
        self.ui.bouton_IA1vIA2.clicked.connect(self.startIA1vIA2)
        self.ui.bouton_IA1vIA3.clicked.connect(self.startIA1vIA3)
        self.ui.bouton_IA2vIA2.clicked.connect(self.startIA2vIA2)
        self.ui.bouton_IA2vIA3.clicked.connect(self.startIA2vIA3)
        self.ui.bouton_IA3vIA3.clicked.connect(self.startIA3vIA3)

        # Cartes
        self.ui.bouton_carte1.clicked.connect(self.carte1)
        self.ui.bouton_carte2.clicked.connect(self.carte2)
        self.ui.bouton_carte3.clicked.connect(self.carte3)
        self.ui.bouton_carte4.clicked.connect(self.carte4)
        self.ui.bouton_carte5.clicked.connect(self.carte5)
        self.ui.bouton_carte6.clicked.connect(self.carte6)

        # Bornes
        self.ui.bouton_borne1.clicked.connect(self.borne1)
        self.ui.bouton_borne2.clicked.connect(self.borne2)
        self.ui.bouton_borne3.clicked.connect(self.borne3)
        self.ui.bouton_borne4.clicked.connect(self.borne4)
        self.ui.bouton_borne5.clicked.connect(self.borne5)
        self.ui.bouton_borne6.clicked.connect(self.borne6)

        # On cache les différentes interfaces tant que le jeu n'est pas lancé
        self.ui.bouton_borne1.hide()
        self.ui.bouton_borne2.hide()
        self.ui.bouton_borne3.hide()
        self.ui.bouton_borne4.hide()
        self.ui.bouton_borne5.hide()
        self.ui.bouton_borne6.hide()
        self.ui.bouton_borne7.hide()
        self.ui.bouton_borne8.hide()
        self.ui.bouton_borne9.hide()

        self.ui.bouton_carte1.hide()
        self.ui.bouton_carte2.hide()
        self.ui.bouton_carte3.hide()
        self.ui.bouton_carte4.hide()
        self.ui.bouton_carte5.hide()
        self.ui.bouton_carte6.hide()

        self.ui.bouton_IA0.hide()
        self.ui.bouton_IA1.hide()
        self.ui.bouton_IA2.hide()
        self.ui.bouton_IA3.hide()

        self.ui.bouton_IA0vIA0.hide()
        self.ui.bouton_IA0vIA1.hide()
        self.ui.bouton_IA0vIA2.hide()
        self.ui.bouton_IA0vIA3.hide()
        self.ui.bouton_IA1vIA1.hide()
        self.ui.bouton_IA1vIA2.hide()
        self.ui.bouton_IA1vIA3.hide()
        self.ui.bouton_IA2vIA2.hide()
        self.ui.bouton_IA2vIA3.hide()
        self.ui.bouton_IA3vIA3.hide()
Exemplo n.º 9
0
def MesProbas(nb = 150, lin = np.inf):
    T1, T2 = [0]*42, [0]*42
    
    for p in range(42):
        
        for k in range(nb*int(p/lin+1)):
            print('\n',100*k/(nb*int(p/lin+1)), '%  du tour', p+1, '/42')
            g = Jeu()
            g.pioche=[] 
            for i in range(9):
                for couleur in ['A','B','C','D','E','F']:
                    g.pioche.append('%c%i'%(couleur,i+1))
            if p!=0:
                g.pioche = g.pioche[:-p]
            
            t = time.time()
            for s in range(k):        #k%(1+int((p/lin+1)/2))
                shuffle(g.pioche)
            
            
            for i in range(g.J1.taille):
                g.J1.piocher()
                g.J2.piocher()
            mainJ1 = [str(g.J1[j]) for j in range(len(g.J1))]
            mainJ2 = [str(g.J2[j]) for j in range(len(g.J2))]
            
                
            if 'A1' in mainJ1:
#                T1 += 1
#                T3 += 1
                g.J1.pop(mainJ1.index('A1'))
                
            if 'A1' in mainJ2:
#                T2 += 1
#                T4 += 1
                g.J2.pop(mainJ2.index('A1'))
                
            
            print("Longueur pioche = ", len(g.pioche), 'Temps exec = ', time.time()-t)
            
             
            if p%2 == 1:
                g.J2.piocher()
                mainJ2 = [str(g.J2[i]) for i in range(len(g.J2))]
                if 'A1' in mainJ2:
                    T2[p] += 1/(nb*int(p/lin+1))
                g.J2.pop()
            
            while len(g.pioche) > 0:
                
                g.J1.piocher()
                g.J2.piocher()
                mainJ1 = [str(g.J1[i]) for i in range(len(g.J1))]
                mainJ2 = [str(g.J2[i]) for i in range(len(g.J2))]
                if 'A1' in mainJ1:
                    T1[p] += 1/(nb*int(p/lin+1))
                if 'A1' in mainJ2:
                    T2[p] += 1/(nb*int(p/lin+1))
                g.J1.pop()
                g.J2.pop()
                    
        print ("Proba J1 :", T1, "\n\n Proba J2 :", T2, " \n\nTotal ", np.array(T1)+np.array(T2))
#        print("origine J1 :", 100*np.array(T3)/nb, " origine J2 :", 100*np.array(T4)/nb)
        
    plt.plot(T1, 'b.', label = 'Probas J1')
    plt.plot(T2, 'y.', label = 'Probas J2')
    plt.legend()
    plt.grid()
Exemplo n.º 10
0
#    plt.plot(p22, label='J2 proba2')
#    plt.legend()        
#p1 = [0.4375, 0.43478261, 0.43181818, 0.42857143, 0.425, 0.42105263, 0.41666667, 0.41176471, 0.40625, 0.4, 0.39285714, 0.38461538, 0.375, 0.36363636, 0.35, 0.33333333, 0.3125, 0.28571429, 0.25, 0.2, 0.125]
#
#p2 = [0.44680851, 0.44444444, 0.44186047, 0.43902439, 0.43589744, 0.43243243, 0.42857143, 0.42424242, 0.41935484, 0.4137931, 0.40740741, 0.4, 0.39130435, 0.38095238, 0.36842105, 0.35294118, 0.33333333, 0.30769231, 0.27272727, 0.22222222, 0.14285714, ]
#        
#plt.plot(p1, label='J1 proba1')
#plt.plot(p2, label='J2 proba2')
#plt.legend()





####################  Exemple de plateau de jeu (pas viable)  #######################
g = Jeu()
g.plateau.tapis[2][0] = Carte(1, 'D')    
g.plateau.tapis[2][1] = Carte(2, 'E')
g.plateau.tapis[1][1] = Carte(1, 'F')
g.plateau.tapis[2][2] = Carte(6, 'D')



###################  Quelques cartes  ###############################
a = Carte(1, 'D')
b = Carte(2, 'E')
c = Carte(1, 'F')
d = Carte(6, 'D')


Exemplo n.º 11
0
 def testPeutJouerTrue(self):
     j = Jeu()
     j.joueurCourant = 1
     self.assertEqual(j.J1.peutJouer(0), True)
Exemplo n.º 12
0
 def testPeutJouerPositionMauvaisType2(self):
     j = Jeu()
     j.joueurCourant = 1
     self.assertEqual(j.J1.peutJouer('a'), False)
Exemplo n.º 13
0
 def testPeutJouerNoBorneMauvaisType1(self):
     j = Jeu()
     j.joueurCourant = 1
     self.assertEqual(j.J1.peutJouer((0, 0)), False)