Advertisement
paulolol

Pseudo-code dichotomie

Sep 30th, 2017
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. Au chargement du fichier 0m :
  2.   -> Tri de la liste des entités :
  3.     - Par numéro de map croissant
  4.     - Si deux numéros de map sont identiques, tri par position x
  5.     - Si deux positions x sont identiques, tri par position y
  6.  
  7. Au clic sur un mob sur la map :
  8.   - mob.map, mob.x, mob.y représentent les infos du mob sélectionné
  9.   - imin = 0, imax = liste.length
  10.   // Boucle 1 :
  11.   - m = (int) (imin + imax)/2
  12.   - While liste[m].map != mob.map:
  13.     • If liste[m].map > mob.map:
  14.         imax = m
  15.     • Else:
  16.         imin = m
  17.     • m = (int) (imin + imax)/2
  18.  
  19.   // Boucle 2 :
  20.   -> While liste[m].x != mob.x:
  21.     • If liste[m].x > mob.x:
  22.         imax = m
  23.     • Else:
  24.         imin = m
  25.     • m = (int) (imin + imax)/2
  26.  
  27.   // Boucle 3 :
  28.   -> While liste[m].y != mob.y:
  29.     • If liste[m].y > mob.y:
  30.         imax = m
  31.     • Else:
  32.         imin = m
  33.     • m = (int) (imin + imax)/2
  34.  
  35.   // Voilà ! m est l'index du mob recherché
  36.  
  37. Ça peut paraître super long mais chaque boucle n'itère que peut de fois
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement