You are not logged in.
The forum to cure all your computer anxieties
Plutôt que de copier un projet que vous ne comprenez pas sur internet, reprenez un sujet de mini-projet donné depuis septembre ou même un simple exercice. Le tout est qu'il soit 100% personnel, maîtrisé, bien documenté, cohérent, qu'il rende compte des bonnes pratiques vues depuis septembre. Ce n'est pas sa difficulté qui compte.
Offline
Bonjour, j’aimerai savoir comment faire une interface graphique avec visual studio je n’y arrive pas
Offline
Tu utilises easygui
Exemple :
titre = “mon titre”
msg = “mon message”
choix = [“choix 1”, “choix 2”, “choix n”]
rep = eg.choicebox(msg, titre, choix)
# rep sera ce que choisi l’utilisateur
Tu peux remplacer choicebox par buttonbox si tu veux des boutons.
Titre = “titre”
Msg = “msg”
Rep = eg.textbox(Msg, Titre)
# cela demandera une saisie de texte qui sera contenu dans Rep
Il y a également possibilité de mettre des photos
Sinon tu peux aller regarder la documentation pour plus d’informations :
https://readthedocs.org/projects/easygu … df/latest/
Last edited by Pacôme Giraudeau (22-Jan-2020 20:48:00)
Offline
D'abord tu doit télécharger la bibliothèque si tu ne la pas :
Ou si ta version de python est antérieur à python3 :
Offline
Autant que possible, il vaut mieux passer par pip install nom_du_paquet
Offline
Pour ceux sur pyzo, on peut faire :
>>> install (nom module)
Ou :
>>> pip install (module)
Dans python interactif (Ipython)
Last edited by Pacôme Giraudeau (23-Jan-2020 18:41:43)
Offline
print("Bienvenue au jeu du morpion")
print("---------------------------")
joueur1 = input("Entrez le prénom ou le surnom du joueur 1 :")
joueur2 = input("Entrez le prénom ou le surnom du joueur 2 :")
print(joueur1 + " possède les X")
print(joueur2 + " possède les 0")
def tour(grille, joueur):
print("C'est le tour de " +joueur1)
colonne=input("Entrez le numero de la colonne : ")
ligne=input("Entrez le numero de la ligne : ")
print("Vous avez joué la case ("+colonne+","+ligne+")")
while grille[int(colonne)+int(ligne)*3]!=" ":
afficher_grille(grille)
print("Cette case est déja jouée. DOMMAGE! Saisissez une autre case")
colonne=input("Entrez le numéro de la colonne : ")
ligne=input("Entrez le numéro de la ligne : ")
print("Vous avez joué la case ("+colonne+","+ligne+")")
if joueur1 :
grille[int(colonne)+int(ligne)*3]="X"
afficher_grille(grille)
print("C'est le tour de " +joueur2)
colonne=input("Entrez le numero de la colonne : ")
ligne=input("Entrez le numero de la ligne : ")
print("Vous avez joué la case ("+colonne+","+ligne+")")
while grille[int(colonne)+int(ligne)*3]!=" ":
afficher_grille(grille)
print("Cette case est déja jouée. DOMMAGE! Saisissez une autre case")
colonne=input("Entrez le numéro de la colonne : ")
ligne=input("Entrez le numéro de la ligne : ")
print("Vous avez joué la case ("+colonne+","+ligne+")")
if joueur2 :
grille[int(colonne)+int(ligne)*3]="O"
afficher_grille(grille)
def est_gagnant(grille):
if (grille[0]==grille[1]) and (grille[0]==grille[2]) and (grille[0]!=" "):
return 1
if (grille[3]==grille[4]) and (grille[3]==grille[5]) and (grille[3]!=" "):
return 1
if (grille[6]==grille[7]) and (grille[6]==grille[8]) and (grille[6]!=" "):
return 1
if (grille[0]==grille[3]) and (grille[0]==grille[6]) and (grille[0]!=" "):
return 1
if (grille[1]==grille[4]) and (grille[1]==grille[7]) and (grille[1]!=" "):
return 1
if (grille[2]==grille[5]) and (grille[2]==grille[8]) and (grille[2]!=" "):
return 1
if (grille[0]==grille[4]) and (grille[0]==grille[8]) and (grille[0]!=" "):
return 1
if (grille[2]==grille[4]) and (grille[2]==grille[6]) and (grille[2]!=" "):
return 1
def est_match_nul(grille):
for i in range(9):
if grille[i]==" ":
return 0
return 1
grille=[" "," "," "," "," "," "," "," "," "]
afficher_grille(grille)
gagne=0
while gagne==0:
tour(grille,joueur1)
if est_gagnant(grille):
print(joueur2 + " remporte la partie")
gagne=1
else:
if est_match_nul(grille):
print("Plus de place ! Match nul !")
gagne=1
if joueur1:
joueur=2
else:
joueur=1
Je ne comprends pourquoi lorsque le joueur 1 a gagné il n’y a aucun message qui s’affiche alors que pour le joueur 2 le programme marche
Offline
Bonsoir Lauryne,
le code est impossible à lire, il n'y a pas d'indentation. Est-ce que c'est cela que vous avez produit :
print("Bienvenue au jeu du morpion")
print("---------------------------")
joueur1 = input("Entrez le prénom ou le surnom du joueur 1 :")
joueur2 = input("Entrez le prénom ou le surnom du joueur 2 :")
print(joueur1 + " possède les X")
print(joueur2 + " possède les 0")
def tour(grille, joueur):
print("C'est le tour de " +joueur1)
colonne=input("Entrez le numero de la colonne : ")
ligne=input("Entrez le numero de la ligne : ")
print("Vous avez joué la case ("+colonne+","+ligne+")")
while grille[int(colonne)+int(ligne)*3]!=" ":
afficher_grille(grille)
print("Cette case est déja jouée. DOMMAGE! Saisissez une autre case")
colonne=input("Entrez le numéro de la colonne : ")
ligne=input("Entrez le numéro de la ligne : ")
print("Vous avez joué la case ("+colonne+","+ligne+")")
if joueur1 :
grille[int(colonne)+int(ligne)*3]="X"
afficher_grille(grille)
print("C'est le tour de " +joueur2)
colonne=input("Entrez le numero de la colonne : ")
ligne=input("Entrez le numero de la ligne : ")
print("Vous avez joué la case ("+colonne+","+ligne+")")
while grille[int(colonne)+int(ligne)*3]!=" ":
afficher_grille(grille)
print("Cette case est déja jouée. DOMMAGE! Saisissez une autre case")
colonne=input("Entrez le numéro de la colonne : ")
ligne=input("Entrez le numéro de la ligne : ")
print("Vous avez joué la case ("+colonne+","+ligne+")")
if joueur2 :
grille[int(colonne)+int(ligne)*3]="O"
afficher_grille(grille)
def est_gagnant(grille):
if (grille[0]==grille[1]) and (grille[0]==grille[2]) and (grille[0]!=" "):
return 1
if (grille[3]==grille[4]) and (grille[3]==grille[5]) and (grille[3]!=" "):
return 1
if (grille[6]==grille[7]) and (grille[6]==grille[8]) and (grille[6]!=" "):
return 1
if (grille[0]==grille[3]) and (grille[0]==grille[6]) and (grille[0]!=" "):
return 1
if (grille[1]==grille[4]) and (grille[1]==grille[7]) and (grille[1]!=" "):
return 1
if (grille[2]==grille[5]) and (grille[2]==grille[8]) and (grille[2]!=" "):
return 1
if (grille[0]==grille[4]) and (grille[0]==grille[8]) and (grille[0]!=" "):
return 1
if (grille[2]==grille[4]) and (grille[2]==grille[6]) and (grille[2]!=" "):
return 1
def est_match_nul(grille):
for i in range(9):
if grille[i]==" ":
return 0
return 1
grille=[" "," "," "," "," "," "," "," "," "]
afficher_grille(grille)
gagne=0
while gagne==0:
tour(grille,joueur1)
if est_gagnant(grille):
print(joueur2 + " remporte la partie")
gagne=1
else:
if est_match_nul(grille):
print("Plus de place ! Match nul !")
gagne=1
if joueur1:
joueur=2
else:
joueur=1
Offline
Il faudrait essayer de documenter et commenter votre code :
- on le comprendra mieux
- VOUS le comprendrez mieux
Il semble qu'il y ait des répétitions. Dans un second temps, quand ça marchera, essayez d'éviter trop de if. Essayer de faire répéter au joueur 2 ce que vous avez écrit pour le joueur 1.
Essayez tout d'abord décrire sur papier votre démarche, de faire des schémas.
Essayez ensuite de séparer les fonctions du déroulement du programme principal proprement dit comme dit en cours.
Offline
Les indentations sont présents sur mon programme sur visual studio mais elles ne se sont pas mise sur le forum.
Je me suis inspiré de plusieurs programmes pour pouvoir faire fonctionner le jeu du morpion pour l’instant j’y est rajouté une variable pour le nom des différents joueurs qu’il faut compléter dans le terminal ainsi que une nouvelle mise en forme du jeu lorsque qu’il se trouve dans le terminal mais en ajoutant une variable pour le nom des joueurs le programme ne fonctionne pu totalement
Offline
On regarde demain en classe alors...au dodo !!
Offline
Bonsoir, je voudrais juste savoir. Utilisant Mu plutôt que VSC qui est trop lourd sur ma raspberry pour travailler en Python, je voulais savoir si Atom était intéressant pour faire ma documentation au format Markdown ou si il y avait d’autres possibilités plus pratiques.
Merci.
Offline
N'importe quel éditeur convient, même nano : du markdown c'est juste du texte.
Offline
Bonjour, pour mon projet j'utilise de la musique mais je cherche comment transformer une musique séquence.
Je ne sais pas si c'est clair mais dans les mini-projets musicaux, les morceaux musicaux nous étaient donnés et moi je cherche a en faire d'autres. J'espère que vous pourrez m'aider, merci !
Offline
Il faut lire la documentation de la bibliothèque pyknon qui est expliquée plus en détail dans music for geeks and nerds...
Offline
Bonsoir,
Jai vu que vous aviez parlé de easygui et jai eu envie de le rajouter a mon projet donc jai suivi vos message pour installer : pip install easygui sur vsc.
Vsc m'a demander de mettre a jour pip : $ python -m pip install --upgrade pip
Et ca a marcher mais quand jai reessaye d'installer easygui le terminal: $ pip install easygui
Le terminal m'a renvoyer: Requirement already satisfied: easygui in c:\users\utilisateur\appdata\local\programs\python\python37-32\lib\site-packages (0.98.1)
==
Exigence déjà satisfaite: easygui dans c: \ users \ utilisateur \ appdata \ local \ programs \ python \ python37-32 \ lib \ site-packages (0.98.1)
Avec google trad mais le soucis cest que je ne sais pas ou est easygui si il est deja installer ni comment le trouver.
Si vous avez des idees?
Merci d'avance et bonne soirée
Offline
Salut, ce message signifie simplement que easygui a déjà été installé. Je pense que le message te disant de mettre à jour pip était juste un "conseil" et non pas une obligation. Il a du faire l'installation quant même. Essaye d'exécuter un programme python avec la ligne "import easygui" pour voir s'il te renvoie un message d'erreur disant que la bibliothèque easygui existe. Si il te renvoie ce message :
Offline
Bonsoir,
Avec google trad mais le soucis cest que je ne sais pas ou est easygui si il est deja installer ni comment le trouver.
Si vous avez des idees?
Par exemple travailler le cours
Cela s'appelle importer une bibliothèque. Nous en parlons depuis longtemps. Mieux vaut tard que jamais cependant...
Pip est l'acronyme récursive de "Pip Install Packages" donc pip s'occupe d'installer tout ce qui faut. Il suffit ensuite de l'importer...Ahhh importer une bibliothèque, action mystérieuse...
Offline
Ok merci j'explore les 2 pistes ce soir
Offline
Bonsoir, j'ai isolé une partie de mon programme pour essayer de débuguer(pour cela qu'il y a les prints) mais je ne comprends toujours pas pourquoi j'obtiens l'erreur :
'builtin_function_or_method' object has no attribute 'choice'
from random import*
mot = ["voiture","chandelier","ubuntu"]
choix_du_mot = random.choice(mot)
print(choix_du_mot)
nombre_de_traits = len(choix_du_mot)
print(nombre_de_traits)
Offline
T'as pas besoin de présiser que la fonction choice() vient de la bibliothèque random quand tu fait un
Et c'est le cas de manière générale, en gros, quand t'importe une bibliothèque avec
tu n'as pas besoins de mettre
Donc soit tu laisse le
et tu met juste
Ou alors tu change ton
et tu laisse
ou
et là tu fait
Offline
Merci Ethan ça marche
Offline
sont préférables car si jamais tu importes plusieurs bibliothèques avec des fonctions ayant le même nom, il y aura des problèmes avec le
from bibliothèque import *
#ou le
from bibliothèque import fonction
——Explication deuxième partie de la réponse Ethan——
Si tu trouves qu’appeler le nom de la bibliothèque avant chaque appel de fonction est trop long
tu peux donner une étiquette à ta bibliothèque de cette manière :
Last edited by Pacôme Giraudeau (08-Feb-2020 02:27:59)
Offline
Offline
CONSIGNES again ! En réponses à certains emails :
Ce qu'il faut au minimum c'est :
- manipuler des structures de données : listes, ensembles, dictionnaires,...
- créer quelques fonctions pures
- présenter le code avec le schéma du cours en 3 parties
- un seul print
- une documentation avec en particulier un mode d'emploi pour installer et lancer
- un compte gitlab
Bon week-end
Offline