IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Exercice de puissance 4


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 6
    Par défaut Exercice de puissance 4
    Le jeu Puissance Quatre
    Voici encore un jeu de plateau : le jeu Puissance 4. Deux joueurs s’affrontent sur un plateau de jeu
    vertical : ils glissent a tour de r ` ole un pion, marqu ˆ e d’un rond ou d’une croix selon le joueur. Lorsqu’un ´
    joueur pose un pion dans une colonne, le plateau etant vertical, le pion tombe jusqu’ ´ a toucher le fond de `
    la colonne ou un autre pion dej´ a pr ` esent dans la colonne. ´
    L’objectif pour chaque joueur est d’aligner (horizontalement, verticalement ou en diagonale) quatre
    pions lui appartenant.
    Nous allons reprendre la structure du jeu du taquin que nous avons vu en cours et qui est disponible
    sur Moodle pour l’adapter au jeu de puissance 4. Recup ´ erez ce fichier si vous ne l’avez pas d ´ ej´ a`
    fait, et remonnez le puissance4.py. Nous allons re´ecrire la classe ´ Taquin en une nouvelle classe
    PuissanceQuatre.
    Le programme principal est maintenant :
    ### script principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if __name__ == ’__main__’ :
    p4 = PuissanceQuatre()
    joueur = random.randint(0,1)
    while not p4.partie_finie():
    print(p4)
    print("Aux",p4.carac(joueur),"de jouer")
    choix = int(input("Dans quelle colonne voulez-vous jouer ? "))
    res = p4.pose_colonne(choix,joueur)
    if not res :
    print("Non, ce n’est pas possible.")
    else :
    joueur = (joueur+1)%2
    print(p4)
    print("Partie finie. Bravo")
    On remarque que la variable joueur qui represente un joueur varie entre ´ 0 et 1. On observe
    egalement que la classe ´ PuissanceQuatre possede au moins les m ` ethodes suivantes : ´
    • un constructeur
    • une methode ´ partie finie : detecte la fin de partie ´
    • une methode ´ carac(joueur) : renvoie la marque sur le pion du joueur (un O ou un X)
    • une methode ´ str : pour afficher le plateau de jeu
    • une methode ´ pose colonne(choix,joueur) : pour faire tomber le pion de joueur dans


    la colonne choix. Cette methode renvoie faux si ´ choix ne correspond pas a un num ` ero de ´
    colonne ou si la colonne est dej´ a pleine. `
    Nous allons en ajouter quelques unes (toutes tres simples). `
    1
    Exercice 1 : Le constructeur
    Un PuissanceQuatre est caracteris ´ e par ´
    — un nombre de lignes (par defaut, 6) ´
    — et un nombre de colonnes (par defaut, 7) ´
    — un plateau de jeu self. plateau, dont les cases contiennent soit -1 si la case est vide, 0 si
    elle contient un pion du joueur 0, 1 si elle contient un pion du joueur 1.
    — une liste self. carac qui contient juste les deux carcteres ` ’O’ et ’X’. Cette liste n’est utile
    que pour rendre l’affichage du jeu agreable aux joueurs. ´
    — les coordonnees de la derni ´ ere case remplie ` self. dernier coup. Elles sont initialisees ´ a`
    (-1,-1).
    Modifiez le constructeur du Taquin pour qu’il devienne un constructeur de PuissanceQuatre.
    Exercice 2 : Methode ´ carac
    Specifiez puis ´ ecrivez la m ´ ethode ´ carac(joueur) qui renvoie la marque sur le pion du joueur (un
    O ou un X). Quel attribut cette methode utilise-t-elle ? ´
    Exercice 3 : Affichage du plateau de jeu
    Inspirez-vous du dialogue avec le joueur mis en annexe pour faire modifier l’affichage du Taquin
    en un affichage de PuissanceQuatre. Vous remarqeurez que pour aider les joueurs, le numero des ´
    colonnes est indique sur la premi ´ ere ligne d’affichage. `
    Exercice 4 : Colonne valide
    Specifiez puis ´ ecrivez la m ´ ethode ´ colonne valide qui verifie que le num ´ ero de colonne donn ´ e´
    en parametre est valide : il correspond bien ` a un indice de colonne, et il y a au moins une case libre dans `
    cette colonne.
    Exercice 5 : Poser un pion
    Specifiez puis ´ ecrivez la m ´ ethode ´ pose colonne(choix,joueur) qui fait tomber le pion de
    joueur dans la colonne choix. Cette methode renvoie faux si ´ choix n’est pas valide. N’oubliez pas
    de memoriser dans ´ self. dernier coup les coordonnees de la case dans laquelle le pion arrive. ´
    Dans un premier temps, votre methode ´ partie finie peut renvoyer False systematiquement. ´
    Vous devez pouvoir tester votre jeu !
    Exercice 6 : Coordonnees valides ´
    Specifiez puis ´ ecrivez la m ´ ethode ´ coords valide qui verifie que le num ´ ero de ligne et de colonne ´
    donnes en param ´ etre sont des coordonn ` ees valides : ils correspondent bien ´ a un indice de ligne et un `
    indice de colonne.
    Exercice 7 : Compter les pions
    Ecrivez la m ´ ethode ´ compte valeur :
    2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def compte_valeur(self,lig,col,val,inc_lig,inc_col) :
    ’’’PuissanceQuatre, int, int, int, int, int -> int
    retourne le nombre de cases de valeur val `a partir de (lig,col)
    dans la direction (inc_lig, inc_col)
    ’’’
    La case (lig,col) ne doit pas etre compt ˆ ee. Ainsi, un appel de la forme : ´
    self.compte_valeur(lig,col,0,1,-1)
    comptera le nombre de pions de valeur 0 presents dans le tableau de mani ´ ere cons ` ecutive dans la demi- ´
    diagonale qui part de (lig,col) et prend une direction ”sud-ouest” (vers le coin bas gauche).
    Exercice 8 : Partie finie ! Il ne reste plus qu’a sp ` ecifier et ´ ecrire la m ´ ethode ´ partie finie a l’aide `
    des deux methodes pr ´ ec´ edentes. ´
    Annexe
    Voici un exemple d’interaction avec l’utilisateur qui montre l’affichage du plateau a diff ` erentes ´
    etapes. ´
    moi@gavotte:˜/enseign/algo2/$ python3 puissance4.py
    0 1 2 3 4 5 6
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    Aux X de jouer
    Dans quelle colonne voulez-vous jouer ? 2
    0 1 2 3 4 5 6
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    3
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | |X| | | | |
    +-+-+-+-+-+-+-+
    Aux O de jouer
    Dans quelle colonne voulez-vous jouer ? 3
    0 1 2 3 4 5 6
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | |X|O| | | |
    +-+-+-+-+-+-+-+
    Aux X de jouer
    Dans quelle colonne voulez-vous jouer ? 3
    0 1 2 3 4 5 6
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | | | | | |
    +-+-+-+-+-+-+-+
    | | | |X| | | |
    +-+-+-+-+-+-+-+
    | | |X|O| | | |
    +-+-+-+-+-+-+-+
    Aux O de jouer
    Dans quelle colonne voulez-vous jouer ? ...

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 6
    Par défaut
    Bonjour, le problème c'est que j'en fais depuis l'année dernière et que je n'ai rien compris du tout à la programmation en python...
    J'ai un ami qui doit m'aider ce week-end à comprendre mon cours pour que je puisse réussir mes partielles.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 6
    Par défaut
    Voici les fichiers tp3 (1).pdftaquin (1).py

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Citation Envoyé par Léa1602 Voir le message
    Bonjour, le problème c'est que j'en fais depuis l'année dernière et que je n'ai rien compris du tout à la programmation en python...
    J'ai un ami qui doit m'aider ce week-end à comprendre mon cours pour que je puisse réussir mes partielles.
    En étant méchant, j'aurai tendance à dire: Que fais-tu en informatique ?
    Mais ce n'est pas le but, pour pouvoir t'aider (et non faire le travail à ta place) :
    Qu'est-ce qui te bloque dans le langage et quel autre langage informatique maitrises-tu au moins un peu pour pouvoir faire l'exercice ?

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 6
    Par défaut
    Bonjour,
    Python est le seul langage que j'utilise
    Je suis en licence de maths et je n'utilise jamais l'informatique.

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Ok,

    Alors, en pas à pas: commençons par l'exercice 1:

    Qu'est-ce que le constructeur dans la classe du taquin ?
    Qu'est-ce qui lui manque (ou a en trop) pour que celui-ci devienne un constructeur de puissance 4 ?

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 6
    Par défaut
    Il faut changer les dimension du plateau,
    Ajouter la liste self.-carc
    et ajouter self.--dernier-coup

  8. #8
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par Léa1602 Voir le message
    Il faudrait que vous voyez les TP pour savoir combien vous voulez mais j'aurais dit 20-30€ car étant étudiante je n'ai pas énormément d'argent
    C'était une blague : le forum n'est pas fait pour cela. Comme l'a dit disedorgue, les gens sont là pour t'aider... à condition que tu y mettes de la bonne volonté, notamment que tu présentes ce que tu as fait et où sont tes difficultés.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 6
    Par défaut
    Oui je comprends mais le problème c'est que je n'ai pas toujours le temps de me concentrer sur ça.
    J'ai des cours de L1 et de L2 à suivre en même temps et je n'ai pas toujours le temps pour cette matière.

  10. #10
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Et donc, qu'est-ce qui te gène pour faire ces changements de l'exercice 1 ?

    PS: on peut comprendre que tu n'as pas que ça à gérer, mais dis-toi que si tu te diriges vers une carrière liée aux mathématiques, tu seras amenée à utiliser des langages comme python, donc autant t'y mettre.
    De plus, résoudre la totalité de tes exercices devrait prendre 2 heures de ton temps et au pire disons 4 heures en cas de debug car tu as déjà toutes les bases dans le jeu de taquin sur lequel tu dois t'appuyer.

Discussions similaires

  1. Python pour les nuls
    Par Quénu dans le forum Général Python
    Réponses: 14
    Dernier message: 04/08/2010, 15h35
  2. Recuper variables Python pour les traiter en c++
    Par Aqllex dans le forum Interfaçage autre langage
    Réponses: 0
    Dernier message: 21/05/2010, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo