Aller au contenu

ALLER à Toire


CDL

Messages recommandés

Non, mais je te renvoie au fichier de sapin automatique de Noêl dernier, tu te souviens ?

 

Il y a un (fix....(numéro de série de je ne sais plus quoi))

 

Pas bête mais à adapter.

 

Sinon il y a aussi le getpoint avec des limites entre 0,0 et 100,100. Par exemple.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Euh, en fait, il faut batir de l'aléatoire.

 

Donc si tu fais une fonctionqui renvoie un point, puis un autre, tu les manipules de façon à tirer un réel depuis une saisie de point qui, elle, est aléatoire.

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Première remarque: il n'existe pas de hasard en informatique, donc pas de nombre aléatoire.

Mais, il existe des pseudo aléatoire, par exemple if suffit de se baser sur le nombre de millisecondes à l'instant T, bien malin qui pourrait prédire ce nombre lorsqu'on lui envoie le "top"!

Voir par exemple la fonction suivante:

 

(defun randnum (/ modulus multiplier increment random)

 

(if (not seed)

 

(setq seed (getvar "DATE"))

 

)

 

(setq modulus 65536

 

multiplier 25173

 

increment 13849

 

seed (rem (+ (* multiplier seed) increment) modulus)

 

random (/ seed modulus)

 

)

 

)

 

sur cette page.

Lien vers le commentaire
Partager sur d’autres sites

Ca n'est pas la première fois que je vois des pages d'Afralisp.

 

Très sympa.

 

Dans le lisp du sapin, je crois me rappeler que l'auteur utilisait cette variable. C'est ca ?

 

Par la saisie de point, j'avais fait un code pas trop mauvais qui me sortait un chiffre de 1 à 100. Mais bon.....pas trop mauvais pour moi !!! ;)

 

Cependant, en BASIC, il y a une fonction RANDOM ?! Me trompe-je ?

Dans ma calculatrice Casio, je crois aussi...;)

 

Mais, me diras-tu, Patrick, ces fonctions viennent sans doute aussi de l'horloge, comme DATE.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

c'est la fonction RANDOM que je cherchait en LISP

le programme que j'avais ecrit en BASIC

sortait 6 nombres

le 2eme pas= au premier le 3eme pas= au 2 autres etc...

et si = 0 ou > a 49 essaye encore une fois

donc combinaison de 6 chiffres aléatoires

un LOTO en fait

maintenant c'est 5 de 1 à 50 (modif possible en entré)

 

pour dessiner les boulles (pour le sapin) avec autoCAD facile.

 

c'est pour ça que getpoint c'est plutot roulette de 1 à 36 (chandelles pour le sapin)

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

;Un programme a tester (merci d'envoyer vos remarques)

; merci a Patrick pour sa participation

 

; RECHERCHE D'UN NOMBRE ALEATOIRE ENTRE 0 ET 100

 

(defun tirage (/ modulus multiplier increment random)

(if (not seed)

(setq seed (getvar "DATE"))

)

(setq nombre (setq modulus 65536

multiplier 25173

increment 13849

seed (rem (+ (* multiplier seed) increment) modulus)

random (/ seed modulus)

)

)

(setq numero_sorti (fix (* 100 nombre)))

)

 

; PROGRAMME UNE LISTE DE 5 NOMBRES PARMI 50 NOMBRES

 

 

(defun c:jeu ()

 

; CONSTANTES ET VARIABLES

 

(setq nombre_de_numero 5)

(setq total_de_numero 50)

 

(setq numero_sorti 0)

(setq rien "resultat")

 

(setq compteur1 0)

(setq compteur2 0)

(setq numero_01 0)

(setq numero "pas bon")

(setq list1 (list))

(setq list2 (list))

 

; TRAITEMENTS

 

(While (< compteur1 nombre_de_numero)

 

 

(tirage)

(setq numero "ok")

 

(if (= 0 numero_sorti) (setq numero "pas_bon")

)

(if (< total_de_numero numero_sorti) (setq numero "pas_bon")

)

 

; VERIFICATION NUMERO DEJA SORTI

 

(setq compteur2 (length list1))

 

(while (< compteur2 nbr_numero)

(if (= numero_sorti (nth compteur2 list1))

(setq numero "deja_sorti")

)

(setq compteur2 (+ 1 compteur2))

)

 

; AJOUt DANS LA LISTE

 

(if (= numero "ok")

(progn

(setq numero_01 numero_sorti)

(setq compteur1 (+ 1 compteur1))

 

(if (>= 5 compteur1) (setq list2(cons numero_01 list1))

)

(setq list1 list2)

 

)

)

 

)

; FIN

)

 

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité