Python programmation jeu solitaire Napoléon [DOUBLON]

patouna33 Messages postés 2 Statut Membre -  
Forceseek Messages postés 377 Statut Membre -
Bonjour,

comment puis-je en Python, créer un tableau à double entrée, de 4 lignes , 14 colonnes et y injecter mon jeu de cartes a partir de la 2éme colonne la 1ére restant vide, j'ai appris le langage python en 1 jour, donc je suis trés limitée, et l'âge faisant j'ai perdu quelques neurones, en fait j'essaie de transcrire le jeu solitaire Napoléon en Python, j'ai réusi en un premier à mélanger les cartes.
merci

3 réponses

  1. Forceseek Messages postés 377 Statut Membre 71
     
    Pour faire un tableau bidimensionnel tu peux faire un tableau de tableau ou simuler la bidimensionnalité, voici un tableau 2D que j'ai fait qui me sert pour tous mes jeux, j'espère que ça t'aidera :)
    class Array():
    def __init__(self, size, default=0):
    self.sizeX, self.sizeY = size
    self.arrayInc = 0
    self.array = []
    self.defaultValue = default
    while self.arrayInc != self.sizeX*self.sizeY:
    self.array.append(self.defaultValue)
    self.arrayInc += 1
    def __repr__(self):
    self.reprInc = 0
    self.finalStr = ""
    for item in self.array:
    if self.reprInc == self.sizeX:
    self.finalStr += "\n"
    self.reprInc = 0
    self.finalStr += str(item) + ","
    self.reprInc += 1
    return self.finalStr
    def reprArray(self, array):
    self.reprInc = 0
    self.finalStr = ""
    self.workArray = array
    for item in self.workArray:
    if self.reprInc == self.getSizeX:
    self.finalStr += "\n"
    self.reprInc = 0
    self.finalStr += str(item) + ","
    self.reprInc += 1
    return self.finalStr
    def get(self, posX, posY):
    try:
    return self.array[(posX+(posY-1)*self.sizeX)-1]
    except IndexError:
    return Blocs.Void()
    def set(self, posX, posY, value):
    try:
    self.array[(posX+(posY-1)*self.sizeX)-1] = value
    except IndexError:
    pass
    def getSquare(self, posX, posY, sizeX, sizeY):
    self.getPosX = posX
    self.getPosY = posY
    self.getSizeX = sizeX
    self.getSizeY = sizeY
    self.currentContent = []
    for i in range(1,self.getSizeY+1):
    for j in range(1,self.getSizeX+1):
    self.currentContent.append(self.get(self.getPosX-1+j,self.getPosY-1+i))
    return self.currentContent


    Pour l'utiliser tu dois d'abord inclure ce code au début de ton programme puis créer un objet Array comme ceci :
    monTableau = Array()

    Puis pour affecter une valeur :
    monTableau.set(x,y,valeur)

    Et en récupérer une :
    valeurRecuperee = monTableau.get(x,y)

    Pour récupérer un carré du tableau :
    partieDeMonTableau = monTableau.getSquare(x,y,tailleX,tailleY)

    Pour afficher le tableau en entier :
    print(monTableau)

    Pour afficher une section de tableau :
    print(monTableau.reprArray(partieDeMonTableau)


    Voilà, j'espère que ça te sera utile :)
    Si tu veux tu peux enregistrer le code au dessus en Array.py dans le dossier de ton programme et en haut de ton programme noter import Array
    0
    1. Patouna33
       
      Merci, je vais essayer
      0
  2. Patouna33
     
    Bonsoir, en fait je galére, je n'arrive même pas à mélanger mes cartes jeu de 52, alors les afficher dans un tableau c'est pire, je ne connais que le basic, je galére en python
    0
  3. Forceseek Messages postés 377 Statut Membre 71
     
    Pourquoi pas placer tes 52 cartes dans un tableau temporaire et les replacer dans un autre aléatoirement ?
    0