Python programmation jeu solitaire Napoléon [DOUBLON] [Fermé]

Signaler
Messages postés
2
Date d'inscription
jeudi 27 novembre 2014
Statut
Membre
Dernière intervention
28 août 2015
-
Messages postés
321
Date d'inscription
samedi 24 septembre 2011
Statut
Membre
Dernière intervention
22 janvier 2015
-
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

Messages postés
321
Date d'inscription
samedi 24 septembre 2011
Statut
Membre
Dernière intervention
22 janvier 2015
61
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
Merci, je vais essayer
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
Messages postés
321
Date d'inscription
samedi 24 septembre 2011
Statut
Membre
Dernière intervention
22 janvier 2015
61
Pourquoi pas placer tes 52 cartes dans un tableau temporaire et les replacer dans un autre aléatoirement ?