Bonjour,

Je réalise un jeu en réseau et j'ai a un moment besoin d'envoyer a chaqun de mes clients une matrice qui corresponds a une grille. Le probleme est qu'on ne peut envoyer que des str avec la méthode socket.send() du module socket de python.

Je cherche donc de transformer une matrice en str.

J'ai fais quelques tests :

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
 
>>> liste=[[0]*10]*10 # generation d'une matrice contenant des entiers 0
>>> liste
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] # je me rends compte que c'est trop grand pour un exemple ... -_-
>>> liste=[[0]*3]*3
>>> liste
[[0, 0, 0], [0, 0, 0], [0, 0, 0]] # c'est mieux comme ça :o)
>>> texte=str(liste)
>>> texte
'[[0, 0, 0], [0, 0, 0], [0, 0, 0]]'
>>> # client ...
... 
>>> nouvelle_liste1=list(texte)
>>> nouvelle_liste1
['[', '[', '0', ',', ' ', '0', ',', ' ', '0', ']', ',', ' ', '[', '0', ',', ' ', '0', ',', ' ', '0', ']', ',', ' ', '[', '0', ',', ' ', '0', ',', ' ', '0', ']', ']']
>>> nouvelle_liste2=texte.split(",")
>>> nouvelle_liste2
['[[0', ' 0', ' 0]', ' [0', ' 0', ' 0]', ' [0', ' 0', ' 0]]']
Enfin bon je vais pas tout vous copier/coller
Juste a rajouter que j'ai essayé avec des split, puis des join, dans des boucles. Mais sa marche toujours pas ...

Je suis cependant tout a fais sûr qu'il y a un moyen ! Mais lequel, pourriez vous m'aider ? Merci !