Python programmation jeu solitaire Napoléon [DOUBLON]

Fermé
patouna33 Messages postés 2 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 28 août 2015 - Modifié par fiddy le 27/11/2014 à 18:12
Forceseek Messages postés 321 Date d'inscription samedi 24 septembre 2011 Statut Membre Dernière intervention 22 janvier 2015 - 2 déc. 2014 à 11:46
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


A voir également:

3 réponses

Forceseek Messages postés 321 Date d'inscription samedi 24 septembre 2011 Statut Membre Dernière intervention 22 janvier 2015 71
27 nov. 2014 à 20:22
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
Merci, je vais essayer
0
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
Forceseek Messages postés 321 Date d'inscription samedi 24 septembre 2011 Statut Membre Dernière intervention 22 janvier 2015 71
2 déc. 2014 à 11:46
Pourquoi pas placer tes 52 cartes dans un tableau temporaire et les replacer dans un autre aléatoirement ?
0