CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PYTHON] problèmes simple aide moi svp

Pseudo supprimé
Pseudo supprimé 02 mai 2021 à 17:11:15

https://image.noelshack.com/fichiers/2021/17/7/1619968137-rfdgrtgregrg.png https://image.noelshack.com/fichiers/2021/17/7/1619968148-sdfhj.png
bonjour alors je vous explique après la fonction initialisation la variable problème aurait du être diffèrent que J1.pos mais ce n'est pas le cas enfaite on dirait que la variable problème change J1.pos

Pseudo supprimé
Pseudo supprimé 02 mai 2021 à 17:11:44

from testj import *
probleme=[0,0]
J1=Joueur()
def initialisation(entre):
probleme = J1.pos
print('J1 start',J1.pos)
print('probleme start',probleme)
if entre == 'Z':
probleme[1]-=1
elif entre == 'S':
probleme[1]+=1
elif entre == 'Q':
probleme[0]-=1
elif entre == 'D':
probleme[0]+=1
print(J1.pos,'J1 si pareil que probleme pas bien')
print(probleme,'sensé etre different')
J1.deplacement(entre)

initialisation('D')
initialisation('D')
initialisation('D')

Pseudo supprimé
Pseudo supprimé 02 mai 2021 à 17:12:00

class Joueur():
def __init__(self):#creer la classe Joueur
self.pos=[0,0]
def deplacement(self,saisi):#change les coordonner du joueur
if saisi == 'Z':#ZZZZ
self.pos[1]-=1
elif saisi == 'D':#DDDDD
self.pos[0]+=1
elif saisi == 'S':#SSSSS
self.pos[1]+=1
elif saisi == 'Q':#QQQQ
self.pos[0]-=1

Pseudo supprimé
Pseudo supprimé 02 mai 2021 à 17:12:18

voici le code

Pseudo supprimé
Pseudo supprimé 02 mai 2021 à 17:17:12

désoler pour le terminal c'est marque kekette au lieu de problème parce que ca ma vite gonfler il fallait que je m'énerve :hap:

Shiba_the_Inu
Shiba_the_Inu
Niveau 84
02 mai 2021 à 17:54:37

Je connais pas python, mais dans certains langage comme js ou lua quand tu fais une égalité entre une nouvelle variable et un tableau ou un objet, ta nouvelle variable ne copie pas le tableau/objet, ça devient une sorte de pointeur sur ton tabelau/objet. Et donc si tu modifies ta nouvelle variable ça modifie la variable de base.
Il faut faire une copie dans une boucle (généralement for, ou for in, si ça existe) pour faire nouvelleVariable[x] = VariableDeBase [x]

Message édité le 02 mai 2021 à 17:55:38 par Shiba_the_Inu
El_Camino
El_Camino
Niveau 10
02 mai 2021 à 17:59:28

Si tu veux juste faite une copie d'une liste il faut utiliser la méthode .copy() sur la liste car sinon quand tu modifiera l'une cela modifiera l'autre aussi

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment