Ejemplo n.º 1
0
def othello(N, experimentation, experimentationJoueur1,
            experimentationJoueur2):
    print("")
    print("*****************************************************************")
    print("**************************** OTHELLO ****************************")
    print("*****************************************************************")
    print("")
    plateau, couleurJoueur1, couleurJoueur2, tourJoueur1 = Jeu.initialiserJeu(
        N, experimentation)

    if not experimentation:
        print("Vous pouvez decider de jouer ou de laisser l'ordinateur jouer")
        print("")
        print("Veuillez entrer votre option")
        print("")
        print("\t0 pour jouer")
        print("\t1 pour une IA effectuant des deplacements aleatoires")
        print(
            "\t2 pour une IA effectuant des deplacements avec l'algorithme Monte Carlo"
        )
        print("")
        joueur1 = choixJoueur(input("Entrer votre option pour le joueur 1 : "),
                              couleurJoueur1)
        joueur2 = choixJoueur(input("Entrer votre option pour le joueur 2 : "),
                              couleurJoueur2)
    else:
        joueur1 = choixJoueur(experimentationJoueur1[0],
                              experimentationJoueur1[1])
        joueur2 = choixJoueur(experimentationJoueur2[0],
                              experimentationJoueur2[1])

    return Jeu.jouerPartie(N, plateau, joueur1, joueur2, tourJoueur1,
                           experimentation)
Ejemplo n.º 2
0
def loadGame():
    with open("data.json", "r") as read_file:
        data = json.load(read_file)
        if data == "":
            texte = "pas de partie a chargé"
            jeu = Jeu.cree()
        else:
            jeu = data
            jeu["fenetre"] = Fenetre.cree(1000, 600)
    Jeu.joue(jeu)
Ejemplo n.º 3
0
    def stopBegin(self):
        '''
        Cette fonction permet de commencer le jeu et fermer le stup player
        '''
        self.gameUi(self.formGame)
        self.move_center(self.formGame)
        self.formGame.show()

        self.jeu = Jeu(self.listeJoueur, self.IA_level)
        self.formsetup.hide()
        self.jeu.main(self)
Ejemplo n.º 4
0
    def TestTransitionPosition(self):

        #        On test les positions intermediaires entre deux points

        liste = Jeu.transitionPositions((0, 0), (2, 0))
        self.assertEqual(liste, [(0, 0), (1, 0), (2, 0), (3, 0)])
        liste = Jeu.transitionPositions((0, 0), (0, 1))
        self.assertEqual(liste, [(0, 0), (0, 1), (0, 2)])
        liste = Jeu.transitionPositions((2, 0), (0, 0))
        self.assertEqual(liste, [(2, 0), (1, 0), (0, 0), (-1, 0)])
        liste = Jeu.transitionPositions((0, 2), (0, 0))
        self.assertEqual(liste, [(0, 2), (0, 1), (0, 0), (0, -1)])
        liste = Jeu.transitionPositions((0, 0), (0, 0))
        self.assertEqual(liste, [(0, 0)])
Ejemplo n.º 5
0
 def PlayAgain(self):
     #Lance une nouvelle partie avec les mêmes joueurs, la même taille de
     #grille et l'ordre de jeu inversé (joueur 2 commence si joueur 1 a 
     #commencé la dernière partie)
     self.menu.joueur1first=not self.menu.joueur1first
     self.jeu=Jeu.Game(self.menu.taille_grille,self.menu.joueur1,
                       self.menu.joueur2,self.menu.joueur1first)                             
     self.jeu.InitRandom()                     #initialisation aléatoire
     self.ShowGame()
Ejemplo n.º 6
0
    def __init__(self):
        self.__fenetre = pygame.display.set_mode((450, 450))
        pygame.display.set_caption('Snake')

        self.__resolution_x = 640
        self.__resolution_y = 480
        self.__corps_snake = pygame.image.load("case snake.png")
        print('Affichage cree')

        self.__serpent = Snake.Snake()
        self.__jeu = Jeu.Jeu()
Ejemplo n.º 7
0
        def Launch(name):
            #S'il n'y a rien, utilisateur a appuyé sans avoir selectionné de programme a lancer
            if (len(name) == 0):
                return

            root.destroy()
            #éxécute une fenêtre choisie dans la combobox
            if (name == "Multi-Compteur"):
                Comptmots.Comptmot()

            if (name == "Mini-jeu"):
                Jeu.jeu()

            if (name == "Feedback"):
                feedback.fb()

            if (name == "Calcul de la moyenne"):
                Moyenne.Moyenne()

            if (name == "Convertisseur d'unité"):
                Conversion.conversion()
Ejemplo n.º 8
0
def traiter_choix_menu_principal(action, options):
    #traitement du choix en fonction du bouton sélectionné dans le menu
    fin_utilisation = False
    if action == 0:  #Jouer
        enjeu = True
        while enjeu:
            jeu = Jeu()
            jeu.executer_jeu()
            enjeu = jeu.rejouer

    elif action == 1:  #Tutoriel
        lance_tutoriel()

    elif action == 2:  #Options
        lance_options(options)
        options.applique_changements()
        Affichage.init(options.hauteur_fenetre)

    elif action == 3:  #Quitter
        fin_utilisation = True

    return not fin_utilisation
Ejemplo n.º 9
0
 def deplace(self, plateau, deplacementsPossibles):
     coupLegaux = list(deplacementsPossibles.keys())
     compteur = Counter()
     for coupLegal in coupLegaux:
         for i in range(int(self.nombreDeSimulation)):
             copieDuPlateau = deepcopy(plateau)
             UtilitaireDeplacement.mettreAJourPlateau(
                 copieDuPlateau, deplacementsPossibles, coupLegal,
                 self.couleur)
             gagnant = Jeu.jouerPartie(
                 8, copieDuPlateau, DeplacementAleatoireIA(self.couleur),
                 DeplacementAleatoireIA(self.couleurOpposant), False, True)
             if gagnant == self.couleur:
                 compteur[coupLegal] += 1
     deplacementChoisi = compteur.most_common(
         1)[0][0] if len(compteur) > 0 else random.choice(coupLegaux)
     UtilitaireDeplacement.mettreAJourPlateau(plateau,
                                              deplacementsPossibles,
                                              deplacementChoisi,
                                              self.couleur)
Ejemplo n.º 10
0
    def __init__(self):
        super(GameInterface,self).__init__()
        
        #Lancement du menu pour définir les caractéristiques du jeu choisies
        #par le(s) joueur(s)
        self.menu=GameMenu() 

        #Définition du jeu
        self.jeu=Jeu.Game(self.menu.taille_grille,self.menu.joueur1, 
                          self.menu.joueur2,self.menu.joueur1first)                             
                
        #Initialisation de la grille de jeu
        self.jeu.InitRandom()                     #initialisation aléatoire

        #Création et initialisation de l'interface graphique du jeu
        #(on prend l'affichage en attribut de Interface car on en a besoin pour
        #récupérer les positions des boutons cliqués par les joueurs)
        self.affichage=QtGui.QGridLayout() 
        #(affichage est l'ensemble des éléments agencés sur l'interface) 
        self.setLayout(self.affichage)
        
        #Affichage de l'interface
        self.ShowGame() 
Ejemplo n.º 11
0
def launcher():
    pygame.init()
    font.init()

    screen = pygame.display.set_mode([1024, 768])
    #---------------------------------------------------------------------------------
    #Création du menu
    font_a = pygame.font.SysFont('arial', 40)
    font_b = pygame.font.SysFont('arial', 70)
    img_menu = pygame.image.load("start.jpg").convert()
    background_menu = pygame.transform.scale(img_menu, (1024, 768))

    #mid_x = pygame.draw.rect(screen, [255, 0, 0], [1024/2, 0, 2, 768], 0)
    #mid_y = pygame.draw.rect(screen, [255, 0, 0], [0, 768/2, 1024, 2], 0)

    font_start = font_a.render("START", 1, (255, 255, 255))
    font_score = font_a.render("SCORE", 1, (255, 255, 255))
    font_credit = font_a.render("CREDITS", 1, (255, 255, 255))
    font_regle = font_a.render("REGLES", 1, (255, 255, 255))
    font_quit = font_a.render("QUITTER", 1, (255, 255, 255))
    #---------------------------------------------------------------------------------
    #création des objets scores

    #police titre
    font_a = pygame.font.SysFont('arial', 70, bold=True)
    #police retour
    font_b = pygame.font.SysFont('arial', 30, bold=True)
    #police 1er
    font_c = pygame.font.SysFont('arial', 60, bold=True)
    #police 2eme et 3eme
    font_d = pygame.font.SysFont('arial', 45, bold=True)
    #police reste du classement
    font_e = pygame.font.SysFont('arial', 35)

    img_background = pygame.image.load("score.jpg").convert()
    img_gold = pygame.image.load("or.png").convert()
    img_silver = pygame.image.load("argent.png").convert()
    img_bronze = pygame.image.load("bronze.png").convert()

    gold = pygame.transform.scale(img_gold, (100, 100))
    silver = pygame.transform.scale(img_silver, (100, 100))
    bronze = pygame.transform.scale(img_bronze, (100, 100))
    score_background = pygame.transform.scale(img_background, (1024, 768))

    retour = pygame.draw.rect(screen, [255, 0, 0], [0, 720, 125, 50], 0)

    font_return = font_b.render("RETOUR", 1, (134, 210, 48))

    score_categorie = font_c.render("PLACE           NOM         SCORE", 1,
                                    (255, 0, 255))
    nom_un = font_c.render(result[0][0], 1, (255, 0, 0))
    nom_deux = font_d.render(result[0][1], 1, (255, 108, 0))
    nom_trois = font_d.render(result[0][2], 1, (255, 229, 0))
    nom_quatre = font_e.render(result[0][3], 1, (255, 255, 255))
    nom_cinque = font_e.render(result[0][4], 1, (255, 255, 255))
    nom_six = font_e.render(result[0][5], 1, (255, 255, 255))
    nom_sept = font_e.render(result[0][6], 1, (255, 255, 255))
    nom_huit = font_e.render(result[0][7], 1, (255, 255, 255))
    nom_neuf = font_e.render(result[0][8], 1, (255, 255, 255))
    nom_dix = font_e.render(result[0][9], 1, (255, 255, 255))

    score_un = font_c.render(result[1][0], 1, (255, 0, 0))
    score_deux = font_d.render(result[1][1], 1, (255, 108, 0))
    score_trois = font_d.render(result[1][2], 1, (255, 229, 0))
    score_quatre = font_e.render(result[1][3], 1, (255, 255, 255))
    score_cinque = font_e.render(result[1][4], 1, (255, 255, 255))
    score_six = font_e.render(result[1][5], 1, (255, 255, 255))
    score_sept = font_e.render(result[1][6], 1, (255, 255, 255))
    score_huit = font_e.render(result[1][7], 1, (255, 255, 255))
    score_neuf = font_e.render(result[1][8], 1, (255, 255, 255))
    score_dix = font_e.render(result[1][9], 1, (255, 255, 255))

    place_un = font_c.render("1er:", 1, (255, 0, 0))
    place_deux = font_d.render("2ème:", 1, (255, 108, 0))
    place_trois = font_d.render("3ème:", 1, (255, 229, 0))
    place_quatre = font_e.render("4ème:", 1, (255, 255, 255))
    place_cinque = font_e.render("5ème:", 1, (255, 255, 255))
    place_six = font_e.render("6ème:", 1, (255, 255, 255))
    place_sept = font_e.render("7ème:", 1, (255, 255, 255))
    place_huit = font_e.render("8ème:", 1, (255, 255, 255))
    place_neuf = font_e.render("9ème:", 1, (255, 255, 255))
    place_dix = font_e.render("10ème:", 1, (255, 255, 255))

    #-----------------------------------------------------------------------------------------------
    #Création des objets du crédit

    font_a_credit = pygame.font.SysFont('arial', 50)
    font_b_credit = pygame.font.SysFont('arial', 30)
    font_c_credit = pygame.font.SysFont('arial', 25)

    img_credit = pygame.image.load("credit.jpg").convert()

    credit_un = font_c_credit.render(
        "GAME DESIGN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KotProd",
        1, (255, 255, 255))
    credit_deux = font_c_credit.render(
        "ANIMATIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Jérémi Delaire",
        1, (255, 255, 255))
    credit_trois = font_c_credit.render(
        "LEVEL DESIGN. . . . . . . . . . . . . . . . . . . . . . . . . .Corentin Bordes,Rémi Toston,Emile Bergin",
        1, (255, 255, 255))
    credit_quatre = font_c_credit.render(
        "CHARACTER DESIGN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jérémi Delaire,Nicolas Fontal",
        1, (255, 255, 255))
    credit_cinque = font_c_credit.render(
        "MUSIQUE/BRUITAGE. . . . . . . . . . . . . . . . . . . . . . . . . . . .Karpe([email protected])",
        1, (255, 255, 255))
    credit_six = font_c_credit.render(
        "CONTROL DESIGN. . . . . . . . . . . . . . . . . . . . Jérémi Delaire, Emile Bergin, Corentin Bordes",
        1, (255, 255, 255))
    credit_sept = font_c_credit.render(
        "TEXTURE/ENVIRONNEMENT. . . . . . . . . . . . . . . . . . . . . . . . .Jérémi Delaire,Nicolas Fontal",
        1, (255, 255, 255))
    credit_huit = font_c_credit.render(
        "IMAGE MENU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Quentin Faure-Petraz,Nicolas Fontal",
        1, (255, 255, 255))
    credit_neuf = font_c_credit.render(
        "POCHETTE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nicolas Fontal",
        1, (255, 255, 255))
    credit_dix = font_c_credit.render(
        "MENUS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Quentin Faure-Petraz",
        1, (255, 255, 255))
    credit_onze = font_c_credit.render(
        "CHEF ARTISTIQUE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rémi Toston",
        1, (255, 255, 255))
    bravo = font_c_credit.render(
        "Bravo à toute l'équipe du projet pour cette performance !", 1,
        (255, 255, 255))
    #---------------------------------------------------------------------------
    #Création des objet pour la vue règle
    regle_background = pygame.image.load("regle.jpg").convert()
    font_regletxt_un = font_c_credit.render(
        "Règle du jeu: Le but est de faire le meilleur score en gagnant le maximum de points possible. Pour cela,",
        1, (255, 255, 255))
    font_regletxt_deux = font_c_credit.render(
        "il faut éviter les balles ennemis, riposter, et avancer en récupérant des orbes au passage. Pendant",
        1, (255, 255, 255))
    font_regletxt_trois = font_c_credit.render(
        "3 minutes, tuez le plus d'ennemis possibles et amassez un maximum d'orbe sans vous faire toucher, un",
        1, (255, 255, 255))
    font_regletxt_quatre = font_c_credit.render(
        "multiplicateur augmentera au fur et à mesure vous permettant d'amasser encore plus de points.",
        1, (255, 255, 255))
    font_regletxt_cinque = font_c_credit.render(
        "Cependant, si vous vous faites toucher, votre multiplicateur retombe à 1. Attention! Un bumper vous",
        1, (255, 255, 255))
    font_regletxt_six = font_c_credit.render(
        "permettra d'aller dans les airs et de changer de gravité afin de vous déplacer au plafond. Regardez où",
        1, (255, 255, 255))
    font_regletxt_sept = font_c_credit.render(
        "vous marchez: des plateformes vous expulse en arrière. Rassurez-vous, des plateformes vous aident à",
        1, (255, 255, 255))
    font_regletxt_huit = font_c_credit.render(
        "avancer en vous propulsant vers l'avant. 2 types d'ennemis se confrontent à vous: des tourelles et des",
        1, (255, 255, 255))
    font_regletxt_neuf = font_c_credit.render("cibles aériennes.", 1,
                                              (255, 255, 255))
    font_regletxt_dix = font_a_credit.render("Commandes:", 1, (255, 255, 255))
    font_regletxt_onze = font_b_credit.render(
        "Saut: Z; Déplcacement à gauche et à droite: Q et D; Tir: clic droit; Viser: Souris",
        1, (255, 255, 255))

    #---------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------
    #boucle affichage
    run = True
    accueil = True
    credit = False
    score = False
    regle = False
    x = 450
    y = 200
    pygame.mixer.music.load('music/menufi.mp3')
    pygame.mixer.music.play(1)

    #--------------------------------------------------------------------------------
    #affichage de l'accueil
    while run:
        screen.fill([0, 0, 0])
        screen.blit(background_menu, (0, 0))
        screen.blit(font_start, (x + 5, y))
        screen.blit(font_score, (x, y + 100))
        screen.blit(font_credit, (x - 10, y + 200))
        screen.blit(font_regle, (x - 8, y + 300))
        screen.blit(font_quit, (x - 13, y + 400))
        pygame.display.flip()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
            elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and event.pos[
                    0] > x - 13 and event.pos[0] < x + 130 and event.pos[
                        1] < y + 400 + 50 and event.pos[1] > y + 400:
                run = False
            elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and event.pos[
                    0] > x - 8 and event.pos[0] < x + 130 and event.pos[
                        1] < y + 300 + 50 and event.pos[1] > y + 300:
                regle = True
                accueil = False
            elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and event.pos[
                    0] > x - 10 and event.pos[0] < x + 130 and event.pos[
                        1] < y + 200 + 50 and event.pos[1] > y + 200:
                credit = True
                accueil = False
            elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and event.pos[
                    0] > x and event.pos[0] < x + 110 and event.pos[
                        1] < y + 100 + 50 and event.pos[1] > y + 100:
                score = True
                accueil = False
            elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and event.pos[
                    0] > x + 5 and event.pos[0] < x + 110 and event.pos[
                        1] < y + 50 and event.pos[1] > y:
                Jeu.main()
    #--------------------------------------------------------------------------------
    #affichage des crédits
        if accueil == False and credit == True:
            screen.fill([0, 0, 0])
            screen.blit(img_credit, (0, 0))
        while accueil == False and credit == True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    run = False
                    pygame.quit()
                elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and event.pos[
                        0] > 0 and event.pos[0] < 125 and event.pos[
                            1] < 770 and event.pos[1] > 720:
                    accueil = True
                    credit = False
            screen.blit(credit_un, (100, 80))
            screen.blit(credit_deux, (100, 120))
            screen.blit(credit_trois, (100, 160))
            screen.blit(credit_quatre, (100, 200))
            screen.blit(credit_cinque, (100, 240))
            screen.blit(credit_six, (100, 280))
            screen.blit(credit_sept, (100, 320))
            screen.blit(credit_huit, (100, 360))
            screen.blit(credit_neuf, (100, 400))
            screen.blit(credit_dix, (100, 440))
            screen.blit(credit_onze, (100, 480))
            screen.blit(bravo, (250, 550))
            pygame.display.flip()
    #--------------------------------------------------------------------------------
    #affichage des scores
        if accueil == False and score == True:
            screen.fill([0, 0, 0])
            screen.blit(score_background, (0, 0))
        while accueil == False and score == True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    run = False
                    pygame.quit()
                elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and event.pos[
                        0] > 0 and event.pos[0] < 125 and event.pos[
                            1] < 768 and event.pos[1] > 720:
                    accueil = True
                    score = False
            screen.blit(score_categorie, (140, 80))
            screen.blit(place_un, (170, 160))
            screen.blit(nom_un, (430, 160))
            screen.blit(score_un, (750, 160))
            screen.blit(place_deux, (170, 228))
            screen.blit(nom_deux, (450, 228))
            screen.blit(score_deux, (760, 228))
            screen.blit(place_trois, (170, 286))
            screen.blit(nom_trois, (450, 286))
            screen.blit(score_trois, (760, 286))
            screen.blit(place_quatre, (170, 354))
            screen.blit(nom_quatre, (470, 354))
            screen.blit(score_quatre, (770, 354))
            screen.blit(place_cinque, (170, 412))
            screen.blit(nom_cinque, (470, 412))
            screen.blit(score_cinque, (770, 412))
            screen.blit(place_six, (170, 470))
            screen.blit(nom_six, (470, 470))
            screen.blit(score_six, (770, 470))
            screen.blit(place_sept, (170, 528))
            screen.blit(nom_sept, (470, 528))
            screen.blit(score_sept, (770, 528))
            screen.blit(place_huit, (170, 586))
            screen.blit(nom_huit, (470, 586))
            screen.blit(score_huit, (770, 586))
            screen.blit(place_neuf, (170, 644))
            screen.blit(nom_neuf, (470, 644))
            screen.blit(score_neuf, (770, 644))
            screen.blit(place_dix, (170, 702))
            screen.blit(nom_dix, (470, 702))
            screen.blit(score_dix, (770, 702))
            pygame.display.flip()
#------------------------------------------------------------------------------
#affichage des règles
        if accueil == False and regle == True:
            screen.fill([0, 0, 0])
            screen.blit(regle_background, (0, 0))
            screen.blit(font_regletxt_un, (50, 100))
            screen.blit(font_regletxt_deux, (50, 140))
            screen.blit(font_regletxt_trois, (50, 180))
            screen.blit(font_regletxt_quatre, (50, 220))
            screen.blit(font_regletxt_cinque, (50, 260))
            screen.blit(font_regletxt_six, (50, 300))
            screen.blit(font_regletxt_sept, (50, 340))
            screen.blit(font_regletxt_huit, (50, 380))
            screen.blit(font_regletxt_neuf, (50, 420))
            screen.blit(font_regletxt_dix, (50, 500))
            screen.blit(font_regletxt_onze, (50, 560))
        while accueil == False and regle == True:
            pygame.display.flip()
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    run = False
                    pygame.quit()
                elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and event.pos[
                        0] > 0 and event.pos[0] < 125 and event.pos[
                            1] < 768 and event.pos[1] > 720:
                    accueil = True
                    regle = False


#-------------------------------------------------------------
    pygame.mixer.music.stop()
    pygame.quit()
Ejemplo n.º 12
0
 def __init__(self, screen):
     self.jeu = Jeu(menu, screen)
Ejemplo n.º 13
0
    def __init__(self):
        
        super().__init__()
        # Configuration de l'interface utilisateur.
        self.ui = Ui_interface_ihm()
        self.ui.setupUi(self)
        self.jeu = Jeu.Jeu(p.plateau, p.listeCartes, p.nombreJoueurs) #
        self.timer = QtCore.QTimer()
        
        #Mise en place de l'arrière plan
        palette = QtGui.QPalette()
        pixmap = QtGui.QPixmap("images/background.jpg")
        palette.setBrush(QtGui.QPalette.Background,QtGui.QBrush(pixmap))
        self.setPalette(palette)
        
        ######################################################################
        #partie liée à la fsm qui DOIT se trouver dans init

        #liste des états admissibles:
        self.states = ["pick","play","endGame"]
        
        #état dans lequel se situe la fsm au début
        self.current_state = "pick"
        
        #transition à effectuer au prochain appel de 'fsm' (valeur au démarrage)
        self.transition = "pick"
        
        #dictionnaire des transitions
        self.dict_tr = {
                        ("pick","play"):"play",
                        ("pick","pick"):"pick",
                        ("play","play"):"play",
                        ("play","pick"):"pick",
                        ("play","endGame"):"endGame",
                        ("endGame","endGame"):"endGame",
                        }
        
        #dictionnaire des actions à effectuer lors de la transition
        self.dict_ac = {
                        "play": self.play,
                        }
        
        #On lie le timeout à la fsm
        self.timer.start(speed)
        self.timer.timeout.connect(self.fsm)
        ######################################################################
        

        #Connecte les boutons aux fonctions définies en dessous

#        self.ui.bouton_partie.clicked.connect(self.restart)
        self.ui.bouton_instru.clicked.connect(self.chooseCard)
        self.ui.checkBox_1.stateChanged.connect(self.checkBox1)
        self.ui.checkBox_2.stateChanged.connect(self.checkBox2)
        self.ui.checkBox_3.stateChanged.connect(self.checkBox3)
        self.ui.checkBox_4.stateChanged.connect(self.checkBox4)
        self.ui.checkBox_5.stateChanged.connect(self.checkBox5)
        self.ui.checkBox_6.stateChanged.connect(self.checkBox6)
        self.ui.checkBox_7.stateChanged.connect(self.checkBox7)
        self.ui.checkBox_8.stateChanged.connect(self.checkBox8)
        self.ui.checkBox_9.stateChanged.connect(self.checkBox9)
        

        #Une fois que tout est pret on lance la partie
        self.jeu.plateau.prepare()
        self.jeu.prepareTour()
Ejemplo n.º 14
0
class GUI():
    def __init__(self):
        '''
    	Cette fonction initialise les attributs pour afficher les élements principaux
    	'''

        self.listeJoueur = []
        self.pseudo_joueur, self.IA_level = [], []
        self.valueTest = False
        self.formGame = QtGui.QDialog()
        self.FormLoad = QtGui.QWidget()
        self.formsetup = QtGui.QWidget()
        self.formLoad()
        self.etat = False  # cette variable nous dit si le joueur va continuer ou non (etat du tour)
        self.warningBoxFrom = QtGui.QWidget()

    def formLoad(self):
        '''
    	cette foonction permet de charger la fenetre de chargement du jeu
    	'''
        self.load_Ui(self.FormLoad)
        self.move_center(self.FormLoad)
        self.FormLoad.show()
        self.load_progress()
        self.FormLoad.hide()
        self.formsetup = QtGui.QWidget()
        self.setup_Ui(self.formsetup)
        self.move_center(self.formsetup)
        self.formsetup.show()

    def load_Ui(self, LoadForm):

        #Paramétrage de la FORM en elle-même
        LoadForm.setObjectName("LoadForm")
        LoadForm.resize(543, 297)
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(56, 56, 56))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        LoadForm.setPalette(palette)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(LoadForm.sizePolicy().hasHeightForWidth())
        LoadForm.setSizePolicy(sizePolicy)
        LoadForm.setMinimumSize(QtCore.QSize(543, 297))
        LoadForm.setMaximumSize(QtCore.QSize(543, 297))
        LoadForm.setCursor(QtGui.QCursor(QtCore.Qt.BusyCursor))

        LoadForm.setContextMenuPolicy(QtCore.Qt.NoContextMenu)

        # Icône
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("image/pawnR.png"), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        LoadForm.setWindowIcon(icon)
        LoadForm.setAutoFillBackground(False)

        #ProgressBar
        self.progressBar = QtGui.QProgressBar(LoadForm)
        self.progressBar.setGeometry(QtCore.QRect(100, 210, 351, 23))
        self.progressBar.setMaximum(100)
        self.progressBar.setProperty("value", 0)
        self.progressBar.setInvertedAppearance(False)
        self.progressBar.setObjectName("progressBar")
        self.labelGame = QtGui.QLabel(LoadForm)
        self.labelGame.setGeometry(QtCore.QRect(120, 30, 261, 111))
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(16)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.labelGame.sizePolicy().hasHeightForWidth())
        self.labelGame.setSizePolicy(sizePolicy)

        # Paramétrage des polices, couleurs du logo et du titre
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        self.labelGame.setPalette(palette)
        font = QtGui.QFont()
        font.setFamily("Utopia")
        font.setPointSize(36)
        font.setBold(True)
        font.setItalic(False)
        font.setWeight(75)
        self.labelGame.setFont(font)
        self.labelGame.setObjectName("labelGame")
        self.logoGame = QtGui.QLabel(LoadForm)
        self.logoGame.setGeometry(QtCore.QRect(390, 40, 31, 61))
        self.logoGame.setText("")
        self.logoGame.setPixmap(QtGui.QPixmap("image/pawnR.png"))
        self.logoGame.setScaledContents(True)
        self.logoGame.setObjectName("logoGame")

        # paramétrage des polices, couleurs de la version du jeu et copyright(designed by)
        self.designedLabel = QtGui.QLabel(LoadForm)
        self.designedLabel.setGeometry(QtCore.QRect(359, 280, 210, 20))
        font = QtGui.QFont()
        font.setItalic(True)
        self.designedLabel.setFont(font)
        self.designedLabel.setObjectName("designedLabel")
        self.version = QtGui.QLabel(LoadForm)
        self.version.setGeometry(QtCore.QRect(10, 280, 100, 17))
        font = QtGui.QFont()
        font.setItalic(True)
        self.version.setFont(font)
        self.version.setObjectName("version")
        self.labelLoading = QtGui.QLabel(LoadForm)
        self.labelLoading.setGeometry(QtCore.QRect(250, 190, 61, 17))

        #Tous les strings affichés sur le FORM, ré-éddition facile
        LoadForm.setWindowTitle("Welcome     ")
        self.labelGame.setText("Can\'t Stop !")
        self.designedLabel.setText("designed by Derras Eiman")
        self.version.setText("version 1.3")
        self.labelLoading.setText("Loading ...")

        QtCore.QMetaObject.connectSlotsByName(LoadForm)

    def load_progress(self):
        '''
        Cette fonction permet de faire avancer la progress bar
        '''

        for i in range(101):
            time.sleep(0.02)
            self.progressBar.setProperty("value", i)

    def setup_Ui(self, setupForm):
        '''
        cette fonction permet de charger la fenêtre du setup players avec tous ses éléments
        :param setupForm : QtGui.QDialog()
        '''
        # préparation de la form (backgroud,couleur, etc)
        setupForm.setObjectName("setupForm")
        setupForm.resize(591, 595)
        setupForm.setMinimumSize(QtCore.QSize(591, 595))
        setupForm.setMaximumSize(QtCore.QSize(591, 595))

        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(56, 56, 56))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)

        brush = QtGui.QBrush(QtGui.QColor(56, 56, 56))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
        setupForm.setPalette(palette)

        font = QtGui.QFont()
        font.setBold(False)
        font.setWeight(50)
        setupForm.setFont(font)

        self.titre_setup = QtGui.QLabel(setupForm)
        self.titre_setup.setGeometry(QtCore.QRect(60, 10, 541, 111))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        self.titre_setup.setPalette(palette)
        font = QtGui.QFont()
        font.setPointSize(23)
        self.titre_setup.setFont(font)
        self.titre_setup.setObjectName("titre_setup")

        # Icône
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("image/pawnR.png"), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        setupForm.setWindowIcon(icon)

        # Bloc de commande du nombre de joueurs
        self.GroupBOXhd = QtGui.QGroupBox(setupForm)
        self.GroupBOXhd.setGeometry(QtCore.QRect(0, 190, 581, 351))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.GroupBOXhd.setFont(font)
        self.GroupBOXhd.setTitle("")
        self.GroupBOXhd.setFlat(False)
        self.GroupBOXhd.setCheckable(False)
        self.GroupBOXhd.setObjectName("GroupBOXhd")
        self.label_PlayerX = QtGui.QLabel(self.GroupBOXhd)
        self.label_PlayerX.setGeometry(QtCore.QRect(80, 100, 171, 71))
        font = QtGui.QFont()
        font.setPointSize(23)
        font.setBold(False)
        font.setItalic(False)
        font.setUnderline(False)
        font.setWeight(50)
        font.setStrikeOut(False)
        font.setKerning(False)
        self.label_PlayerX.setFont(font)
        self.label_PlayerX.setObjectName("label_PlayerX")
        self.radioButton_USER = QtGui.QRadioButton(self.GroupBOXhd)
        self.radioButton_USER.setGeometry(QtCore.QRect(70, 230, 81, 31))
        font = QtGui.QFont()
        font.setPointSize(16)
        self.radioButton_USER.setFont(font)
        self.radioButton_USER.setChecked(True)
        self.radioButton_USER.setAutoExclusive(True)
        self.radioButton_USER.setObjectName("radioButton_USER")
        self.radioButton_IA = QtGui.QRadioButton(self.GroupBOXhd)
        self.radioButton_IA.setGeometry(QtCore.QRect(230, 230, 51, 31))
        font = QtGui.QFont()
        font.setPointSize(16)
        self.radioButton_IA.setFont(font)
        self.radioButton_IA.setObjectName("radioButton_IA")
        self.image_user = QtGui.QLabel(self.GroupBOXhd)
        self.image_user.setGeometry(QtCore.QRect(160, 220, 51, 41))
        self.image_user.setText("")
        self.image_user.setPixmap(QtGui.QPixmap("image/personnage.png"))
        self.image_user.setScaledContents(True)
        self.image_user.setObjectName("image_user")
        self.image_IA = QtGui.QLabel(self.GroupBOXhd)
        self.image_IA.setGeometry(QtCore.QRect(300, 220, 41, 41))
        self.image_IA.setText("")
        self.image_IA.setPixmap(QtGui.QPixmap("image/ordi.jpg"))
        self.image_IA.setScaledContents(True)
        self.image_IA.setObjectName("image_IA")
        self.button_OK = QtGui.QPushButton(self.GroupBOXhd)
        self.button_OK.setGeometry(QtCore.QRect(450, 230, 88, 29))
        self.button_OK.setObjectName("button_OK")
        self.windowsBlack = QtGui.QLabel(self.GroupBOXhd)
        self.windowsBlack.setGeometry(QtCore.QRect(20, 70, 551, 261))
        self.windowsBlack.setText("")
        self.windowsBlack.setPixmap(QtGui.QPixmap("image/carre-noir.png"))
        self.windowsBlack.setScaledContents(True)
        self.windowsBlack.setObjectName("windowsBlack")
        self.button_stop = QtGui.QPushButton(self.GroupBOXhd)
        self.button_stop.setGeometry(QtCore.QRect(450, 270, 88, 29))
        self.button_stop.setObjectName("button_stop")
        self.button_stop.setEnabled(False)

        self.button_begin = QtGui.QPushButton(self.GroupBOXhd)
        self.button_begin.setGeometry(QtCore.QRect(70, 110, 150, 50))
        self.button_begin.setObjectName("button_begin")
        self.button_begin.setEnabled(True)
        self.button_begin.hide()
        self.button_begin.setText("BEGIN THE GAME")

        self.instru2 = QtGui.QLabel(self.GroupBOXhd)
        self.instru2.setGeometry(QtCore.QRect(60, 20, 341, 21))
        self.instru2.setObjectName("instru2")
        self.instru1 = QtGui.QLabel(self.GroupBOXhd)
        self.instru1.setGeometry(QtCore.QRect(60, 0, 360, 16))
        self.instru1.setTextFormat(QtCore.Qt.AutoText)
        self.instru1.setObjectName("instru1")
        self.label = QtGui.QLabel(self.GroupBOXhd)
        self.label.setGeometry(QtCore.QRect(30, 80, 531, 241))
        self.label.setText("")
        self.label.setPixmap(QtGui.QPixmap("image/carre2.png"))
        self.label.setObjectName("label")
        self.windowsBlack.raise_()
        self.label.raise_()
        self.label_PlayerX.raise_()
        self.radioButton_IA.raise_()
        self.image_user.raise_()
        self.button_OK.raise_()
        self.button_stop.raise_()
        self.button_begin.raise_()
        self.instru2.raise_()
        self.instru1.raise_()
        self.image_IA.raise_()
        self.radioButton_USER.raise_()
        self.label_Config = QtGui.QLabel(setupForm)
        self.label_Config.setGeometry(QtCore.QRect(40, 540, 241, 41))
        font = QtGui.QFont()
        font.setPointSize(18)
        self.label_Config.setFont(font)
        self.label_Config.setObjectName("label_Config")
        self.label_info_config = QtGui.QLabel(setupForm)
        self.label_info_config.setGeometry(QtCore.QRect(300, 540, 331, 41))
        self.label_info_config.setFont(font)
        self.label_info_config.setObjectName("label_info_config")

        font = QtGui.QFont()
        font.setPointSize(17)
        font.setBold(True)
        font.setWeight(75)
        self.label_info_config.setFont(font)

        # On peut choisir le choix du nom de joueur (Player ou AI)
        self.nom_joueur = QtGui.QLineEdit(setupForm)
        self.nom_joueur.setGeometry(QtCore.QRect(250, 306, 150, 41))
        self.nom_joueur.setText("")

        self.label_username = QtGui.QLabel(setupForm)
        self.label_username.setGeometry(QtCore.QRect(255, 332, 331, 41))
        self.label_username.setText("username")
        font = QtGui.QFont()
        font.setPointSize(8)
        font.setItalic(True)
        self.label_username.setFont(font)

        self.Choix_level_IA = QtGui.QComboBox(setupForm)
        self.Choix_level_IA.setGeometry(QtCore.QRect(301, 467, 60, 30))
        for x in range(1, 5):
            self.Choix_level_IA.addItem(str(x))

        self.label_level = QtGui.QLabel(setupForm)
        self.label_level.setGeometry(QtCore.QRect(255, 477, 100, 14))
        self.label_level.setObjectName("designedLabel")
        self.label_level.setText("IA level")

        #Tous les strings affichés sur le FORM, ré-éddition facile
        setupForm.setWindowTitle("SETUP")
        self.titre_setup.setText("You can select the type of player")
        self.label_PlayerX.setText("Player 1 :")
        self.radioButton_USER.setText("User")
        self.radioButton_IA.setText("IA")
        self.button_OK.setText("OK")
        self.button_stop.setText("STOP")
        self.instru2.setText(
            "<html><head/><body><p>* press STOP if you don\'t want any more players</p></body></html>"
        )
        self.instru1.setText(
            "* choose the type and a username of player and press OK")
        self.label_Config.setText("Your configuration : ")
        self.label_info_config.setText("")

        # appel des fonctions lorsque boutton préssé
        QtCore.QObject.connect(self.button_OK, QtCore.SIGNAL("clicked()"),
                               self.ajoutPlayer)
        QtCore.QObject.connect(self.button_stop, QtCore.SIGNAL("clicked()"),
                               self.stopChoix)
        QtCore.QObject.connect(self.button_begin, QtCore.SIGNAL("clicked()"),
                               self.stopBegin)
        QtCore.QMetaObject.connectSlotsByName(setupForm)

    def ajoutPlayer(self):
        '''
        Cette fonction permet d'ajouter des joueurs à la partie
        On peut également fournir un pseudo dans l'interface
        '''
        mot = ""
        if len(self.listeJoueur) >= 0 and len(
                self.listeJoueur
        ) <= 3:  # on vérifie qu'il a au moins 2 joueurs (max 4)

            self.listeJoueur.append(self.radioButton_IA.isChecked())
            if len(self.listeJoueur) + 1 != 5:

                self.label_PlayerX.setText("Player " +
                                           str(len(self.listeJoueur) + 1) +
                                           " :")
            else:
                self.label_PlayerX.setText("")
                self.button_begin.show()
                self.button_OK.setEnabled(False)
                self.button_stop.setEnabled(False)

            for joueur in self.listeJoueur:
                if joueur == True:
                    mot += "AI,"
                else:
                    mot += "USER,"

            mot = mot[:len(mot) - 1]
            self.label_info_config.setText("[" + mot + "]")

        if len(self.listeJoueur) > 1 and len(self.listeJoueur) < 4:
            self.button_stop.setEnabled(True)

        if self.nom_joueur.text() == "":
            nom_generate = ""
            if self.radioButton_IA.isChecked():
                i = 0
                for ia in self.listeJoueur:
                    if ia == True:
                        i += 1
                nom_generate = "IA_" + str(i)

            else:
                i = 0
                for player in self.listeJoueur:
                    if player == False:
                        i += 1
                nom_generate = "USER_" + str(i)

            self.pseudo_joueur.append(nom_generate)
        else:
            self.pseudo_joueur.append(self.nom_joueur.text())

        self.IA_level.append(str(self.Choix_level_IA.currentText(
        ))) if self.radioButton_IA.isChecked() else self.IA_level.append(None)
        self.nom_joueur.setText("")

        if len(self.pseudo_joueur) == 4:
            self.nom_joueur.hide()
            self.label_username.hide()

    def stopChoix(self):
        '''
        cette fonction permet d'arréter le setup player
        '''

        self.label_PlayerX.setText("")
        self.button_begin.show()
        self.button_OK.setEnabled(False)
        self.button_stop.setEnabled(False)
        self.nom_joueur.hide()
        self.label_username.hide()

    def stopBegin(self):
        '''
        Cette fonction permet de commencer le jeu et fermer le stup player
        '''
        self.gameUi(self.formGame)
        self.move_center(self.formGame)
        self.formGame.show()

        self.jeu = Jeu(self.listeJoueur, self.IA_level)
        self.formsetup.hide()
        self.jeu.main(self)

    def gameUi(self, FormGame):
        '''
        Cette fonction affiche la fenêtre du jeu ainsi que tous ses élements principaux
        :param formGame : QtGui.QDialog()
        '''

        # Paramétrage de la FORM en elle-même
        FormGame.setObjectName("FormGame")
        FormGame.resize(1220, 690)
        FormGame.setMinimumSize(QtCore.QSize(1220, 690))
        FormGame.setMaximumSize(QtCore.QSize(1220, 690))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(1, 29, 70))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush)
        brush = QtGui.QBrush(QtGui.QColor(64, 64, 64))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(56, 56, 56))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(1, 29, 70))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush)
        brush = QtGui.QBrush(QtGui.QColor(64, 64, 64))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(56, 56, 56))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(1, 29, 70))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush)
        brush = QtGui.QBrush(QtGui.QColor(56, 56, 56))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(56, 56, 56))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        FormGame.setPalette(palette)
        icon = QtGui.QIcon()

        #icône
        icon.addPixmap(QtGui.QPixmap("image/pawnR.png"), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        FormGame.setWindowIcon(icon)

        # on affiche le plateau du jeu et on crée les pions
        self.plateau = QtGui.QLabel(FormGame)
        self.plateau.setGeometry(QtCore.QRect(338, 39, 543, 527))
        self.plateau.setText("")
        self.plateau.setPixmap(QtGui.QPixmap("image/plateauOf.png"))
        self.plateau.setScaledContents(True)
        self.plateau.setObjectName("label")

        listePawns = []

        for couleur in ["G", "Y", "C", "P", "B"]:
            for i in range(2, 13):
                listePawns.append(couleur + str(i))

        distancePixelH = 403
        distancePixelV = 328
        partieGauche = 0
        partieCoul = 0
        for pawnC in listePawns:
            self.__dict__[pawnC] = QtGui.QLabel(FormGame)
            self.__dict__[pawnC].setGeometry(
                QtCore.QRect(distancePixelH, distancePixelV, 13, 17))
            self.__dict__[pawnC].setPixmap(
                QtGui.QPixmap("image/pawn" + str(pawnC[:1]) + ".png"))
            self.__dict__[pawnC].setScaledContents(True)
            self.__dict__[pawnC].setObjectName("pawnC")
            self.__dict__[pawnC].hide()

            if partieGauche < 5:
                distancePixelH += 40
                distancePixelV += 35
            else:
                distancePixelH += 40
                distancePixelV -= 35

            partieGauche += 1
            partieCoul += 1
            if partieCoul == 11:
                distancePixelH = 403
                distancePixelV = 328
                partieCoul = 0
                partieGauche = 0

        # ce label n'a pas d'importance, il ajoute un charme à l'interface
        self.label_player_name = QtGui.QLabel(FormGame)
        self.label_player_name.setGeometry(QtCore.QRect(927, 20, 261, 70))
        font = QtGui.QFont()
        font.setPointSize(30)
        font.setBold(True)
        font.setWeight(75)
        self.label_player_name.setAlignment(QtCore.Qt.AlignCenter)
        self.label_player_name.setFont(font)
        self.label_player_name.setObjectName("label_Tour_j")

        # on affiche le boutton qui va permettre de faire monter les pions qu'on les dés voies sont connues
        self.image_lancer = QtGui.QPushButton(FormGame)
        self.image_lancer.setGeometry(QtCore.QRect(960, 500, 85, 85))
        self.image_lancer.setIconSize(QtCore.QSize(85, 85))
        self.image_lancer.setObjectName("image_lancer")
        iconLancer = QtGui.QIcon()
        iconLancer.addPixmap(QtGui.QPixmap("image/continue.png"),
                             QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.image_lancer.setIcon(iconLancer)

        # on affiche le boutton qui va permettre de lancer les dés
        self.image_lancerDe = QtGui.QPushButton(FormGame)
        self.image_lancerDe.setGeometry(QtCore.QRect(1018, 600, 85, 69))
        self.image_lancerDe.setIconSize(QtCore.QSize(85, 85))
        self.image_lancerDe.setObjectName("image_lancer")
        iconLancerDe = QtGui.QIcon()
        iconLancerDe.addPixmap(QtGui.QPixmap("image/proba.png"),
                               QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.image_lancerDe.setIcon(iconLancerDe)

        # on affiche le boutton qui va permettre d'arréter le tour
        self.imageStop = QtGui.QPushButton(FormGame)
        self.imageStop.setGeometry(QtCore.QRect(1075, 500, 85, 85))
        self.imageStop.setIconSize(QtCore.QSize(85, 85))
        self.imageStop.setObjectName("imageStop")
        iconStop = QtGui.QIcon()
        iconStop.addPixmap(QtGui.QPixmap("image/Stop.png"), QtGui.QIcon.Normal,
                           QtGui.QIcon.Off)
        self.imageStop.setIcon(iconStop)

        # on pointe les différentes fonctions pour chaque boutton
        QtCore.QObject.connect(self.image_lancer, QtCore.SIGNAL("clicked()"),
                               self.playgame)
        QtCore.QObject.connect(self.imageStop, QtCore.SIGNAL("clicked()"),
                               self.STOPgame)
        QtCore.QObject.connect(self.image_lancerDe, QtCore.SIGNAL("clicked()"),
                               self.continueGame)

        # On affiche les deux lignes verticales noirs de l'interface
        self.ligneN1 = QtGui.QLabel(FormGame)
        self.ligneN1.setGeometry(QtCore.QRect(320, -20, 10, 761))
        self.ligneN1.setText("")
        self.ligneN1.setPixmap(QtGui.QPixmap("image/carre-noir.png"))
        self.ligneN1.setObjectName("ligneN1")
        self.ligneN2 = QtGui.QLabel(FormGame)
        self.ligneN2.setGeometry(QtCore.QRect(890, -30, 10, 761))
        self.ligneN2.setText("")
        self.ligneN2.setPixmap(QtGui.QPixmap("image/carre-noir.png"))
        self.ligneN2.setObjectName("ligneN2")

        # On créé le label qui affiche l'état du jeu
        self.label_state_game = QtGui.QLabel(FormGame)
        self.label_state_game.setGeometry(QtCore.QRect(19, -30, 331, 181))
        font = QtGui.QFont()
        font.setPointSize(22)
        font.setItalic(False)
        font.setUnderline(True)
        self.label_state_game.setFont(font)
        self.label_state_game.setObjectName("label_state_game")
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        self.label_state_game.setPalette(palette)
        self.label_state_game.setFont(font)
        self.label_state_game.setObjectName("label_state_game")

        # On crée les dés qui seront affichés sur le board, pour une plus grande intéractivité
        self.choix1_1 = QtGui.QLabel(FormGame)
        self.choix1_1.setGeometry(QtCore.QRect(970, 140, 41, 41))
        self.choix1_1.setPixmap(QtGui.QPixmap("image/de6.gif"))
        self.choix1_1.setScaledContents(True)
        self.choix1_1.setObjectName("choix1_1")
        self.choix1_2 = QtGui.QLabel(FormGame)
        self.choix1_2.setGeometry(QtCore.QRect(1020, 140, 41, 41))
        self.choix1_2.setPixmap(QtGui.QPixmap("image/de5.gif"))
        self.choix1_2.setScaledContents(True)
        self.choix1_2.setObjectName("choix1_2")
        self.choix1_3 = QtGui.QLabel(FormGame)
        self.choix1_3.setGeometry(QtCore.QRect(1110, 140, 41, 41))
        self.choix1_3.setPixmap(QtGui.QPixmap("image/de4.gif"))
        self.choix1_3.setScaledContents(True)
        self.choix1_3.setObjectName("choix1_3")
        self.choix1_4 = QtGui.QLabel(FormGame)
        self.choix1_4.setGeometry(QtCore.QRect(1160, 140, 41, 41))
        self.choix1_4.setPixmap(QtGui.QPixmap("image/de3.gif"))
        self.choix1_4.setScaledContents(True)
        self.choix1_4.setObjectName("choix1_4")
        self.choix2_2 = QtGui.QLabel(FormGame)
        self.choix2_2.setGeometry(QtCore.QRect(990, 200, 41, 41))
        self.choix2_2.setPixmap(QtGui.QPixmap("image/de5.gif"))
        self.choix2_2.setScaledContents(True)
        self.choix2_2.setObjectName("choix2_2")
        self.choix2_4 = QtGui.QLabel(FormGame)
        self.choix2_4.setGeometry(QtCore.QRect(1130, 200, 41, 41))
        self.choix2_4.setPixmap(QtGui.QPixmap("image/de3.gif"))
        self.choix2_4.setScaledContents(True)
        self.choix2_4.setObjectName("choix2_4")
        self.choix2_1 = QtGui.QLabel(FormGame)
        self.choix2_1.setGeometry(QtCore.QRect(940, 200, 41, 41))
        self.choix2_1.setPixmap(QtGui.QPixmap("image/de6.gif"))
        self.choix2_1.setScaledContents(True)
        self.choix2_1.setObjectName("choix2_1")
        self.choix2_3 = QtGui.QLabel(FormGame)
        self.choix2_3.setGeometry(QtCore.QRect(1080, 200, 41, 41))
        self.choix2_3.setPixmap(QtGui.QPixmap("image/de4.gif"))
        self.choix2_3.setScaledContents(True)
        self.choix2_3.setObjectName("choix2_3")
        self.choix3_4 = QtGui.QLabel(FormGame)
        self.choix3_4.setGeometry(QtCore.QRect(1160, 260, 41, 41))
        self.choix3_4.setPixmap(QtGui.QPixmap("image/de3.gif"))
        self.choix3_4.setScaledContents(True)
        self.choix3_4.setObjectName("choix3_4")
        self.choix3_3 = QtGui.QLabel(FormGame)
        self.choix3_3.setGeometry(QtCore.QRect(1110, 260, 41, 41))
        self.choix3_3.setPixmap(QtGui.QPixmap("image/de4.gif"))
        self.choix3_3.setScaledContents(True)
        self.choix3_3.setObjectName("choix3_3")
        self.choix3_1 = QtGui.QLabel(FormGame)
        self.choix3_1.setGeometry(QtCore.QRect(970, 260, 41, 41))
        self.choix3_1.setPixmap(QtGui.QPixmap("image/de6.gif"))
        self.choix3_1.setScaledContents(True)
        self.choix3_1.setObjectName("choix3_1")
        self.choix3_2 = QtGui.QLabel(FormGame)
        self.choix3_2.setGeometry(QtCore.QRect(1020, 260, 41, 41))
        self.choix3_2.setPixmap(QtGui.QPixmap("image/de5.gif"))
        self.choix3_2.setScaledContents(True)
        self.choix3_2.setObjectName("choix3_2")

        #on créé des checkbox qui symboliseront les couples de voies possibles
        self.groupBox = QtGui.QGroupBox(FormGame)
        self.groupBox.setGeometry(QtCore.QRect(950, 320, 241, 131))
        self.groupBox.setObjectName("groupBox")
        self.routes1 = QtGui.QRadioButton(self.groupBox)
        self.routes1.setGeometry(QtCore.QRect(10, 40, 101, 22))
        self.routes1.setObjectName("radioButton")
        self.routes1.setChecked(True)
        self.routes2 = QtGui.QRadioButton(self.groupBox)
        self.routes2.setGeometry(QtCore.QRect(10, 70, 101, 22))
        self.routes2.setObjectName("radioButton_2")
        self.routes3 = QtGui.QRadioButton(self.groupBox)
        self.routes3.setGeometry(QtCore.QRect(10, 100, 101, 22))
        self.routes3.setObjectName("radioButton_3")
        # On crée des éléments en plus dans l'interface, "&" entre les dés affichés
        self.et1 = QtGui.QLabel(FormGame)
        self.et1.setGeometry(QtCore.QRect(1080, 140, 31, 41))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)

        self.et1.setPalette(palette)
        font = QtGui.QFont()
        font.setPointSize(17)
        self.et1.setFont(font)
        self.et1.setObjectName("et1")
        self.et1_2 = QtGui.QLabel(FormGame)
        self.et1_2.setGeometry(QtCore.QRect(1050, 200, 31, 41))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        self.et1_2.setPalette(palette)
        font = QtGui.QFont()
        font.setPointSize(17)
        self.et1_2.setFont(font)
        self.et1_2.setObjectName("et1_2")
        self.et1_3 = QtGui.QLabel(FormGame)
        self.et1_3.setGeometry(QtCore.QRect(1080, 260, 31, 41))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        self.et1_3.setPalette(palette)
        font = QtGui.QFont()
        font.setPointSize(17)
        self.et1_3.setFont(font)
        self.et1_3.setObjectName("et1_3")

        # dans cette partie on affiche : le nombre de joueurs, les routes libres ou conquises
        # le type du joueur, le logo du joueur...
        self.Nb_players = QtGui.QLabel(FormGame)
        self.Nb_players.setGeometry(QtCore.QRect(20, 400, 220, 41))
        font = QtGui.QFont()
        font.setPointSize(15)
        self.Nb_players.setFont(font)
        self.Nb_players.setObjectName("Nb_players")

        self.label_player_t = QtGui.QLabel(FormGame)
        self.label_player_t.setGeometry(QtCore.QRect(10, 140, 101, 61))
        font = QtGui.QFont()
        font.setPointSize(21)
        self.label_player_t.setFont(font)
        self.label_player_t.setObjectName("label_player_t")
        self.routes_free = QtGui.QLabel(FormGame)
        self.routes_free.setGeometry(QtCore.QRect(20, 440, 171, 41))
        font = QtGui.QFont()
        font.setPointSize(15)
        self.routes_free.setFont(font)
        self.routes_free.setObjectName("routes_free")

        self.Conquered_routes = QtGui.QLabel(FormGame)
        self.Conquered_routes.setGeometry(QtCore.QRect(20, 485, 230, 31))
        font = QtGui.QFont()
        font.setPointSize(15)
        self.Conquered_routes.setFont(font)
        self.Conquered_routes.setObjectName("Conquered_routes")

        self.logo_joueur_t = QtGui.QLabel(FormGame)
        self.logo_joueur_t.setGeometry(QtCore.QRect(120, 150, 21, 31))
        self.logo_joueur_t.setText("")
        self.logo_joueur_t.setPixmap(QtGui.QPixmap("image/pawnP.png"))
        self.logo_joueur_t.setScaledContents(True)
        self.logo_joueur_t.setObjectName("logo_joueur_t")
        self.player_Nb_pawns = QtGui.QLabel(FormGame)
        self.player_Nb_pawns.setGeometry(QtCore.QRect(20, 200, 281, 21))
        font = QtGui.QFont()
        font.setPointSize(11)
        self.player_Nb_pawns.setFont(font)
        self.player_Nb_pawns.setObjectName("player_Nb_pawns")
        self.player_Nb_routes = QtGui.QLabel(FormGame)
        self.player_Nb_routes.setGeometry(QtCore.QRect(20, 230, 211, 21))
        font = QtGui.QFont()
        font.setPointSize(11)
        self.player_Nb_routes.setFont(font)
        self.player_Nb_routes.setObjectName("player_Nb_routes")
        self.player_Nb_routes_2 = QtGui.QLabel(FormGame)
        self.player_Nb_routes_2.setGeometry(QtCore.QRect(20, 260, 181, 21))
        font = QtGui.QFont()
        font.setPointSize(11)
        self.player_Nb_routes_2.setFont(font)
        self.player_Nb_routes_2.setObjectName("player_Nb_routes_2")

        #On affiche le titre du jeu
        self.titre = QtGui.QLabel(FormGame)
        self.titre.setGeometry(QtCore.QRect(465, 560, 301, 61))
        font = QtGui.QFont()
        font.setPointSize(43)
        font.setBold(True)
        font.setWeight(75)
        self.titre.setFont(font)
        self.titre.setObjectName("label_5")

        # On affiche la devise du jeu
        self.devise = QtGui.QLabel(FormGame)
        self.devise.setGeometry(QtCore.QRect(500, 640, 271, 21))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        self.devise.setPalette(palette)
        font = QtGui.QFont()
        font.setPointSize(15)
        self.devise.setFont(font)
        self.devise.setObjectName("label_6")

        # On affiche qui a gagné
        self.label_winner = QtGui.QLabel(FormGame)
        self.label_winner.setGeometry(QtCore.QRect(20, 580, 230, 71))

        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(133, 133, 133))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        self.label_winner.setPalette(palette)
        self.label_winner.hide()
        font = QtGui.QFont()
        font.setPointSize(32)
        font.setBold(True)
        font.setUnderline(True)
        font.setWeight(75)
        font.setKerning(True)
        self.label_winner.setFont(font)
        self.label_winner.setObjectName("label_winner")
        self.image_winner = QtGui.QLabel(FormGame)
        self.image_winner.setGeometry(QtCore.QRect(243, 577, 30, 60))
        self.image_winner.setText("")
        self.image_winner.setObjectName("image_winner")
        self.image_winner.setScaledContents(True)

        #on désactive de base les bouttons :  image_lancerDe et imageStop au début du jeu
        self.image_lancerDe.setEnabled(False)
        self.imageStop.setEnabled(False)

        #Tous les strings affichés sur le FORM, ré-éddition facile
        FormGame.setWindowTitle("Can\'t Stop")
        self.label_player_name.setText("FormGame")
        self.label_state_game.setText("State of board game")
        self.groupBox.setTitle("Choice your routes")
        self.routes1.setText("Routes 6")
        self.routes2.setText("Routes 10")
        self.routes3.setText("Routes 9")
        self.et1.setText("&")
        self.et1_2.setText("&")
        self.et1_3.setText("&")
        self.Nb_players.setText("Number of players :  4")
        self.label_player_t.setText("Player : ")
        self.routes_free.setText("Routes free :  6")
        self.Conquered_routes.setText("Conquered routes :  6")
        self.player_Nb_pawns.setText("* The player has 7 pawns on the board")
        self.player_Nb_routes.setText("* The player hold 2 routes")
        self.player_Nb_routes_2.setText("* Type of player : IA")
        self.titre.setText("Can\'t stop ")
        self.devise.setText("the Sid Sackson classic")
        self.label_winner.setText("WINNER !")

        QtCore.QMetaObject.connectSlotsByName(FormGame)

    def move_Bonze_Paws_Board(self, nom, distancePixelH, distancePixelV):
        """
        Cette fonction permet de déplacer les bonzes ou les pions sur l'interface
        :param nom : string
	    :param distancePixelH: int
	    :param distancePixelV: int
        """

        nom = nom.replace(" ", "")
        self.__dict__[nom].show()
        self.__dict__[nom].setGeometry(
            QtCore.QRect(distancePixelH, distancePixelV, 13, 17))

    def playgame(self):

        self.jeu.waitObjet.gestion_time_stop()
        self.image_lancerDe.setEnabled(True)
        self.imageStop.setEnabled(True)
        self.image_lancer.setEnabled(False)
        for x in range(1, 4):
            self.__dict__["routes" + str(x)].setEnabled(False)
        '''
        Cette fonction permet de lancer le jeu quand le checkbox des voies est cliqué 
        '''

    def STOPgame(self):

        self.etat = True
        self.jeu.waitObjet.gestion_time_stop()
        self.image_lancerDe.setEnabled(False)
        self.imageStop.setEnabled(False)
        self.image_lancer.setEnabled(True)
        for x in range(1, 4):
            self.__dict__["routes" + str(x)].setEnabled(True)
        """
        Cette fonction permet d'arréter le tour actuel
        """

    def continueGame(self):
        self.etat = False
        self.jeu.waitObjet.gestion_time_stop()
        self.image_lancerDe.setEnabled(False)
        self.imageStop.setEnabled(False)
        self.image_lancer.setEnabled(True)
        for i in range(1, 4):
            self.__dict__["routes" + str(i)].setEnabled(True)
        """
        Cette fonction permet de relancer les dés
        """

    def warningBox(self):

        QtGui.QMessageBox.warning(self.warningBoxFrom, " Message ",
                                  " there is a available route, retry ! ")
        for i in range(1, 4):
            self.__dict__["routes" + str(i)].setEnabled(True)
        """
        Cette fonction permet d'afficher un message box symbolisant qu'il a une voie disponible
        et donc de réassayer
        """

    def move_center(self, form):

        ecran_resolution = QtGui.QDesktopWidget()
        ecran_resolution.screenGeometry()
        width = (ecran_resolution.width() / 2)
        height = (ecran_resolution.height() / 2)
        width_frame_local = (form.frameSize().width() / 2)
        height_frame_local = (form.frameSize().height() / 2)
        form.move(width - width_frame_local, height - height_frame_local)
        '''
Ejemplo n.º 15
0
 def test_Base(self): # CF Bateau.py sur les noms
     nbCase = 10
     jeu = Jeu(nbCase) # vous n'avez pas import Jeu
     self.assertEqual(False,jeu.get_Grille(1,1))
     self.assertEqual("Error Out Of Bound",jeu.get_Grille(1,nbCase +1))
Ejemplo n.º 16
0
import Jeu
import os
#-----------------------------
#MAIN
game = Jeu.Jeu()
game.présentation()
game.menu()
choice = 0
while (choice == 0):
    choice = int(input("Choix:"))

    #Indentifiez vous
    if (choice == 1):
        c, n, sp, spss, sim, sf, ssubj, usr, data = game.login()
        if (not c):
            choice = 0
            print("utilisateur ou mot de passe erroné.")
        else:
            os.system("cls")
            print("Bienvenu ", n)
            print("Last active:", data)
            print("Maximum Score, Présent:", sp, "Passé composé:", spss,
                  "Imparfait:", sim, "Futur:", sf, "Subjonctif:", ssubj, "\n")
            game.main(usr)

            os.system("cls")
            game.présentation()
            game.menu()
            choice = 0

    #Créer votre compt
Ejemplo n.º 17
0
def partieSauvegarde(event, fenetre):
    Fenetre.quitte(fenetre)
    sauvegarde = pickle.load(open("save.txt", "rb"))
    jeu = (Fenetre.cree(1000,
                        600), sauvegarde[0], sauvegarde[1], sauvegarde[2])
    Jeu.joue(jeu, is_save=True)
Ejemplo n.º 18
0
    def test_Jeu(self):
        jeu = Jeu()

        self.assertEqual(
            True, jeu.init_Jeu()
        )  # cette fonction retourne forcément True si elle termine, vous auriez pu faire une fonction void et simplement l'appeler
Ejemplo n.º 19
0
    def testTri(self):

        #        On test si les cartes sont rangées par ordre décroissant de vitesse
        #        (2e paramètre des couples de la liste)

        liste = [(1, 3), (2, 3), (3, 3)]
        Jeu.tri_bulle(liste)
        self.assertEqual(liste, [(1, 3), (2, 3), (3, 3)])

        liste = [(1, 1), (2, 4), (3, 6)]
        Jeu.tri_bulle(liste)
        self.assertEqual(liste, [(3, 6), (2, 4), (1, 1)])

        liste = [(1, -1), (2, 6), (3, 2)]
        Jeu.tri_bulle(liste)
        self.assertEqual(liste, [(2, 6), (3, 2), (1, -1)])

        liste = [(1, 4), (2, 1), (3, 2)]
        Jeu.tri_bulle(liste)
        self.assertEqual(liste, [(1, 4), (3, 2), (2, 1)])

        liste = [(1, -1), (2, 1), (3, 2)]
        Jeu.tri_bulle(liste)
        self.assertEqual(liste, [(3, 2), (2, 1), (1, -1)])

        liste = [(1, 1), (2, 2), (3, -1)]
        Jeu.tri_bulle(liste)
        self.assertEqual(liste, [(2, 2), (1, 1), (3, -1)])

        liste = [(1, 3), (2, 2), (3, -1)]
        Jeu.tri_bulle(liste)
        self.assertEqual(liste, [(1, 3), (2, 2), (3, -1)])
Ejemplo n.º 20
0
def partieNormale(event, fenetre=None):
    if fenetre != None:
        Fenetre.quitte(fenetre)
    jeu = Jeu.cree()
    Jeu.joue(jeu)
Ejemplo n.º 21
0
 def get_carte_route_la_plus_longue(self,terre):
     ''' Vérifie si ce joueur a la carte de la route al plus longue sur cette terre'''
     u = Jeu.get_route_la_plus_longue(terre, self.bdd)
     return u!=0 and u[0]== self.num
Ejemplo n.º 22
0
 def enAttente(idReservation):
   return (datetime.date.today() > Jeu.getDateReserv(idReservation))
Ejemplo n.º 23
0
def newGame():
    jeu = Jeu.cree()
    Jeu.joue(jeu)
Ejemplo n.º 24
0
    def __init__(self):

        super().__init__()
        # Configuration de l'interface utilisateur.
        self.ui = Ui_interface_ihm()
        self.ui.setupUi(self)
        self.plateau = p.plateau
        self.pioche = p.listeCartes
        self.jeu = Jeu.Jeu(self.plateau, self.pioche, 2)
        self.timer = QtCore.QTimer()

        #Mise en place de l'arrière plan
        palette = QtGui.QPalette()
        pixmap = QtGui.QPixmap("images/background.jpg")
        palette.setBrush(QtGui.QPalette.Background, QtGui.QBrush(pixmap))
        self.setPalette(palette)

        ######################################################################
        #partie liée à la fsm qui DOIT se trouver dans init

        #liste des états admissibles:
        self.states = ["initialize", "pick", "play"]

        #état dans lequel se situe la fsm
        self.current_state = "initialize"

        #transition à effectuer au prochain appel de 'fsm': fonction et nouvel état
        self.transition = None

        #dictionnaire des transitions
        self.dict_tr = {
            ("initialize", None): "initialize",
            ("initialize", "pick"): "pick",
            ("pick", "play"): "play",
            ("pick", "pick"): "pick",
            ("play", "play"): "play",
            ("play", "pick"): "pick",
        }

        #dictionnaire des actions à effectuer lors de la transition
        self.dict_ac = {
            #                        None: (lambda *args: None),
            "play": self.play,
            #                        "pick": (lambda *args: None),
        }

        #On lie le timeout à la fsm
        self.timer.start(speed)
        self.timer.timeout.connect(self.fsm)
        ######################################################################

        #Connecte les boutons aux fonctions définies en dessous

        self.ui.bouton_instru.clicked.connect(self.chooseCard)
        self.ui.checkBox_1.stateChanged.connect(self.checkBox1)
        self.ui.checkBox_2.stateChanged.connect(self.checkBox2)
        self.ui.checkBox_3.stateChanged.connect(self.checkBox3)
        self.ui.checkBox_4.stateChanged.connect(self.checkBox4)
        self.ui.checkBox_5.stateChanged.connect(self.checkBox5)
        self.ui.checkBox_6.stateChanged.connect(self.checkBox6)
        self.ui.checkBox_7.stateChanged.connect(self.checkBox7)
        self.ui.checkBox_8.stateChanged.connect(self.checkBox8)
        self.ui.checkBox_9.stateChanged.connect(self.checkBox9)
Ejemplo n.º 25
0
 def get_carte_armee_la_plus_grande(self,terre):
     ''' Renvoie vrai si le joueur a l'armée la plus grande sur cette terre'''
     u = Jeu.get_armee_la_plus_grande(terre, self.bdd)
     return u!=0 and u[0] == self.num
Ejemplo n.º 26
0
def partieReplay(event, fenetre):
    Fenetre.quitte(fenetre)
    jeu = Jeu.cree()
    Jeu.joue(jeu, is_replay=True)
Ejemplo n.º 27
0
 def ruiner(self):
     self.setEnRuine(True)
     for t in self.getTerres():
         self.setStaticPoints(t,0)
         Jeu.recalcul_route_la_plus_longue(t,self.bdd)
         Jeu.recalcul_armee_la_plus_grande(t,self.bdd)
Ejemplo n.º 28
0
import Jeu
import Joueur

j = Jeu.cree()

print('fenetre=' + str(Jeu.fenetre(j)))
print('pile=' + str(Jeu.pile(j)))
print('joueurs=' + str(Jeu.joueurs(j)))
print('indiceJoueur=' + str(Jeu.indiceJoueur(j)))

print('joueurCourant=' + Joueur.nom(Jeu.joueurCourant(j)))

for i in range(2):
	Jeu.passeJoueurSuivant(j)
	print('indiceJoueur=' + str(Jeu.indiceJoueur(j)))
	print('joueurCourant=' + Joueur.nom(Jeu.joueurCourant(j)))
Ejemplo n.º 29
0
from os import environ
environ['PYGAME_HIDE_SUPPORT_PROMPT'] = '1'
from Jeu import *

#====================== Classe main du programme ===========================#

jeu = Jeu("Iai-sudoku",1200,800)

while jeu.running:
    jeu.event()
    if not jeu.running:
        break
    jeu.update()
    jeu.render()
Ejemplo n.º 30
0
__credits__ = ["Luciano Porretta "]
__license__ = "ULB Theaching License"
__version__ = "1.0"
__maintainer__ = "Luciano Porretta"
__email__ = "*****@*****.**"
__status__ = "Beta"

if __name__ == "__main__":
    try:
        app = QtGui.QApplication(sys.argv)  # CREATE THE APPLICATION
        Main = QtGui.QMainWindow()  # CREATE MAIN WINDOW
        Setup = QtGui.QDialog()  # CREATE DIALOG
        uiMain = Gui()  # CREATE AN INSTANCE OF GUI
        uiMain.MainUi(Main)  # INIT MAIN WINDOW
        uiMain.SelectUi(Setup)  # INT DIALOG
        Game = Jeu(uiMain)  # CREATE AN INSTANCE OF GUI
        uiMain.ok_button.clicked.connect(lambda: Game.select_players())  # CONNECT DIALOG OK BUTTON WITH GAME FUNCITON
        Setup.exec_()  # SHOW DIALOG WITHOUT AND WAIT TO BE DONE
        n_players = Game.create_players()
        # print(n_players, " player are created")   # DEBUG PRINT
        Main.show()  # SHOW MAIN WINDOW
        winner = None  # DECLARE WINNER VARIABLE
        while not Game.end_game:  # WAIT THE GAME TO END
            # Game round - Main function
            winner = Game.play_round()  # PLAY ROUNG
        # SETUP END GAME MESSAGE
        the_end = QtGui.QWidget()
        QtGui.QMessageBox.information(the_end, "End Game", "The player {} won!!!".format(winner), 0)
        sys.exit(app.exec_())
    except Exception as error:
        """ THIS EXEPTION CATCH ALL THE ERRORS AND DISPLAY THEM IN A WARNING MESSAGE"""