Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    21 février 2019 à 14:50:49

    Oui, le renvoi ne contredit pas la phrase. a est dans l'intervalle.
    • Partager sur Facebook
    • Partager sur Twitter

    typage structurel ftw

      24 février 2019 à 20:35:48

      Bonsoir, j'ai un problème en python. En faite il s'agit de créé un package qui implémente les différentes méthodes de tri .
      • Partager sur Facebook
      • Partager sur Twitter
        25 février 2019 à 0:25:53

        entwanne a écrit:

        Quelle est ta valeur de a ?


        a=5
        • Partager sur Facebook
        • Partager sur Twitter
          25 février 2019 à 8:59:20

          Donc a est dans l'intervalle. Prends une valeur extérieur à l'intervalle si tu veux voir s'afficher l'autre message…

          • Partager sur Facebook
          • Partager sur Twitter
            25 février 2019 à 21:52:44

            Pedromoney a écrit:

            Bonjour, 

            Je suis en train d'apprendre le cour "Apprenez à programmer en Python" et termine la section "Créez des structures conditionnelles". 

            Je n'arrive pas à comprendre un exemple de la sous-section sur les mots clés and,or,not.

            Soit la suite d'instructions à tester en initialisant au préalable par a=5:

            Précédée du passage :

            "Nous allons chercher à savoir si n'est pas dans l'intervalle. La variable ne se trouve pas dans l'intervalle si elle est inférieure à 2 ou supérieure à 8. Voici donc le code :"

            Or quand je teste la suite d'instructions sus mentionnée dans l'interpréteur, j'obtient la réponse "a est dans l'intervalle.". Renvoi qui contredit les 2 phrases sus mentionnées.

            Ai-je omis un détail  ?

            -
            Edité par Pedromoney il y a environ 21 heures.

            Si tu mets a = 5 :

            Donc a est bien supérieur ou égale a 2    ET ( en meme temps )    inférieur ou égale a 8 . Donc ta condition est vrai 

            Tu peut remplacer le ET par OU  et aussi N'EST PAS . 



            -
            Edité par 64fauchenicolas 25 février 2019 à 21:53:56

            • Partager sur Facebook
            • Partager sur Twitter
              27 février 2019 à 15:07:17

              Faire un programme permettant de calculer la somme de la série harmonique suivante :
              1+1/2+1/3+1/4 + ………………. + 1/n.
              La valeur n sera un entier strictement positif demandé à l’utilisateur. L’utilisateur n’a que 5
              possibilités pour choisir une valeur comprise nécessairement entre 1 et 100 sinon on met fin au
              programme.
              • Partager sur Facebook
              • Partager sur Twitter
                7 mars 2019 à 13:29:08

                Bonjour,

                Je suis entrain de finir les derniers modules du cours Python et je bloque lors de la finalisation du petit programme de selection aléatoire de citation.

                En effet, le code se lance bien mais lorsque je veux afficher une citation, en appuyant sur une autre touche que B, j'ai un plantage :

                Traceback (most recent call last):

                  File "C:/Users/Nicolas/Desktop/Netlogo formation/Python.py", line 25, in <module>

                    print(message(get_random_item(characters), get_random_item(quotes)))

                  File "C:/Users/Nicolas/Desktop/Netlogo formation/Python.py", line 16, in get_random_item

                    item = my_list[rand_numb]

                TypeError: 'set' object does not support indexing

                Merci pour votre aide ! Je n'arrive vraiment pas à comprendre, ce doit être un truc tout bête mais qui m'échappe.

                Voilà le code que j'ai fait :

                import random

                quotes = ["Ecoutez-moi, Monsieur Shakespeare, nous avons beau être ou ne pas être, nous sommes !",
                "On doit pouvoir choisir entre s'écouter parler et se faire entendre."]
                characters = {
                "alvin et les Chipmunks",
                "Babar",
                "betty boop",
                "calimero",
                "casper",
                "le chat potté",
                "Kirikou"}

                def get_random_item(my_list):
                rand_numb = random.randint(0,len(my_list) - 1)
                item = my_list[rand_numb]
                return(item)

                user_answer = input("Taper une touche")

                def message(character, quote):
                return "{} a dit :{}".format(character, quote)

                while user_answer != "b":
                print(message(get_random_item(characters), get_random_item(quotes)))
                user_answer = input("Taper une touche")
                • Partager sur Facebook
                • Partager sur Twitter
                  7 mars 2019 à 14:35:40

                  characters est un set, il faut utiliser [] au lieu des {}
                  • Partager sur Facebook
                  • Partager sur Twitter

                  typage structurel ftw

                    8 mars 2019 à 10:05:46

                    entwanne a écrit:

                    Donc a est dans l'intervalle. Prends une valeur extérieur à l'intervalle si tu veux voir s'afficher l'autre message…

                    Ah oui! C'est d'une logique implacable mais je ne sais pas pourquoi j'ai tant bloqué dessus. lol

                    Merci pour ton aide ;)

                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 mars 2019 à 20:08:52

                      Bonjour,

                      Je suis en train de travailler sur le TP du pendu et j'ai un problème pour réaliser ma fonction de lecture de fichier.

                      def ChargementFichier(GestionScore):
                      	
                      	with open("scores",'rb') as fichier:
                      		mon_depickler=pickle.Unpickler(fichier)
                      		GestionScore=mon_depickler.load()

                      Cette fonction ne me renvoie rien, pourquoi? Je ne comprends pas? Directement tapée dans l'interpreteur ça marche...

                      Est ce que quelqu'un peut m'aider?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 mars 2019 à 14:07:05

                        Dans la solution proposée du TP (Réalisez un dictionnaire ordonné), je ne vois pas par quel moyen les valeurs d'un dictionnaire existant où des données en paramètre sont placées dans la « liste valeur » de notre dictionnaire ordonné.

                        Lors de la phase "__init__" , on a cela :

                        # On récupère les données de 'base'
                        for cle in base:
                            self[cle] = base[cle]
                                
                        # On récupère les données de 'donnees'
                        for cle in donnees:
                            self[cle] = donnees[cle]

                        On parle du stockage des clés mais comment les valeurs sont-elles stockées ?

                        Merci à celui où celle qui éclaircira ma lanterne.

                        • Partager sur Facebook
                        • Partager sur Twitter

                        PB68

                          25 mars 2019 à 16:56:50

                          PhilippeBerger a écrit:

                          Dans la solution proposée du TP (Réalisez un dictionnaire ordonné), je ne vois pas par quel moyen les valeurs d'un dictionnaire existant où des données en paramètre sont placées dans la « liste valeur » de notre dictionnaire ordonné.

                          Lors de la phase "__init__" , on a cela :

                          # On récupère les données de 'base'
                          for cle in base:
                              self[cle] = base[cle]
                                  
                          # On récupère les données de 'donnees'
                          for cle in donnees:
                              self[cle] = donnees[cle]

                          On parle du stockage des clés mais comment les valeurs sont-elles stockées ?

                          Merci à celui où celle qui éclaircira ma lanterne.


                          Bonjour Philippe

                          Même cours que toi, même blocage, du coup je ne comprends pas le corrigé. Marrant de voir que tu viens juste de poser ta question.

                          Merci donc à la personne qui pourra nous aider à comprendre

                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 mars 2019 à 19:10:51

                            Ce ne sont pas les clés qui sont stockées, ce sont bel et bien des valeurs, associées avec des clés.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            typage structurel ftw

                              26 mars 2019 à 0:04:20

                              digammaF a écrit:

                              Ce ne sont pas les clés qui sont stockées, ce sont bel et bien des valeurs, associées avec des clés.


                              Je suis d'accord avec ce que tu dis car c'est la definition même du principe du dictionnaire dans Python mais, dans la fraction de code ci-après, pourrais-tu alors indiquer à quel moment tu peux affirmer tes dires dans la phase __init__ ? 

                                  def __init__(self, base={}, **donnees):
                                      """Constructeur de notre objet. Il peut ne prendre aucun paramètre
                                      (dans ce cas, le dictionnaire sera vide) ou construire un
                                      dictionnaire remplis grâce :
                                      -   au dictionnaire 'base' passé en premier paramètre ;
                                      -   aux valeurs que l'on retrouve dans 'donnees'."""
                                      
                                      self._cles = [] # Liste contenant nos clés
                                      self._valeurs = [] # Liste contenant les valeurs correspondant à nos clés
                                      
                                      # On vérifie que 'base' est un dictionnaire exploitable
                                      if type(base) not in (dict, DictionnaireOrdonne):
                                          raise TypeError( \
                                              "le type attendu est un dictionnaire (usuel ou ordonne)")
                                      
                                      # On récupère les données de 'base'
                                      for cle in base:
                                          self[cle] = base[cle]
                                      
                                      # On récupère les données de 'donnees'
                                      for cle in donnees:
                                          self[cle] = donnees[cle]
                              • Partager sur Facebook
                              • Partager sur Twitter

                              PB68

                                26 mars 2019 à 0:10:13

                                Au moment du self[cle] = ... qui fait appel à la méthode __setitem__ de l'objet.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  26 mars 2019 à 1:07:19

                                  entwanne a écrit:

                                  Au moment du self[cle] = ... qui fait appel à la méthode __setitem__ de l'objet.


                                  C'est justement ça mon problème. D'où sortent les valeurs ou plutôt, suivant comment sont écrites les données que l'on passe en paramètre comment python va-t-il savoir ce qui est une clé et ce qui est une valeur ?

                                  La nuit porte conseil parait-il. On verra ça.

                                  -
                                  Edité par PB68 26 mars 2019 à 7:03:24

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  PB68

                                    26 mars 2019 à 8:24:55

                                    base et donnees sont des dictionnaires, donc des tables d'association entre clés et valeurs.

                                    for cle in base permet d'itérer sur toutes les clés de base, la valeur est ensuite récupérée à l'aide de base[cle] (une itération sur base.items()serait préférable puisque clé et valeur seraient obtenues directement), c'est ainsi que fonctionnent les dictionnaires : on peut les utiliser avec l'opérateur [] en précisant une clé pour obtenir une valeur.

                                    Et ensuite, l'instruction devient équivalent à self[cle] = valeur ce qui a pour effet d'appeler self.__setitem__(cle, valeur) (c'est la définition de l'opérateur []) donc aucune raison pour que Python confonde les deux.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      26 mars 2019 à 9:34:23

                                      Super, des réponses dès ce matin !

                                      Effectivement, je confondais un inexistant self.cle (qui attribuerai la clé) à set[cle] qui lui affecte une valeur à la clé donnée.

                                      Merci pour les explications, j'étais passé à côté d'un concept important

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        26 mars 2019 à 11:10:25

                                        Ça reviendrait au même, self.cle utiliserait lui aussi un dictionnaire en interne qui associe une valeur à une clé.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          26 mars 2019 à 13:45:04

                                          entwanne a écrit:

                                          base et donnees sont des dictionnaires, donc des tables d'association entre clés et valeurs.


                                          Merci entwanne.

                                          Du coup, après avoir relu l'énoncé du tp depuis le début, j'ai compris l'origine de mes interrogations. Il était bien indiqué que le terme « donnees » dans le corrigé fait référence à des couples Clé - Valeurs.

                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          PB68

                                            27 mars 2019 à 18:56:01

                                            Je travaille sur le cours apprentissage python et j'en suis aux décorateurs. Le dernier exemple donné de controle de type ne fonctionne pas. controler(int, int). Erreur l'argument int n'est pas une liste. J'ai copié le code du cours directement et il ne fonctionne pas!

                                            Quelqu'un sait-il pourquoi?

                                            robins

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              28 mars 2019 à 14:07:28

                                              Bonjour,

                                              Je travaille actuellement sur le cours "Concevez un site avec flask" et je me retrouve bloqué sur la section des tests fonctionnels.

                                              Un sujet datant d'un an existe mais sans solution. Mon problème est exactement le même que décrit ici : https://openclassrooms.com/forum/sujet/probleme-test-avec-pytest

                                              J'ai testé avec Chrome, FF, en récupérant le code de github mais rien n'y fait.

                                              Pistes svp ?

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                15 avril 2019 à 18:44:27

                                                Bonjour ou pourrais-je avoir des TP sur   les LIST
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  16 avril 2019 à 15:29:53

                                                  -Développer et tester 4 algorithmes de Tri en Python (Tri par sélection, Tri par insertion , Tri rapide, Tri par fusion) J'ai besoins d'une aide pour mon exercice svp merci

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    5 mai 2019 à 14:00:55

                                                    bonjour à tous, 

                                                    J'aurai besoin d'aide sur cet exercice  :

                                                    Donner une expression Python pour construire la base des prix des produits correspondant à la table suivante:

                                                    Nom du produit     Prix TTC

                                                    Sabre laser            229.0

                                                    Mitendo DX          127.30

                                                    Coussin Linux         74.50

                                                    Slip Goldorak          29.90

                                                    Station Nextpresso     184.60

                                                    Merci d'avance de votre aide 

                                                    -
                                                    Edité par Nellymichel 5 mai 2019 à 14:01:38

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      14 mai 2019 à 19:21:59

                                                      Bonjour je vous pose mon jeu de l'othello a faire en Tkinter(),JAI BESION D'AIDE  je vous met au defi de le finir avant mercredi 15/05/2019 15h30 :

                                                      from tkinter import*

                                                      #####################################################################################################

                                                      def Position(ChoixJoueur, grille):

                                                          if ChoixJoueur==1:

                                                              symbolejoueur='X'

                                                              symboleautre='O'

                                                          else :

                                                              symbolejoueur='O'

                                                              symboleautre='X'

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == symbolejoueur:

                                                                      i = i-1

                                                                      while grille[i][j] == symboleautre:

                                                                          i = i-1

                                                                          if grille[i][j] == '_':

                                                                              grille[i][j] = '?'

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == symbolejoueur and i<8 :

                                                                      i = i+1

                                                                      while grille[i][j] == symboleautre and i<8 :

                                                                          i = i+1

                                                                          if grille[i][j] == '_' and i<9 :

                                                                              grille[i][j] = '?'                                          

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == symbolejoueur and j>0:

                                                                      j = j-1

                                                                      while grille[i][j] == symboleautre and j>0:

                                                                          j = j-1

                                                                          if grille[i][j] == '_' and j>0:

                                                                              grille[i][j] = '?'

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == symbolejoueur and j<8:

                                                                      j = j+1

                                                                      while grille[i][j] == symboleautre and j<8:

                                                                          j = j+1

                                                                          if grille[i][j] == '_' and j<9:

                                                                              grille[i][j] = '?'            

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == symbolejoueur:

                                                                      i = i-1

                                                                      j = j-1

                                                                      while grille[i][j] == symboleautre:

                                                                          i = i-1

                                                                          j = j-1

                                                                          if grille[i][j] == '_' :

                                                                              grille[i][j] = '?'

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == symbolejoueur and i<8 and j<8:

                                                                      i = i+1

                                                                      j = j+1

                                                                      while grille[i][j] == symboleautre and i<8 and j<8:

                                                                          i = i+1

                                                                          j = j+1

                                                                          if grille[i][j] == '_' and i<9 and j<9:

                                                                              grille[i][j] = '?'                                          

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == symbolejoueur and i<8:

                                                                      j = j-1

                                                                      i = i+1

                                                                      while grille[i][j] == symboleautre and i<8:

                                                                          j = j-1

                                                                          i = i+1

                                                                          if grille[i][j] == '_' and i<9 and j>0:

                                                                              grille[i][j] = '?'

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == symbolejoueur and j<8:

                                                                      j = j+1

                                                                      i = i-1

                                                                      while grille[i][j] == symboleautre and j<8:

                                                                          j = j+1

                                                                          i = i-1

                                                                          if grille[i][j] == '_' and j<9:

                                                                              grille[i][j] = '?'

                                                      def CoupJouable(grille):

                                                          StopRecherche = 0

                                                          Jouable = "non"    

                                                          if StopRecherche == 0:

                                                              for i in range(9):

                                                                  for j in range (9):

                                                                      if grille[i][j] == '?':

                                                                          StopRecherche = 1

                                                                          Jouable = "oui"

                                                          return Jouable

                                                      def ChangementPion(ChoixJoueur, grille, i, j):

                                                          if ChoixJoueur==1:

                                                              symbolejoueur='X'

                                                              symboleautre='O'

                                                          else :

                                                              symbolejoueur='O'

                                                              symboleautre='X' 

                                                          NbrPionRetourne1, NbrPionRetourne2, NbrPionRetourne3, NbrPionRetourne4= 0, 0, 0, 0

                                                          NbrPionRetourne5, NbrPionRetourne6, NbrPionRetourne7, NbrPionRetourne8= 0, 0, 0, 0

                                                          z1, z2, z3, z4, z5, z6, z7, z8 = 1, 1, 1, 1, 1, 1, 1, 1

                                                          if grille[i][j] == symbolejoueur and i<8:

                                                              c = i+1

                                                              d = j

                                                              while grille[c][d] == symboleautre and c<8:

                                                                  c = c+1

                                                                  NbrPionRetourne1 += 1

                                                                  if grille[c][d] == symbolejoueur and c<8:

                                                                      while z1 <= NbrPionRetourne1 :

                                                                          grille[c-z1][d] = symbolejoueur

                                                                          z1 += 1    

                                                          if grille[i][j] == symbolejoueur and i>0:

                                                              a = i-1

                                                              b = j

                                                              while grille[a][b] == symboleautre and a>0:

                                                                  a = a-1

                                                                  NbrPionRetourne2 += 1

                                                                  if grille[a][b] == symbolejoueur and a>0:

                                                                      while z2 <= NbrPionRetourne2 :

                                                                          grille[a+z2][b] = symbolejoueur

                                                                          z2 += 1                

                                                          if grille[i][j] == symbolejoueur and j>0:

                                                              e = i

                                                              f = j-1

                                                              while grille[e][f] == symboleautre and f>0:

                                                                  f = f-1

                                                                  NbrPionRetourne3 += 1

                                                                  if grille[e][f] == symbolejoueur and f>0:

                                                                      while z3 <= NbrPionRetourne3 :

                                                                          grille[e][f+z3] = symbolejoueur

                                                                          z3 += 1

                                                          if grille[i][j] == symbolejoueur and j<8:

                                                              g = i

                                                              h = j+1

                                                              while grille[g][h] == symboleautre and h<8:

                                                                  h = h+1

                                                                  NbrPionRetourne4 += 1

                                                                  if grille[g][h] == symbolejoueur and h<8:

                                                                      while z4 <= NbrPionRetourne4 :

                                                                          grille[g][h-z4] = symbolejoueur

                                                                          z4 += 1            

                                                          if grille[i][j] == symbolejoueur and i>0 and j>0:

                                                              k = i-1

                                                              l = j-1

                                                              while grille[k][l] == symboleautre and k>0 and l>0:

                                                                  k = k-1

                                                                  l = l-1

                                                                  NbrPionRetourne5 += 1

                                                                  if grille[k][l] == symbolejoueur and k>0 and l>0:

                                                                      while z5 <= NbrPionRetourne5 :

                                                                          grille[k+z5][l+z5] = symbolejoueur

                                                                          z5 += 1

                                                          if grille[i][j] == symbolejoueur and i<8 and j<8:

                                                              m = i+1

                                                              n = j+1

                                                              while grille[m][n] == symboleautre and m<8 and n<8:

                                                                  m = m+1

                                                                  n = n+1

                                                                  NbrPionRetourne6 += 1

                                                                  if grille[m][n] == symbolejoueur and m<8 and n<8:

                                                                      while z6 <= NbrPionRetourne6 :

                                                                          grille[m-z6][n-z6] = symbolejoueur

                                                                          z6 += 1                                          

                                                          if grille[i][j] == symbolejoueur and i<8 and j>0:

                                                              o = i+1

                                                              p = j-1

                                                              while grille[o][p] == symboleautre and o<8 and p>0:

                                                                  p = p-1

                                                                  o = o+1

                                                                  NbrPionRetourne7 += 1

                                                                  if grille[o][p] == symbolejoueur and o<8 and p>0:

                                                                      while z7 <= NbrPionRetourne7 :

                                                                          grille[o-z7][p+z7] = symbolejoueur

                                                                          z7 += 1

                                                          if grille[i][j] == symbolejoueur and j<8 and i>0:

                                                              k = i-1

                                                              r = j+1

                                                              while grille[k][r] == symboleautre and r<8 and k>0:

                                                                  r = r+1

                                                                  k = k-1

                                                                  NbrPionRetourne8 += 1

                                                                  if grille[k][r] == symbolejoueur and r<8 and k>0:

                                                                      while z8 <= NbrPionRetourne8 and r<8 and k>0:

                                                                          grille[k+z8][r-z8] = symbolejoueur

                                                                          z8 += 1

                                                          return ChoixJoueur

                                                      def NbrPionCouleur(ChoixJoueur, grille):

                                                          NbrPionX, NbrPionO = 0, 0

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == 'X':

                                                                      NbrPionX = NbrPionX+1

                                                                  elif grille[i][j] == 'O':

                                                                      NbrPionO = NbrPionO+1

                                                          return NbrPionX, NbrPionO

                                                      def RemiseGrille(ChoixJoueur, grille):

                                                          for i in range(9):

                                                              for j in range(9):

                                                                  if grille[i][j] == '?':

                                                                      grille[i][j] = '_' 

                                                      def TestVictoire(GrillePleine):

                                                          Victoire = 0

                                                          if GrillePleine == 64:                         #Permet de stopper lors d'un match nul 

                                                              print("Fini !")

                                                              if PionX > PionO or PionO == 0:

                                                                  print("Victoire Joueur 1 (X)")

                                                                  Victoire=1

                                                              if PionX < PionO or PionX == 0:

                                                                  print("Victoire Joueur 2 (O)")

                                                                  Victoire=1

                                                          ChoixJoueur = 1

                                                          ChoixLigne1 = int(saisieligne.get( ))

                                                          ChoixColonne1 = int(saisiecolonne.get( ))

                                                          print(ChoixLigne1)

                                                          print(ChoixColonne1)

                                                          saisieligne.delete(0,END)

                                                          saisiecolonne.delete(0,END)

                                                          if grille[ChoixLigne1][ChoixColonne1] == '?':

                                                              grille[ChoixLigne1][ChoixColonne1]= symbolejoueur

                                                          #else: 

                                                            #  monmessage.configure(text = "Tu ne peux pas jouer ici !")

                                                              verifeFinale = 1

                                                          return ChoixLigne1,ChoixColonne1, i, j

                                                      def Affichage(ChoixJoueur, grille, GrillePleine,PlusAucunCoupjouable):

                                                          global ChoixLigne1,ChoixClonne1, saisieligne , saisiecolonne    

                                                          Position(ChoixJoueur, grille)

                                                          if ChoixJoueur==1:

                                                              symbolejoueur='X'

                                                          else :

                                                              symbolejoueur='O'

                                                          Jouable = CoupJouable(grille)

                                                          verifeFinale, verifeLigne, verifeColonne, verifePosition, saisieligne = 0, 0, 0, 0, 0

                                                          if Jouable == 'oui':

                                                              PlusAucunCoupjouable = 0

                                                              if verifeFinale == 0:

                                                                  GrillePleine = GrillePleine + 1                       #A chaque pion placer le match nul s'approche

                                                                  if verifePosition == 0:

                                                                          ligne = Label(text="Choisis la ligne :")

                                                                          ligne.pack( )

                                                                          saisieligne = Entry( )

                                                                          saisieligne.pack( )

                                                                          colonne = Label(text="Choisis la colonne :")

                                                                          colonne.pack( )

                                                                          saisiecolonne = Entry( )

                                                                          saisiecolonne.pack( )

                                                                          validation = Button( text = "Valide tes choix" , command = RecuperationCoords)

                                                                          validation.pack( )

                                                          if Jouable == 'non':

                                                              monmessageERREUR2

                                                              ChoixColonne1, ChoixLigne1 = -1, -1

                                                              PlusAucunCoupjouable = PlusAucunCoupjouable + 1

                                                          return  Jouable, GrillePleine, PlusAucunCoupjouable, saisiecolonne , saisieligne

                                                      #####################DEF QUI LIE LES 2##############################################################

                                                      def AfficheLesRondsRouges():

                                                          for i in range (1,9):

                                                              for j in range (1,9):

                                                                  if grille[i][j] == '?':

                                                                      Pjeu.itemconfigure(Pions[i-1][j-1],fill="red")

                                                      def ChangerCouleur():

                                                          for i in range (1,9):

                                                              for j in range (1,9):

                                                                  if grille[i][j] == 'X':

                                                                      Pjeu.itemconfigure(Pions[i-1][j-1],fill="black")

                                                                  if grille[i][j] == 'O':

                                                                      Pjeu.itemconfigure(Pions[i-1][j-1],fill="white")

                                                      #####################################################################################################

                                                      def Clic (event) :

                                                          #  PLAY  #

                                                          if  116 <= event.x <= 280 and 155 <= event.y <= 202 :

                                                              Pmenu.forget()

                                                              PChoixJoueur.pack()

                                                              PChoixJoueur.create_rectangle(0,0,400,400, fill="black")

                                                              MonChoixDeB = PChoixJoueur.create_image(181,181, image=Boutton1ou2)

                                                              playVSplay = PChoixJoueur.create_image(245,310, image=PvP)

                                                              playVSai = PChoixJoueur.create_image(120,310, image=PvE)

                                                              FRetour= PChoixJoueur.create_image(55,31, image=FlecheRetour)

                                                          #  RULES  #

                                                          if  116 <= event.x <= 280 and 235 <= event.y <= 285 :

                                                             Pmenu.forget()

                                                             PRegle.pack()

                                                             PRegle.create_rectangle(2,0,750,463, fill="brown")

                                                             PRegle.create_rectangle(6,4,746,459, fill="black")

                                                             monimageR= PRegle.create_image(376,232,image=imageR)

                                                             monimageB= PRegle.create_image(90,420, image=Bretour)

                                                          #  QUIT  # 

                                                          if  116 <= event.x <= 280 and 305 <= event.y <= 352 :

                                                              Pmenu.forget()

                                                      # bouton retour lorsqu'on est dans le Canvas des regles 

                                                      def RetourPRegle (event) :

                                                          if  70 <= event.x <= 166 and 410 <= event.y <= 445 :

                                                              PRegle.forget()

                                                              Pmenu.pack()

                                                      def CLICnbrsJOUEURS (event) :

                                                          global grille, monmessage,GrillePleine,Victoire,verife,ChoixLigne1,ChoixColonne1 

                                                          # 1 Joueur 

                                                          if 75 <= event.x <=152 and 110 <= event.y <= 168 : 

                                                              PChoixJoueur.forget()

                                                              Pjeu.pack()

                                                          # 2 Joueurs

                                                          if 205 <= event.x <= 280 and 100 <=event.y <= 168 :

                                                              PChoixJoueur.forget()

                                                              Pjeu.pack()

                                                              Rejouer = "oui"

                                                              if  Rejouer == "oui":

                                                                  ChoixJoueur = 1                                   #Permet d'alterner entre joueur 1 et joueur 2

                                                                  grille=[['_']*9 for m in range(9)]                  #Cration du tableaux de jeu

                                                                  grille[4][4] = "O"                                  

                                                                  grille[4][5] = "X"

                                                                  grille[5][4] = "X"

                                                                  grille[5][5] = "O"

                                                                  grille[0][0] = "-"                                  

                                                                  grille[1][0], grille[0][1] = "1", "1"

                                                                  grille[2][0], grille[0][2] = "2", "2"

                                                                  grille[3][0], grille[0][3] = "3", "3"

                                                                  grille[4][0], grille[0][4] = "4", "4"

                                                                  grille[5][0], grille[0][5] = "5", "5"

                                                                  grille[6][0], grille[0][6] = "6", "6"

                                                                  grille[7][0], grille[0][7] = "7", "7"

                                                                  grille[8][0], grille[0][8] = "8", "8"

                                                                  Jouable = Position(ChoixJoueur, grille)

                                                                  AfficheLesRondsRouges()

                                                                  PionX, PionO= NbrPionCouleur(ChoixJoueur, grille)     

                                                                  monmessage = Label(text = "Joueur 1 : "+str(PionX)+" pion(s)  &  Joueur 2 : "+str(PionO)+" pion(s)")

                                                                  monmessage.pack( )

                                                                  PlusAucunCoupjouable = 0

                                                                  GrillePleine = 4                                           

                                                                  Victoire=  0                                       #Verifie si il y a victoire

                                                                  verife = 0

                                                                  ChoixLigne1=0

                                                                  ChoixColonne1 =0

                                                                  if GrillePleine < 64 and Victoire!=1:           #Stop le jeu en cas de victoire ou match nul 

                                                                      Affichage(ChoixJoueur , grille , GrillePleine , PlusAucunCoupjouable)             #Utilisation de la fonction Affichage

                                                                      ChangerCouleur()

                                                                      RemiseGrille(ChoixJoueur, grille) 

                                                                      '''ChangementPion(ChoixJoueur, grille, i, j)

                                                                      PionX, PionO= NbrPionCouleur(ChoixJoueur, grille)

                                                                      #print("Joueur 1 : ", PionX ," pion(s) & Joueur 2 : ", PionO ," pion(s)")

                                                                      if ChoixJoueur == 1 :

                                                                          ChoixJoueur = 2

                                                                      elif ChoixJoueur == 2 :

                                                                          ChoixJoueur = 1  

                                                                      Victoire = TestVictoire(GrillePleine)

                                                                  while verife == 0 :

                                                                      Rejouer = input("Voulez-vous rejouer (oui/non) : ")   #Permet d'enchainer les parties 

                                                                      if Rejouer == "oui" or Rejouer == "non":

                                                                          verife = 1                                        #Verifie la reponse des joueurs 

                                                                      #else: print("Repondez par oui ou non ")        

                                                                      #if Rejouer == "non":'''

                                                          # Retour

                                                          if 10 <= event.x <= 100 and 10 <= event.y <= 60:

                                                              PChoixJoueur.forget()

                                                              Pmenu.pack()

                                                      # je cree le Canvas du menu

                                                      Pmenu = Canvas(width = 400 , height = 400)

                                                      Pmenu.pack()

                                                      # 2 rectangle de couleurs qui ammenage de background

                                                      Pmenu.create_rectangle(6,6,394,394, fill="brown")

                                                      Pmenu.create_rectangle(10,10,390,390, fill="black")

                                                      # les photos 

                                                      monimage = PhotoImage(file="othello.png")

                                                      monimagetitre = Pmenu.create_image(198,70, image=monimage)

                                                      monimage2 = PhotoImage(file="play.png")

                                                      monimageplay = Pmenu.create_image(198,180, image=monimage2)

                                                      monimage3 = PhotoImage(file="rules.png")

                                                      monimagerules = Pmenu.create_image(198,260, image=monimage3)

                                                      monimage4 = PhotoImage(file="quit.png")

                                                      monimagequit = Pmenu.create_image(198,330, image=monimage4)

                                                      # je cree de Canvas pour les regles et les photos pour plus tard

                                                      PRegle = Canvas (width = 752 , height = 463)

                                                      imageR = PhotoImage(file="lesregles.png")

                                                      Bretour = PhotoImage(file="bouton-retour.png")

                                                      monimageregle = PhotoImage(file="lesregles.png")

                                                      # je cree le Canvas pour le choix 1 joueur ou 2 joueur

                                                      PChoixJoueur = Canvas (width = 360 , height = 360)

                                                      Boutton1ou2 = PhotoImage(file="imageB.png")

                                                      PvP = PhotoImage(file="PvP.png")

                                                      PvE = PhotoImage(file="PvE.png")

                                                      FlecheRetour = PhotoImage(file="FlecheRetour.png")

                                                      # je cree le Canvas du plateu de jeu

                                                      Pjeu = Canvas(width = 610 , height = 575)

                                                      Pjeu.create_rectangle(15,0,595,580, fill="black")

                                                      Pjeu.create_rectangle(20,5,590,575, fill="brown")

                                                      for i in range(8) :

                                                          for j in range(8) :

                                                              Pjeu.create_rectangle(i*70+10+15 , j*70+10 , i*70+80+15, j*70+80 , fill="green")

                                                      Pions = [[None]*8 for i in range(8)] #tableau vide, la valeur None représente un objet vide

                                                      for i in range (8):

                                                          for j in range (8) :

                                                              Pions[i][j] = Pjeu.create_oval(i*70+15+20 ,j*70+15+5 ,i*70+65+20,j*70+65+5,fill="green")

                                                              #on enregistre chaque rond dans le tableau

                                                              #chaque pion est repéré par un numéro de ligne i et un numéro de colonne j

                                                      #modification de la couleur des pions de départ

                                                      Pjeu.itemconfigure(Pions[3][3],fill="white")

                                                      Pjeu.itemconfigure(Pions[3][4],fill="black")

                                                      Pjeu.itemconfigure(Pions[4][3],fill="black")

                                                      Pjeu.itemconfigure(Pions[4][4],fill="white")

                                                      # je lie mes Canvas au clic gauche de la suris

                                                      Pmenu.bind(sequence="<Button-1>",func = Clic)

                                                      PRegle.bind(sequence="<Button-1>",func = RetourPRegle)

                                                      PChoixJoueur.bind(sequence="<Button-1>",func = CLICnbrsJOUEURS)

                                                      # je lie mon Canvas au clavier

                                                      Pjeu.bind(sequence = "<Key>" , func = Affichage)

                                                      # je lie ma sasie au clavier

                                                      validation = Button(text="Valide tes choix" , command=RecuperationCoords)

                                                      # je cree mes messages

                                                      monmessageERREUR = Label(text ="Repondez par 1, 2, 3, 4, 5, 6, 7, 8 ")

                                                      monmessageERREUR2 = Label(text = "Vous ne pouvez pas jouer ici")

                                                      ChoixJoueur=1

                                                           if PionX == PionO: 

                                                                  print("Match Nul")

                                                                  Victoire=1    

                                                          return Victoire

                                                      def RecuperationCoords(ChoixJoueur, grille, GrillePleine,PlusAucunCoupjouable) :

                                                          ChoixJoueur = 1

                                                          ChoixLigne1 = int(saisieligne.get( ))

                                                          ChoixColonne1 = int(saisiecolonne.get( ))

                                                          print(ChoixLigne1)

                                                          print(ChoixColonne1)

                                                          saisieligne.delete(0,END)

                                                          saisiecolonne.delete(0,END)

                                                          if grille[ChoixLigne1][ChoixColonne1] == '?':

                                                              grille[ChoixLigne1][ChoixColonne1]= symbolejoueur

                                                          #else: 

                                                            #  monmessage.configure(text = "Tu ne peux pas jouer ici !")

                                                              verifeFinale = 1

                                                          return ChoixLigne1,ChoixColonne1, i, j

                                                      def Affichage(ChoixJoueur, grille, GrillePleine,PlusAucunCoupjouable):

                                                          global ChoixLigne1,ChoixClonne1, saisieligne , saisiecolonne    

                                                          Position(ChoixJoueur, grille)

                                                          if ChoixJoueur==1:

                                                              symbolejoueur='X'

                                                          else :

                                                              symbolejoueur='O'

                                                          Jouable = CoupJouable(grille)

                                                          verifeFinale, verifeLigne, verifeColonne, verifePosition, saisieligne = 0, 0, 0, 0, 0

                                                          if Jouable == 'oui':

                                                              PlusAucunCoupjouable = 0

                                                              if verifeFinale == 0:

                                                                  GrillePleine = GrillePleine + 1                       #A chaque pion placer le match nul s'approche

                                                                  if verifePosition == 0:

                                                                          ligne = Label(text="Choisis la ligne :")

                                                                          ligne.pack( )

                                                                          saisieligne = Entry( )

                                                                          saisieligne.pack( )

                                                                          colonne = Label(text="Choisis la colonne :")

                                                                          colonne.pack( )

                                                                          saisiecolonne = Entry( )

                                                                          saisiecolonne.pack( )

                                                                          validation = Button( text = "Valide tes choix" , command = RecuperationCoords)

                                                                          validation.pack( )

                                                          if Jouable == 'non':

                                                              monmessageERREUR2

                                                              ChoixColonne1, ChoixLigne1 = -1, -1

                                                              PlusAucunCoupjouable = PlusAucunCoupjouable + 1

                                                          return  Jouable, GrillePleine, PlusAucunCoupjouable, saisiecolonne , saisieligne

                                                      #####################DEF QUI LIE LES 2##############################################################

                                                      def AfficheLesRondsRouges():

                                                          for i in range (1,9):

                                                              for j in range (1,9):

                                                                  if grille[i][j] == '?':

                                                                      Pjeu.itemconfigure(Pions[i-1][j-1],fill="red")

                                                      def ChangerCouleur():

                                                          for i in range (1,9):

                                                              for j in range (1,9):

                                                                  if grille[i][j] == 'X':

                                                                      Pjeu.itemconfigure(Pions[i-1][j-1],fill="black")

                                                                  if grille[i][j] == 'O':

                                                                      Pjeu.itemconfigure(Pions[i-1][j-1],fill="white")

                                                      #####################################################################################################

                                                      def Clic (event) :

                                                          #  PLAY  #

                                                          if  116 <= event.x <= 280 and 155 <= event.y <= 202 :

                                                              Pmenu.forget()

                                                              PChoixJoueur.pack()

                                                              PChoixJoueur.create_rectangle(0,0,400,400, fill="black")

                                                              MonChoixDeB = PChoixJoueur.create_image(181,181, image=Boutton1ou2)

                                                              playVSplay = PChoixJoueur.create_image(245,310, image=PvP)

                                                              playVSai = PChoixJoueur.create_image(120,310, image=PvE)

                                                              FRetour= PChoixJoueur.create_image(55,31, image=FlecheRetour)

                                                          #  RULES  #

                                                          if  116 <= event.x <= 280 and 235 <= event.y <= 285 :

                                                             Pmenu.forget()

                                                             PRegle.pack()

                                                             PRegle.create_rectangle(2,0,750,463, fill="brown")

                                                             PRegle.create_rectangle(6,4,746,459, fill="black")

                                                             monimageR= PRegle.create_image(376,232,image=imageR)

                                                             monimageB= PRegle.create_image(90,420, image=Bretour)

                                                          #  QUIT  # 

                                                          if  116 <= event.x <= 280 and 305 <= event.y <= 352 :

                                                              Pmenu.forget()

                                                      # bouton retour lorsqu'on est dans le Canvas des regles 

                                                      def RetourPRegle (event) :

                                                          if  70 <= event.x <= 166 and 410 <= event.y <= 445 :

                                                              PRegle.forget()

                                                              Pmenu.pack()

                                                      def CLICnbrsJOUEURS (event) :

                                                          global grille, monmessage,GrillePleine,Victoire,verife,ChoixLigne1,ChoixColonne1 

                                                          # 1 Joueur 

                                                          if 75 <= event.x <=152 and 110 <= event.y <= 168 : 

                                                              PChoixJoueur.forget()

                                                              Pjeu.pack()

                                                          # 2 Joueurs

                                                          if 205 <= event.x <= 280 and 100 <=event.y <= 168 :

                                                              PChoixJoueur.forget()

                                                              Pjeu.pack()

                                                              Rejouer = "oui"

                                                              if  Rejouer == "oui":

                                                                  ChoixJoueur = 1                                   #Permet d'alterner entre joueur 1 et joueur 2

                                                                  grille=[['_']*9 for m in range(9)]                  #Cration du tableaux de jeu

                                                                  grille[4][4] = "O"                                  

                                                                  grille[4][5] = "X"

                                                                  grille[5][4] = "X"

                                                                  grille[5][5] = "O"

                                                                  grille[0][0] = "-"                                  

                                                                  grille[1][0], grille[0][1] = "1", "1"

                                                                  grille[2][0], grille[0][2] = "2", "2"

                                                                  grille[3][0], grille[0][3] = "3", "3"

                                                                  grille[4][0], grille[0][4] = "4", "4"

                                                                  grille[5][0], grille[0][5] = "5", "5"

                                                                  grille[6][0], grille[0][6] = "6", "6"

                                                                  grille[7][0], grille[0][7] = "7", "7"

                                                                  grille[8][0], grille[0][8] = "8", "8"

                                                                  Jouable = Position(ChoixJoueur, grille)

                                                                  AfficheLesRondsRouges()

                                                                  PionX, PionO= NbrPionCouleur(ChoixJoueur, grille)     

                                                                  monmessage = Label(text = "Joueur 1 : "+str(PionX)+" pion(s)  &  Joueur 2 : "+str(PionO)+" pion(s)")

                                                                  monmessage.pack( )

                                                                  PlusAucunCoupjouable = 0

                                                                  GrillePleine = 4                                           

                                                                  Victoire=  0                                       #Verifie si il y a victoire

                                                                  verife = 0

                                                                  ChoixLigne1=0

                                                                  ChoixColonne1 =0

                                                                  if GrillePleine < 64 and Victoire!=1:           #Stop le jeu en cas de victoire ou match nul 

                                                                      Affichage(ChoixJoueur , grille , GrillePleine , PlusAucunCoupjouable)             #Utilisation de la fonction Affichage

                                                                      ChangerCouleur()

                                                                      RemiseGrille(ChoixJoueur, grille) 

                                                                      '''ChangementPion(ChoixJoueur, grille, i, j)

                                                                      PionX, PionO= NbrPionCouleur(ChoixJoueur, grille)

                                                                      #print("Joueur 1 : ", PionX ," pion(s) & Joueur 2 : ", PionO ," pion(s)")

                                                                      if ChoixJoueur == 1 :

                                                                          ChoixJoueur = 2

                                                                      elif ChoixJoueur == 2 :

                                                                          ChoixJoueur = 1  

                                                                      Victoire = TestVictoire(GrillePleine)

                                                                  while verife == 0 :

                                                                      Rejouer = input("Voulez-vous rejouer (oui/non) : ")   #Permet d'enchainer les parties 

                                                                      if Rejouer == "oui" or Rejouer == "non":

                                                                          verife = 1                                        #Verifie la reponse des joueurs 

                                                                      #else: print("Repondez par oui ou non ")        

                                                                      #if Rejouer == "non":'''

                                                          # Retour

                                                          if 10 <= event.x <= 100 and 10 <= event.y <= 60:

                                                              PChoixJoueur.forget()

                                                              Pmenu.pack()

                                                      # je cree le Canvas du menu

                                                      Pmenu = Canvas(width = 400 , height = 400)

                                                      Pmenu.pack()

                                                      # 2 rectangle de couleurs qui ammenage de background

                                                      Pmenu.create_rectangle(6,6,394,394, fill="brown")

                                                      Pmenu.create_rectangle(10,10,390,390, fill="black")

                                                      # les photos 

                                                      monimage = PhotoImage(file="othello.png")

                                                      monimagetitre = Pmenu.create_image(198,70, image=monimage)

                                                      monimage2 = PhotoImage(file="play.png")

                                                      monimageplay = Pmenu.create_image(198,180, image=monimage2)

                                                      monimage3 = PhotoImage(file="rules.png")

                                                      monimagerules = Pmenu.create_image(198,260, image=monimage3)

                                                      monimage4 = PhotoImage(file="quit.png")

                                                      monimagequit = Pmenu.create_image(198,330, image=monimage4)

                                                      # je cree de Canvas pour les regles et les photos pour plus tard

                                                      PRegle = Canvas (width = 752 , height = 463)

                                                      imageR = PhotoImage(file="lesregles.png")

                                                      Bretour = PhotoImage(file="bouton-retour.png")

                                                      monimageregle = PhotoImage(file="lesregles.png")

                                                      # je cree le Canvas pour le choix 1 joueur ou 2 joueur

                                                      PChoixJoueur = Canvas (width = 360 , height = 360)

                                                      Boutton1ou2 = PhotoImage(file="imageB.png")

                                                      PvP = PhotoImage(file="PvP.png")

                                                      PvE = PhotoImage(file="PvE.png")

                                                      FlecheRetour = PhotoImage(file="FlecheRetour.png")

                                                      # je cree le Canvas du plateu de jeu

                                                      Pjeu = Canvas(width = 610 , height = 575)

                                                      Pjeu.create_rectangle(15,0,595,580, fill="black")

                                                      Pjeu.create_rectangle(20,5,590,575, fill="brown")

                                                      for i in range(8) :

                                                          for j in range(8) :

                                                              Pjeu.create_rectangle(i*70+10+15 , j*70+10 , i*70+80+15, j*70+80 , fill="green")

                                                      Pions = [[None]*8 for i in range(8)] #tableau vide, la valeur None représente un objet vide

                                                      for i in range (8):

                                                          for j in range (8) :

                                                              Pions[i][j] = Pjeu.create_oval(i*70+15+20 ,j*70+15+5 ,i*70+65+20,j*70+65+5,fill="green")

                                                              #on enregistre chaque rond dans le tableau

                                                              #chaque pion est repéré par un numéro de ligne i et un numéro de colonne j

                                                      #modification de la couleur des pions de départ

                                                      Pjeu.itemconfigure(Pions[3][3],fill="white")

                                                      Pjeu.itemconfigure(Pions[3][4],fill="black")

                                                      Pjeu.itemconfigure(Pions[4][3],fill="black")

                                                      Pjeu.itemconfigure(Pions[4][4],fill="white")

                                                      # je lie mes Canvas au clic gauche de la suris

                                                      Pmenu.bind(sequence="<Button-1>",func = Clic)

                                                      PRegle.bind(sequence="<Button-1>",func = RetourPRegle)

                                                      PChoixJoueur.bind(sequence="<Button-1>",func = CLICnbrsJOUEURS)

                                                      # je lie mon Canvas au clavier

                                                      Pjeu.bind(sequence = "<Key>" , func = Affichage)

                                                      # je lie ma sasie au clavier

                                                      validation = Button(text="Valide tes choix" , command=RecuperationCoords)

                                                      # je cree mes messages

                                                      monmessageERREUR = Label(text ="Repondez par 1, 2, 3, 4, 5, 6, 7, 8 ")

                                                      monmessageERREUR2 = Label(text = "Vous ne pouvez pas jouer ici")

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Exercices du cours Python / postez ici !

                                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                      • Editeur
                                                      • Markdown