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 :

Pentago avec PyGame


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Pentago avec PyGame
    Bonjour amis programmeurs !

    En cours, on nous a demandé de réaliser le jeu Pentago avec PyGame. J'ai réussi à faire à peu près tout, mis à part une chose. Un affichage des pions ne prenant pas 150 lignes.

    En vous faisant un rapide résumé, le plateau du Pentago se compose de 4 carrés formant un grand plateau carré. Chaque petit carré possède 9 emplacements pour poser un pion (3x3). Mon but est de modifier une liste 2 dimensions pour faire s'afficher des pions de deux couleurs distinctes, correspondant aux deux joueurs.

    J'ai bien tenté la récursivité, ainsi que de les implémenter dans deux boucles for, pourtant, un problème revient avec ces deux "solutions", tout le plateau se remplit de pions de la même couleur. Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    z = 6
    case = [0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2]
    n = 100
    m = 100
    tour = True
    taille = 800
    taille2 = 800
     
    def affichage():
        for o in range(180,taille,110):
            i = 0
            i += 1
            for p in range(180,taille2,110):
                j = 0
                j += 1
                if case[i][j] == 0:
                    pygame.draw.circle(surface,BLUEB,(o,p),30)
                if case[i][j] == 1:
                    pygame.draw.circle(surface,WHITE,(o,p),30)
                if case[i][j] == 2:
                    pygame.draw.circle(surface,RED,(o,p),30)
    Quelqu'un saurait-il pourquoi le plateau se remplit de pions de la même couleur ?

    Avec la liste actuelle, cela me donne ça :

    Nom : 2016-01-20.png
Affichages : 275
Taille : 154,8 Ko

  2. #2
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par XerxesSup Voir le message
    J'ai bien tenté la récursivité, ainsi que de les implémenter dans deux boucles for, pourtant, un problème revient avec ces deux "solutions", tout le plateau se remplit de pions de la même couleur. Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    z = 6
    case = [0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2]
    n = 100
    m = 100
    tour = True
    taille = 800
    taille2 = 800
     
    def affichage():
        for o in range(180,taille,110):
            i = 0
            i += 1
            for p in range(180,taille2,110):
                j = 0
                j += 1
                if case[i][j] == 0:
                    pygame.draw.circle(surface,BLUEB,(o,p),30)
                if case[i][j] == 1:
                    pygame.draw.circle(surface,WHITE,(o,p),30)
                if case[i][j] == 2:
                    pygame.draw.circle(surface,RED,(o,p),30)
    Quelqu'un saurait-il pourquoi le plateau se remplit de pions de la même couleur ?
    Bonjour,
    Simplement parce que dans le script, "i" et "j" ont toujours pour valeur 1.

    Clodion

    PS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    case = [0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2],[0,1,1,0,0,2]
    taille = 800
    taille2 = 800
     
    def affichage():
        i = 0
        for o in range(180,taille,110):
            j = 0
            for p in range(180,taille2,110):
                if case[i][j] == 0:
                    print(0)
                if case[i][j] == 1:
                    print(1)
                if case[i][j] == 2:
                    print(2)
                j += 1
            i += 1
     
    affichage()

Discussions similaires

  1. besoin d'aide pour jeu d'awalé
    Par Dabech dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 12/04/2008, 22h41
  2. Besoin d'aide jeu du morpion
    Par narcis60floyjo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/02/2008, 15h14
  3. besoin d'aide sur 1 jeu :(
    Par dani_fr dans le forum Flash
    Réponses: 3
    Dernier message: 25/05/2007, 10h13
  4. [Débutant] Besoin d'aide pour modifier un jeu
    Par stoff66 dans le forum Assembleur
    Réponses: 9
    Dernier message: 31/08/2006, 18h24
  5. Besoin d'aide pour un projet de jeu en ligne
    Par FLEO dans le forum Projets
    Réponses: 1
    Dernier message: 21/10/2005, 08h55

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