You are not logged in.

Computer Science in 1ère

The forum to cure all your computer anxieties

#1 21-Jan-2020 23:11:33

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Projets février

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

#2 22-Jan-2020 18:28:23

lauryne13
Member
Registered: 16-Sep-2019
Posts: 14

Re: Projets février

Bonjour, j’aimerai savoir comment faire une interface graphique avec visual studio je n’y arrive pas

Offline

#3 22-Jan-2020 20:47:07

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Re: Projets février

Tu utilises easygui

Exemple :


import easygui as eg

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

#4 22-Jan-2020 23:29:26

Ethan B.G.
Member
From: Rezé
Registered: 16-Sep-2019
Posts: 11
Website

Re: Projets février

D'abord tu doit télécharger la bibliothèque si tu ne la pas :

sudo apt-get install python3-easygui

Ou si ta version de python est antérieur à python3 :

sudo apt-get install python-easygui

Offline

#5 23-Jan-2020 01:56:32

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

Autant que possible, il vaut mieux passer par pip install nom_du_paquet

Offline

#6 23-Jan-2020 18:15:39

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Re: Projets février

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

#7 29-Jan-2020 16:45:48

lauryne13
Member
Registered: 16-Sep-2019
Posts: 14

Re: Projets février


def afficher_grille(grille):
 print(" 0) 1) 2)")
 print(" -------------")
 print("0)", end='')
 for i in range(3):
 print(" | "+str(grille[i]), end='')
 print(" |")
 print(" -------------")
 print("1)", end='')
 for i in range(3):
 print(" | "+str(grille[i+3]), end='')
 print(" |")
 print(" -------------")
 print("2)", end='')
 for i in range(3):
 print(" | "+str(grille[i+6]), end='')
 print(" |")
 print(" -------------")

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

#8 29-Jan-2020 23:35:27

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

Bonsoir Lauryne,

le code est impossible à lire, il n'y a pas d'indentation. Est-ce que c'est cela que vous avez produit :


def afficher_grille(grille):
     print(" 0) 1) 2)")
     print(" -------------")
     print("0)", end='')
     for i in range(3):
         print(" | "+str(grille[i]), end='')
         print(" |")
         print(" -------------")
         print("1)", end='')
     for i in range(3):
         print(" | "+str(grille[i+3]), end='')
         print(" |")
         print(" -------------")
         print("2)", end='')
     for i in range(3):
         print(" | "+str(grille[i+6]), end='')
         print(" |")
         print(" -------------")

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

#9 29-Jan-2020 23:41:26

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

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

#10 29-Jan-2020 23:48:52

lauryne13
Member
Registered: 16-Sep-2019
Posts: 14

Re: Projets février

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

#11 29-Jan-2020 23:50:08

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

On regarde demain en classe alors...au dodo !!

Offline

#12 30-Jan-2020 22:34:59

Alexis LUCAS
Member
Registered: 16-Sep-2019
Posts: 16

Re: Projets février

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

#13 30-Jan-2020 23:59:27

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

N'importe quel éditeur convient, même nano : du markdown c'est juste du texte.

Offline

#14 04-Feb-2020 19:06:57

Anaïs Pondevie
Member
Registered: 16-Sep-2019
Posts: 5

Re: Projets février

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

#15 04-Feb-2020 23:10:01

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

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

#16 05-Feb-2020 19:59:45

lpelard
Member
Registered: 16-Sep-2019
Posts: 16

Re: Projets février

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

#17 05-Feb-2020 21:17:48

Ethan B.G.
Member
From: Rezé
Registered: 16-Sep-2019
Posts: 11
Website

Re: Projets février

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 :


pip install --upgrade --force-reinstall easygui
 

Offline

#18 05-Feb-2020 23:54:43

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

lpelard wrote:

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 wink
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

#19 06-Feb-2020 11:19:48

lpelard
Member
Registered: 16-Sep-2019
Posts: 16

Re: Projets février

Ok merci j'explore les 2 pistes ce soir

Offline

#20 06-Feb-2020 20:19:42

Guillaume44
Member
Registered: 30-Oct-2019
Posts: 9

Re: Projets février

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

#21 06-Feb-2020 21:02:57

Ethan B.G.
Member
From: Rezé
Registered: 16-Sep-2019
Posts: 11
Website

Re: Projets février

T'as pas besoin de présiser que la fonction choice() vient de la bibliothèque random quand tu fait un

from random import *

Et c'est le cas de manière générale, en gros, quand t'importe une bibliothèque avec

from bibliothèque import *
#ou
from bibliothèque import fonction

tu n'as pas besoins de mettre

bibliothèque.fonction()

Donc soit tu laisse le

from random import * #ce qui est déconseillé
#ou tu met
from random import choice #si t'as besoin que de choice de la bibliothèque random

  et tu met juste

choice(mot)

Ou alors tu change ton

from random import *
#pour
import random

et tu laisse

random.choice(mot)

ou

import random as ran

et là tu fait

ran.choice(mot)

Offline

#22 06-Feb-2020 21:35:15

Guillaume44
Member
Registered: 30-Oct-2019
Posts: 9

Re: Projets février

Merci Ethan ça marche

Offline

#23 08-Feb-2020 02:19:39

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Re: Projets février

 
import bibliothèque
# et
import bibliothèque as etiquette 
 

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


import bibliothèque
bibliothèque.fonction
 

tu peux donner une étiquette à ta bibliothèque de cette manière :


import bibliothèque as bib
bib.fonction
 

Last edited by Pacôme Giraudeau (08-Feb-2020 02:27:59)

Offline

#24 08-Feb-2020 11:52:11

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

cool

Offline

#25 08-Feb-2020 12:11:42

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Projets février

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

Board footer

Powered by FluxBB