Commit fe59943f authored by Pauline LEYRIT's avatar Pauline LEYRIT
Browse files

ok

parent d5455caa
# auteur : Pauline
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
......@@ -45,12 +45,8 @@ class Window(QMainWindow):
button_joueur1.setGeometry(720, 0, 100, 50) # défini sa position et sa taille
button_joueur1.clicked.connect(self.joueur1) # lie l'action de cliquer sur le bouton à l'appel de la fonction citée
button_joueur2 = QPushButton("joueur2", self)
button_joueur2.setGeometry(720, 70, 100, 50)
button_joueur2.clicked.connect(self.joueur2)
button_IA = QPushButton("IA", self)
button_IA.setGeometry(720, 140, 100, 50)
button_IA.setGeometry(720, 70, 100, 50)
button_IA.clicked.connect(self.IA)
#on définit les boutons liés aux fonctions
......@@ -252,6 +248,9 @@ class Window(QMainWindow):
self.prochain = self.rh # liste des pions définis dans la classe pièce, du prohain joueur (l'autre)
self.dernier_bouton = '' # permet de cconnaitre sur quel bouton le joueur a cliqué en dernier
self.mont_sorti = self.mont[0] # permet de reconnaitre la fin du jeux : on connaitra quelle montagne est sorti, et donc sa position
self.pousse = False # à l'appel de pousser(), nous permet de savoir si entrer en poussant a bien eu lieu
# si ce n'est pas le cas, on remt la pièce à sa place initiale
#pour l'ia:
self.qui = 'humain'
self.coup_possible = ["déplacer", "tourner", "entrer", "sortir","pousser", "entrer en poussant", ]
......@@ -301,20 +300,7 @@ class Window(QMainWindow):
"fonction que vous voulez lui appliquer")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0,0)
def joueur2(self):
"""
de la même façon, mais pour le cas ou le joueur joue les rhinocéros
"""
self.zone_txt.clear()
self.joueur_qg = self.liste_rh_qg
self.joueur = self.rh
self.prochain = self.ele
self.qui = 'humain'
self.texte= QGraphicsTextItem("c'est au tour du joueur 2: les rhinocéros" '\n'
"Choisissez un de vos pions avant de choisir la" '\n'
"fonction que vous voulez lui appliquer")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0,0)
def IA(self):
"""
......@@ -333,8 +319,8 @@ class Window(QMainWindow):
self.texte.setPos(0,0)
self.a_toune = False #à l'appel d'une fonction, la pièce n'a pas encore tourné
self.coup=self.coup_possible[randint(0,4)]
print(self.coup)
self.coup=self.coup_possible[randint(0,6)]
self.dernier_bouton = str(self.coup)
self.ok()
......@@ -352,7 +338,7 @@ class Window(QMainWindow):
if self.dernier_bouton == 'déplacer':
if self.qui == 'ia' :
print('ia déplace')
self.pion_select_num = randint(1,6)
self.pion_select = self.joueur_qg[self.pion_select_num-1]
abs0, ord0 = self.joueur[self.pion_select_num-1].coords #anciennes coords avant de se déplace
......@@ -379,7 +365,7 @@ class Window(QMainWindow):
x0, y0 = 65.5*(self.joueur[self.pion_select_num - 1].coords[0] - (l)), (self.joueur[self.pion_select_num - 1].coords[1] - (self.pion_select_num -1) )*65.5
if self.qui == 'humain':
x, y = self.pion_select.x() - x0, self.pion_select.y()- y0 # mouvement effectué par rapport à la dernière case
print(x,y, 'xy')
else :
self.joueur[self.pion_select_num-1].coords = [self.abs, self.ord]
x1, y1 = 65.5 * (self.joueur[self.pion_select_num - 1].coords[0] - (l)), (
......@@ -416,7 +402,7 @@ class Window(QMainWindow):
else :
self.joueur[self.pion_select_num-1].coords = [self.abs, self.ord]
print(self.joueur[self.pion_select_num-1].coords)
for k in range(len(self.joueur)):
if (self.joueur[self.pion_select_num - 1].coords == self.joueur[k].coords and k!= self.pion_select_num - 1) or \
(self.joueur[self.pion_select_num - 1].coords == self.prochain[k].coords) \
......@@ -424,6 +410,8 @@ class Window(QMainWindow):
# on vérifie que la nouvelle position ne soit pas occupée par un autre de nos pions, un des pions
# du joueur adverse, ou par une montagne
bool1 = False
if self.qui == 'humain' : #on souhaite afficher les commentaires uniquement pour l'humain, puisque
#l'ia fait de nombreux essais avant d'arriver à un coup valide
self.texte = QGraphicsTextItem("Vous ne pouvez pas vous déplacer sur une case déjà occupée")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0,150)
......@@ -433,6 +421,7 @@ class Window(QMainWindow):
bool2 = True # deplacement autorisé
if self.joueur[self.pion_select_num-1].coords[0] in [-2, -1, 5, 6] or self.joueur[self.pion_select_num-1].coords[1] in [ -1, 5]:
# le joueur a placé sa pièce hors du plateau
if self.qui == 'humain':
self.texte = QGraphicsTextItem("Vous êtes hors du plateau")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0,160)
......@@ -440,6 +429,7 @@ class Window(QMainWindow):
else :
bool3 = True # toujour sur le plateau
else :
if self.qui == 'humain':
self.texte = QGraphicsTextItem("Vous ne pouvez pas vous déplacer ici:"'\n'
"veuillez vous déplacer d'une case, horizontalement"'\n'
"ou verticalement")
......@@ -447,12 +437,12 @@ class Window(QMainWindow):
self.texte.setPos(0, 170)
bool2 = False
print(bool1, bool2, bool3, 'bool')
if not (bool1 and bool2 and bool3):
if self.qui == 'humain':
self.texte = QGraphicsTextItem("Votre déplacement n'est pas valide: veuillez rejouer")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 230)
if self.qui=='humain':
# le coup n'était pas valide : le pion reprends sa place (quil avait juste avant le coup)
# on doit réenregistrer les anciennes coordonnées dans la liste self.joueur et changer la position du widget sur le plateau
......@@ -462,18 +452,18 @@ class Window(QMainWindow):
else:
self.joueur[int(self.pion_select_num - 1)].coords = [abs0, ord0]
print(self.joueur[int(self.pion_select_num - 1)].coords, self.joueur[int(self.pion_select_num - 1)].car())
self.pion_select.setPos(x0,y0) # le pion retourne à sa place
if self.qui == 'ia':
print('pas de déplacement')
self.IA() #le tour n'a pas marché, l'ia doit rejouer
# if self.qui == 'ia':
#
# self.IA() #le tour n'a pas marché, l'ia doit rejouer
else:
self.tourne() # si le changement de position était valide, le joueur peut aussi tourner son pion
# la fonction tourne indiquera que le tour est terminé
if self.a_toune == True:
if self.qui == 'ia':
self.joueur1()
# if self.a_toune == True:
# if self.qui == 'ia':
# self.joueur1()
self.joueur_qg[self.pion_select_num - 1].setFlag(QGraphicsItem.ItemIsMovable, enabled=False)
......@@ -488,7 +478,6 @@ class Window(QMainWindow):
# code similaire à celui de la fonction entrer de la classe pièce mais on change la aussi les pioons de place
if self.qui == 'ia':
print('ia entre')
self.pion_select_num = randint(1, 6)
self.pion_select = self.joueur_qg[self.pion_select_num-1]
......@@ -502,10 +491,10 @@ class Window(QMainWindow):
#on intègre les nouvelles coordonnées:
x0, y0 = 65.5 * (self.joueur[self.pion_select_num - 1].coords[0] - (l)), (
self.joueur[self.pion_select_num - 1].coords[1] - (self.pion_select_num - 1)) * 65.5
[a0, b0] = self.joueur[int(self.pion_select_num - 1)].coords # coordonnées avant d'avoir joué
if self.qui == 'humain':
x, y = self.pion_select.x() - x0, self.pion_select.y() - y0
[a0, b0] = self.joueur[int(self.pion_select_num - 1)].coords
[a, b] = self.joueur[int(self.pion_select_num - 1)].coords
if x > 0:
......@@ -520,7 +509,6 @@ class Window(QMainWindow):
self.joueur[int(self.pion_select_num - 1)].coords = [a, b]
else:
print(self.abs, self.ord, "abs ord")
self.joueur[int(self.pion_select_num - 1)].coords = [self.abs, self.ord]
i = self.joueur[self.pion_select_num - 1].coords[0]
......@@ -532,30 +520,30 @@ class Window(QMainWindow):
if (self.joueur[self.pion_select_num - 1].coords == self.joueur[k].coords and k!= self.pion_select_num - 1) \
or (self.joueur[self.pion_select_num - 1].coords == self.prochain[k].coords) or \
(k<3 and self.joueur[self.pion_select_num - 1].coords == self.mont[k].coords):
print('deja prise')
bool1 = False
bool2=False
#on va vérifier que le joueur entre sur une case du bord du plateau
if (( i == 0 or i == 4) and -1 < j < 5) or ((j == 4 or j == 0 )and -1 < i < 5):
print(self.joueur[self.pion_select_num-1].car(), self.joueur[self.pion_select_num-1].coords)
bool2 = True
if bool and bool1 and bool2: #toutes les conditions sont vérifiées pour pouvoir entrer
self.tourne() #on ne tourne que si toutes les conditions pour entrer sont valides
#celle ci affichera que c'est la fin du tour
print(self.a_toune, 'toune')
if self.a_toune == True: #vérifie que la pièce a tourné une fois
if self.qui == 'ia':
l= -2 #car l'ia joue les rhinos
x1,y1 = 65.5*(self.joueur[self.pion_select_num - 1].coords[0] - (l)), (self.joueur[self.pion_select_num - 1].coords[1] - (self.pion_select_num -1) )*65.5
print(x1, y1, 'x1')
self.pion_select.setPos(x1, y1) #le tour marche, donc on peut bouger la pièce
print('piece entrée')
self.joueur1() #l'ia a joué, au tour du joueur 1
else: # mouvement non valide
#self.joueur1() #l'ia a joué, au tour du joueur 1
else: # mouvement non valide
if self.qui == 'humain':
self.texte = QGraphicsTextItem("une pièce ne peut entrer sur le plateau que sur une case extérieure,"
"si elle est déjà sur le plateau ou si la case est déjà prise : Rejouez")
self.zone_txt.addItem(self.texte)
......@@ -564,10 +552,9 @@ class Window(QMainWindow):
self.pion_select.setPos(x0, y0) #le pion retourne à sa position précéddente car le coup n'était pas valide, le joueur doir rejouer
self.joueur[self.pion_select_num-1].coords = [a0, b0] #on réenregistre sa postion (correspondante à celle
print(self.joueur[self.pion_select_num-1].coords) #qu'il a sur le plateau, donc la position initiale
if self.qui == 'ia':
self.IA() # le tour n'a pas marché, l'ia doit rejouer
print('je rejoue dans le premier cas')
# if self.qui == 'ia':
# self.IA() # le tour n'a pas marché, l'ia doit rejouer
......@@ -579,7 +566,7 @@ class Window(QMainWindow):
l = -2
if self.qui == 'ia':
print('ia entre')
self.pion_select_num = randint(0, 5) +1
self.pion_select = self.joueur_qg[self.pion_select_num-1]
......@@ -589,20 +576,23 @@ class Window(QMainWindow):
# fonction (comme entrer en poussant dans le cas de pièces)
self.joueur[self.pion_select_num-1].coords = [l, self.pion_select_num-1] #coordonnées initiales de la pièce
self.pion_select.setPos(0, 0) #remet le widget à sa position initiale
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"Votre pièce est bien sortie du plateau, au tour des {0}".format(self.prochain[0].car()))
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.joueur1()
# if self.qui == 'ia':
# self.joueur1()
else :
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"vous ne pouvez sortir su plateau que si votre pion est sur une case extérieur, rejouez")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.IA() #le tour n'a pas marché, l'ia doit rejouer
# if self.qui == 'ia':
# self.IA() #le tour n'a pas marché, l'ia doit rejouer
if self.dernier_bouton == 'pousser':
......@@ -611,7 +601,7 @@ class Window(QMainWindow):
#lorsqu'elles changent de coordonnées
if self.qui == 'ia':
print('ia entre')
self.pion_select_num = randint(0, 5) +1
self.pion_select = self.joueur_qg[self.pion_select_num-1]
......@@ -649,7 +639,7 @@ class Window(QMainWindow):
if piece.coords[0] == i:
V.append(piece) # de même pour la colonne
#on fait maintenant les mêmes cas (selon l'oorientation) que dans la fonction pousser de la classe pièce
if orientation == 'g':
if orientation == 'g' and i in [0,1,2,3,4] and j in [0,1,2,3,4]:
piece_gauche = self.joueur[self.pion_select_num-1]
for k in range(len(H)): # pour etre sur de ne pas louper une piece qui serait à gauche
for piece in H:
......@@ -691,26 +681,30 @@ class Window(QMainWindow):
if piece.coords[0]<0: #une montagne est sortie du plateau : le jeu est terminé
self.mont_sorti = piece #on enregistre quelle montagne est sorti (pour connaitre sa position)
self.vainqueur() #on appelle la fonction qui nous indiquera le gagnant
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"Vous avez poussé, au tour des {0}".format(self.prochain[0].car()))
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.joueur1()
# if self.qui == 'ia':
# self.joueur1()
self.pousse = True
else: #la force de poussée n'était pas suffisante
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"vous ne pouvez pas effectuer cette poussée:"'\n'
" vous navez pas assez de force de poussée"'\n'
"Rejouez")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.IA()
# if self.qui == 'ia':
# self.IA()
self.pousse = False
#on réitère pour les trois autres orientations
if orientation == 'd':
if orientation == 'd' and i in [0,1,2,3,4] and j in [0,1,2,3,4]:
piece_droite = self.joueur[self.pion_select_num-1]
for k in range(len(H)):
for piece in H:
......@@ -751,24 +745,27 @@ class Window(QMainWindow):
if piece.coords[0]>4:
self.mont_sorti = piece
self.vainqueur()
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"Vous avez poussé, au tour des {0}".format(self.prochain[0].car()))
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.joueur1()
# if self.qui == 'ia':
# self.joueur1()
self.pousse = True
else:
print('vous ne pouvez pas effectuer cette poussée: vous navez pas assez de force de poussée')
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"vous ne pouvez pas effectuer cette poussée:"'\n'
" vous navez pas assez de force de poussée"'\n'
"Rejouez")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.IA()
# if self.qui == 'ia':
# self.IA()
self.pousse =False
if orientation == 'h':
if orientation == 'h' and i in [0,1,2,3,4] and j in [0,1,2,3,4]:
piece_haut = self.joueur[self.pion_select_num-1]
for k in range(len(V)):
for piece in V:
......@@ -809,24 +806,27 @@ class Window(QMainWindow):
if piece.coords[1] < 0:
self.mont_sorti = piece
self.vainqueur()
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"Vous avez poussé, au tour des {0}".format(self.prochain[0].car()))
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.joueur1()
# if self.qui == 'ia':
# self.joueur1()
self.pousse = True
else:
print('vous ne pouvez pas effectuer cette poussée: vous navez pas assez de force de poussée')
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"vous ne pouvez pas effectuer cette poussée:"'\n'
" vous navez pas assez de force de poussée"'\n'
"Rejouez")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.IA()
# if self.qui == 'ia':
# self.IA()
self.pousse = False
if orientation == 'b':
if orientation == 'b' and i in [0,1,2,3,4] and j in [0,1,2,3,4]:
piece_haut = self.joueur[self.pion_select_num-1]
for k in range(len(V)):
for piece in V:
......@@ -867,22 +867,33 @@ class Window(QMainWindow):
if piece.coords[1] > 4:
self.mont_sorti = piece
self.vainqueur()
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"Vous avez poussé, au tour des {0}".format(self.prochain[0].car()))
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.joueur1
# if self.qui == 'ia':
# self.joueur1()
self.pousse = True
else:
print('vous ne pouvez pas effectuer cette poussée: vous navez pas assez de force de poussée')
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"vous ne pouvez pas effectuer cette poussée:"'\n'
" vous navez pas assez de force de poussée"'\n'
"Rejouez")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
if self.qui == 'ia':
self.IA()
# if self.qui == 'ia':
# self.IA()
self.pousse = False
else :
self.texte = QGraphicsTextItem(
"vous devez être sur le plateau pour pousser"'\n'
"Rejouez")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
self.pousse = False
if self.dernier_bouton == 'entrer en poussant':
......@@ -891,10 +902,11 @@ class Window(QMainWindow):
l = -2
if self.qui == 'ia' :
print('ia déplace')
self.pion_select_num = randint(1,6)
self.pion_select = self.joueur_qg[self.pion_select_num-1]
abs0, ord0 = self.joueur[self.pion_select_num-1].coords #anciennes coords avant de se déplace
abs0, ord0 = self.joueur[
self.pion_select_num - 1].coords # anciennes coords avant de se déplacer, piur l'ia
x0, y0 = 65.5 * (self.joueur[self.pion_select_num - 1].coords[0] - (l)), (
......@@ -902,6 +914,14 @@ class Window(QMainWindow):
self.tourne() #possibilité de tourner pour se placer face à la pièce que l'on veut pousser
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"cliquez sur ok pour pousser")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 180)
if self.qui == 'humain':
x, y = self.pion_select.x()-x0, self.pion_select.y()-y0 # mouvement par rapport à la dernière case
#
......@@ -922,12 +942,6 @@ class Window(QMainWindow):
else:
self.joueur[self.pion_select_num - 1].coords = [self.abs, self.ord]
self.tourne() #possibilité de tourner pour se placer face à la pièce que l'on veut pousser
self.texte = QGraphicsTextItem(
"cliquez sur ok pour pousser")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 180)
i, j = self.joueur[self.pion_select_num-1].coords
......@@ -936,27 +950,34 @@ class Window(QMainWindow):
#face de la pièce à pousser
self.pousser()
if self.qui == 'ia':
self.joueur1()
if self.pousse == False:
self.pion_select.setPos(0, 0)
self.joueur[self.pion_select_num - 1].coords = [l, self.pion_select_num - 1]
else:
# if self.qui == 'ia':
# self.IA()
# else:
# if self.qui == 'ia':
# self.joueur1()
else:
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"pour rentrer en poussant, vous devez mettre la piece sur une"'\n'
" case extérieure au plateau, la mettre dans la bonne orientation"'\n'
"et pousser : Rejouez")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 150)
self.pion_select.setpos(0,0)
self.pion_select.setPos(0,0)
self.joueur[self.pion_select_num-1].coords = [l, self.pion_select_num-1]
self.joueur_qg[self.pion_select_num - 1].setFlag(QGraphicsItem.ItemIsMovable, enabled=False)
if self.qui == 'ia':
self.joueur1()
# if self.qui == 'ia':
# self.joueur1()
if self.dernier_bouton == 'tourner':
if self.qui == 'ia':
self.tourne()
print('tourne')
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"Vous avez tourné votre pièce, au tour des {0}".format(self.prochain[0].car()))
self.zone_txt.addItem(self.texte)
......@@ -984,6 +1005,7 @@ class Window(QMainWindow):
self.pion_select = self.liste_rh_qg[i]
self.pion_select_num = i + 1
if self.qui == 'humain':
self.texte = QGraphicsTextItem("Vous avez choisis de déplacer votre pion {0}{1}." '\n'
"Vous pouvez maintenant déplacer votre pièce" '\n'
"Vous pouvez la décaler d'une case horizontalement ou" '\n'
......@@ -1006,7 +1028,7 @@ class Window(QMainWindow):
if self.liste_rh_qg[i].isSelected():
self.pion_select = self.liste_rh_qg[i]
self.pion_select_num = i + 1
if self.qui == 'humain':
self.texte = QGraphicsTextItem("Vous avez choisis de pousser avec votre pion"'\n'
"{0}{1} orienté selon {2}." '\n'
"Vous pouvez maintenant pousser devant vous. " '\n'
......@@ -1024,27 +1046,25 @@ class Window(QMainWindow):
une boite de dialogue apparait pour que le joueur entre l'orientation dans laquelle il veut être
C'est aussi la seule fonction hors ok() qui sera utilisée par l'ia"""
self.dernier_bouton = 'tourner'
go = True
#on n'efface pas l'écran zone_txt cette fois ci car la fonction est appeléedans la méthode "ok"
#( pour déplacer, entrer et entrer en poussant) donc on veut garder le texte avec les instructions
if self.qui == 'humain':
for i in range(5):
#self.dernier_bouton = 'tourner'
if self.liste_el_qg[i].isSelected():
self.pion_select = self.liste_el_qg[i]
self.pion_select_num = i + 1
print("l'elephant {}+1".format(i))
if self.liste_rh_qg[i].isSelected():
print("le rhino {}+1".format(i))
self.pion_select = self.liste_rh_qg[i]
self.pion_select_num = i + 1
self.showDialog() #affiche la bo^te de dialogue qui demande au joueur dans quelle direction il veut être
print(self.txt)
else :
print('ah dacc', self.joueur[self.pion_select_num-1].car())
print(self.joueur[self.pion_select_num - 1].car(), self.joueur[self.pion_select_num - 1].coords, 'debut')
# dictionnaires associant la direction du pion, à la position de la tête
# les positions sont différentes pour les éléphants et les rhinocéros car encore une fois,
# on bouge le widget par rapport à sa position initiale sur le corps de l'animal
......@@ -1071,19 +1091,18 @@ class Window(QMainWindow):
'g': 'd',
'b': 'h',
'd': 'g'}
print(self.coup, 'coup')
print(self.coup, self.qui)
if self.qui == 'ia':
if self.coup == 'tourner': # si c'est un autre coup qui appele tourner, on connait déjà le pion
self.pion_select_num = randint(1, 6)
self.pion_select = self.joueur_qg[self.pion_select_num - 1]
print(self.joueur[self.pion_select_num-1].coords)
if (self.joueur[self.pion_select_num-1].coords[0] == -2):
go = False
print(self.joueur[self.pion_select_num - 1].car(), self.joueur[self.pion_select_num - 1].coords, 'pk ca change')
if self.joueur[self.pion_select_num - 1].coords[0] in [-1, 0, 1, 2, 3, 4, 5] and \
self.joueur[self.pion_select_num - 1].coords[1] in [-1,0, 1, 2, 3, 4, 5]:
if self.joueur[self.pion_select_num - 1].coords[0] not in [-2, 6] and go==True:
#le pion est sur le plateau ou devant (pour entrer en poussant)
# pour l'ia on a pas changé de position avec self.abs, self.ord donc on prend les bonnes coords
if self.txt == 'droite': # on change l'orientation de la pièce dans la liste joueur
self.joueur[self.pion_select_num - 1].orientation = tourner_droite[
str(self.joueur[self.pion_select_num - 1].orientation)]
......@@ -1104,7 +1123,7 @@ class Window(QMainWindow):
self.liste_el_ori_qg[self.pion_select_num - 1].setPos(xe, ye)
if self.joueur == self.rh:
self.liste_rh_ori_qg[self.pion_select_num - 1].setPos(xr, yr)
if self.qui == 'humain':
self.texte = QGraphicsTextItem("vous avez choisis de changer l'orientation de votre pion"'\n'
"{0}{1}, maintenant orienté vers {2}. Cliquez sur ok pour"'\n'" valider votre coup".format(
self.joueur[self.pion_select_num - 1].car(),
......@@ -1121,17 +1140,13 @@ class Window(QMainWindow):
# self.joueur1()
else:
self.a_tourne = False
if self.qui == 'ia':
print('tourne dans ta case')
self.IA() # le tour n'a pas marché, l'ia doit rejouer
# 0 # le tour n'a pas marché, l'ia doit rejouer
if self.qui == 'humain':
self.texte = QGraphicsTextItem(
"Vous ne pouvez tourner que si vous êtes déjà sur le plateau")
self.zone_txt.addItem(self.texte)
self.texte.setPos(0, 200)
#dictionnaires associant la direction du pion, à la position de la tête
# les positions sont différentes pour les éléphants et les rhinocéros car encore une fois,
#on bouge le widget par rapport à sa position initiale sur le corps de l'animal
def entrer(self):
""" semblable aux fonctions déplacer et pousser"""
......@@ -1143,14 +1158,14 @@ class Window(QMainWindow):
self.liste_el_qg[i].setFlag(QGraphicsItem.ItemIsMovable)