Jump to content

Liste de valeur


 Share

Recommended Posts

Bonjour! Je suis en train de créer une app pour iPhone pour tenir le pointage de différents jeux ex: Fers, Poches... À partie d'une liste de valeur contenant les noms de joueur,

je voudrais définir de façon aléatoire l'ordre dans lequel les joueurs vont s'exécuter, c'est là que je suis bloqué. Quelqu'un peut m'aider?

Merci.

Link to comment
Share on other sites

il y a une heure, philippeleger a dit :

définir de façon aléatoire l'ordre dans lequel les joueurs vont s'exécuter

Bonjour Philippe,

Que signifie «les joueurs vont s'exécuter» ?

S'agit-il de «choisir aléatoirement un joueur à chaque exécution du script» ?

Link to comment
Share on other sites

Salut, c'est seulement au début pour déterminer dans quel ordre les joueurs vont jouer.

Link to comment
Share on other sites

D'accord, donc on a par exemple 4 joueurs qui vont jouer une partie, on sait déjà lesquels, disons les joueurs nommés A, B, C, D, et on veut qu'il leur soit attribué un ordre de passage de façon aléatoire.

En principe, il doit y avoir une table "participation à la partie", dans laquelle on crée 1 enregistrement pour chaque joueur de la partie. @MagalieJ appellerait cette table "joue" ou "participe" 😉 et c'est dans cette table qu'on veut que la rubrique "ordre de passage" soit remplie aléatoirement. Il nous faut donc pour chacun un numéro aléatoire, qui ne dépasse pas le nombre d'inscrits à la partie, et qui ne se répète pas.

C'est ça ?

Link to comment
Share on other sites

Si c'est ça, je sens gros comme une maison qu'un plus pointu que moi proposera une solution super maline. En attendant, voici une formule qui génère un entier aléatoire entre 1 et n :

definir (
[
max = $_nombre_de_joueurs
] ;
mod (
	extrait ( alea ; 2 ; 2 )
	; max
) + 1
)

Simplement, comme il est difficile de NE PAS ressortir les numéros déjà utiliser, et qu'on n'a pas envie de gérer des situations «ah non, le 2 est déjà pris, je recommence mon tirage pour obtenir un aléatoire entre 1 et 4 mais qui ne soit pas 2»…

Et bien je propose non pas d'attribuer un aléatoire à un enregistrement fixé, mais au contraire de nous déplacer aléatoirement entre les enregistrements, pour leur attribuer successivement le 1, puis le 2, etc.

Boucle
	Afficher enregistrement [ Par valeur calculée ; Formule : la formule indiquée plus haut ]
		(ceci nous permet d'arriver sur l'un des n participant, au hasard)
	Définir variable [ $_i ; $_i + 1 ]
	Définir rubrique [ participe::ordre ; $_i ]
	Ignorer enregistrement
	Fin de boucle si [ Obtenir ( NombreEnregTrouvés ) = 0 ]
Fin de boucle

Evidemment, dans le Afficher enregistrement, il faudra tenir compte du fait que l'on a un enregistrement de moins à chaque passage dans la boucle.

max = $_nombre_de_joueurs
devient donc :
max = $_nombre_de_joueurs - $_i

 

Ca n'est pas très smart, mais ça devrait marcher…

Bonne soirée,

Jérémie

Link to comment
Share on other sites

Bha ! ... ;)

Vus qu'il faut trouvé un ordre et pas un chiffre précis.

vus que la commande "Alea" donne un chiffre avec une vaintaine de écimal entre 0 et 1 .

moi je vois ...

2 rubrique par joueur . Une avec le calcul "Alea"

  • Que 1 ont met a jour ( donnent un nombre aléa par joueur )
  • trier par ordre décroisent ( si le nombre le plus haut sera le 1er ... )
  • Et , en utiliser une 2em rubrique et la commande "remplacer" avec "remplacer par num. série " de 1 en 1 ( donnent l' ordre 1,2,3,4 pour chaque joueurs )

 

Link to comment
Share on other sites

Il y a 12 heures, Apophis000 a dit :
  • Que 1 ont met a jour ( donnent un nombre aléa par joueur )
  • trier par ordre décroisent ( si le nombre le plus haut sera le 1er ... )
  • Et , en utiliser une 2em rubrique et la commande "remplacer" avec "remplacer par num. série " de 1 en 1 ( donnent l' ordre 1,2,3,4 pour chaque joueurs )

Super idée !

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...