Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » comparer liste et variable
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

comparer liste et variable

Posté le 21/11/2019 19:59

je veux comparer rapidement les données d'une liste avec une variable, mais la manière dont je m'y prend est trop lente. Auriez vous une piste ou un bout de code ? (voir directement effacer les données d'une liste en double)


Youstones Hors ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 03/12/2019 07:54 | #


Non car je vais augmenter progressivement vers une map gigantesque
Etudiant en informatique à l'Umons, fan de prog en tout genre
Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 03/12/2019 08:01 | #


car ma méthode est de générer de la terre partout (des 1 dans la matrice) et puis de lire dans la liste ce qui a été changé et le placer (9 à la place de 1 pour le diamant par exemple)

Voilà, ça c'est intéressant !

Lorsque tu as un diamant, tu as donc une valeur dans la liste qui indique qu'à la position concernée, il y a désormais un diamant au lieu de la terre, n'est-ce-pas ?

Et quand tu supprimes le diamant, tu ajoutes une autre valeur disant qu'il n'y a plus le diamant mais le vide. C'est là l'erreur !

À la place, il vaudrait mieux remplacer la valeur qui dit "c'est un diamant, pas de la terre" par une valeur qui dit "c'est du vide, pas de la terre".
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 03/12/2019 08:04 | #


Youstones a écrit :
Non car je vais augmenter progressivement vers une map gigantesque

Travaille tes Str alors
https://www.planet-casio.com/Fr/programmation/tutoriels.php?id=73
J'ai mis un peu de temps à retrouver le lien, Lephé a répondu depuis. Il répond exactement à ton problème
ouais ouais
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 03/12/2019 16:45 | #


Ça ne vas pas être plus long avec des str ? Et oui lephe, c'est bien de dire de changer l'état c'est mieux, mais comment la trouver au milieu de 20 autre type et coordonnées ?
Etudiant en informatique à l'Umons, fan de prog en tout genre
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 03/12/2019 17:05 | #


Youstones a écrit :
Ça ne vas pas être plus long avec des str ? Et oui lephe, c'est bien de dire de changer l'état c'est mieux, mais comment la trouver au milieu de 20 autre type et coordonnées ?

Les Str sont plus "économes" niveau mémoire.

Sinon : tester tous les éléments de la liste dans une boucle For et Break dès que les coordonnées correspondantes sont trouvées, la variable utilisée dans le For contient l'ID de la liste correspondante.
C'est une des solutions possibles.
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 03/12/2019 17:15 | #


Youstones a écrit :
Et oui lephe, c'est bien de dire de changer l'état c'est mieux, mais comment la trouver au milieu de 20 autre type et coordonnées ?

Voilà une question pertinente !

Et la réponse est... pas forcément ! Si tu connais exactement la valeur tu peux la supprimer rapidement de la liste. J'ai même écrit un programme qui le fait sur la page précédente !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 03/12/2019 19:30 | #


Oui mais le programme met en désordre toute ma liste...
Etudiant en informatique à l'Umons, fan de prog en tout genre
Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 03/12/2019 19:53 | #


Youstones a écrit :
Oui mais le programme met en désordre toute ma liste...

Je t'ai demandé et tu m'as dit que t'en foutais. xD
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 04/12/2019 07:00 | #


Mais oui mais je savais pas que ça allait tout casser

Ajouté le 04/12/2019 à 07:02 :
Une façon de régler le problème serait de trouver très rapidement la ligne ou il y a l'ancienne coordonnées et la remplacer par l'autre... Et ça a chaque fois qu'un bloc est modifier...
Etudiant en informatique à l'Umons, fan de prog en tout genre
Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 04/12/2019 07:43 | #


Ah mais évidemment, si tu as plusieurs objets pour une même case changer l'ordre casse tout. Mais là encore si tu prends la solution propre qui est d'arranger ta liste pour n'avoir qu'un objet par case l'ordre ne compte pas.

Youstones a écrit :
Une façon de régler le problème serait de trouver très rapidement la ligne ou il y a l'ancienne coordonnées et la remplacer par l'autre... Et ça a chaque fois qu'un bloc est modifier...

Tu peux trier ta liste, tout simplement... et faire une recherche binaire.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 04/12/2019 07:45 | #


Recherche binaire, voilà une bien étrange phrase...

(Dis, tu as déjà tester mon jeu ? )
Etudiant en informatique à l'Umons, fan de prog en tout genre
Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 04/12/2019 07:48 | #


L'idée est simple. Ta liste est triée, tu veux trouver une certaine valeur x dedans.

Tu regardes la valeur au milieu. Si c'est plus grand que x, tu sais que x est dans la première moitié. Sinon, tu sais que x est dans la deuxième moitié. Donc, en une seule opération, tu as éliminé la moitié de la liste.

Dans la demi-liste qui reste, tu refais pareil, tu tapes au milieu. Et donc tu élimines encore la moitié de ce qui te reste. Jusqu'à ce qu'il ne te reste plus qu'un seul élément, ou que tu tombes par chance sur x.

Note qu'il faut s'assurer que la liste reste triée, donc c'est bien si ton format de nombre met la position en plus grande valeur.

Plus intelligent encore : tu charges l'écran actuel (et non pas toute la map) dans une matrice de 21x7 et te re-produis une liste quand on sort de l'écran.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Youstones Hors ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 04/12/2019 07:51 | #


C'est pas con ça...
Etudiant en informatique à l'Umons, fan de prog en tout genre

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 239 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd