Posté le 21/11/2019 19:59
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
Citer : Posté le 03/12/2019 07:54 | #
Non car je vais augmenter progressivement vers une map gigantesque
Citer : Posté le 03/12/2019 08:01 | #
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".
Citer : Posté le 03/12/2019 08:04 | #
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
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 ?
Citer : Posté le 03/12/2019 17:05 | #
Ç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.
Citer : Posté le 03/12/2019 17:15 | #
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 !
Citer : Posté le 03/12/2019 19:30 | #
Oui mais le programme met en désordre toute ma liste...
Citer : Posté le 03/12/2019 19:53 | #
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
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...
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.
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.
Citer : Posté le 04/12/2019 07:45 | #
Recherche binaire, voilà une bien étrange phrase...
(Dis, tu as déjà tester mon jeu ? )
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.
Citer : Posté le 04/12/2019 07:51 | #
C'est pas con ça...