Bonjour tout le monde !
j'essaye de me programmer un petit jeu de lotto pour le plaisir
mais je vois pas pourquoi ca ne marche pas
pouvez vous m'aider s'il vous plait
écrivez moi à zesister@gmail.com
et je vous enverrez mon programme
merci
Bonjour tout le monde !
j'essaye de me programmer un petit jeu de lotto pour le plaisir
mais je vois pas pourquoi ca ne marche pas
pouvez vous m'aider s'il vous plait
écrivez moi à zesister@gmail.com
et je vous enverrez mon programme
merci
Si tu mets pas ton code sur le forum, personne va t'aider.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
c bon je suis la. qui peut m'aider s'il vous plait je vous envoit le programme par mail. s'il vous plait. je vais péter un cable!!
je vais rester connecté toute la nuit. j'attend de l'aide. pour vous dire la vérité, j'ai un projet a rendre pour demain. je me suis donner de la peine pour que ca marche, j'en ai vraiment bavé. je voulais prouver que je pouvais y arriver. mais ya toujours des beugs. mais la j'ai besoin d'aide. un coup de pouce. a tous les programmeurs confirmés je vous lance un défi, me débeuger mon code ! lol
On voit toujours pas de code. Pas de code, pas d'aide. Et on va pas t'envoyer un email pour regarder ton code.
(require (lib "world.ss" "htdp"))
(define SIZE 500.0)
(define ray_boule 10.0) ; rayon des balles
(define ray_vase (/ SIZE 2)) ; rayon du recipient
(define-struct BALLE (x y vx vy c r))
(define CERCLE (circle (/ SIZE 2) 'solid "blue"))
(define n_boules 2)
(define MONDE
(vector (make-BALLE (/ SIZE 2) (/ SIZE 3) 20.0 -20.0 "red" #f)
(make-BALLE (/ (/ SIZE 2) 2) (/ (/ SIZE 2) 2) 20.0 -20.0 "green" #f)))
(define-syntax for
(syntax-rules (from to by)
((for i from a to b e1 e2 ...) (let ((vb b))
(define (iter i)
(if (> i vb)
(void)
(begin e1 e2 ... (iter (+ i 1)))))
(iter a)))))
(define (numero boule monde) ;position d'une boule dans le tableau v
(define (iter k)
(if (equal? boule (vector-ref monde k)) k
(iter (+ k 1))))
(iter 0))
(define (distance boule1 boule2) ;calcul de la distance entre la ball1 et la ball2
(let* ((x1 (BALLE-x boule1))
(y1 (BALLE-y boule1))
(x2 (BALLE-x boule2))
(y2 (BALLE-y boule2)))
(sqrt (+ (sqr(- x2 x1))
(sqr(- y2 y1))))))
(define (shock? boule1 boule2) ; y a t-il un choc entre deux balles ?
(> (distance boule1 boule2) (* ray_boule 2)))
(define (shock-paroi? boule) ;y a t-il un choc entre la balle et la paroi?
(> (+ (sqr (- (BALLE-x boule) (/ SIZE 2))) (sqr (- (BALLE-y boule) (/ SIZE 2)))) (sqr (- (/ SIZE 2) ray_boule))))
(define (rep_ortho B)
(set-BALLE-x! B (- (BALLE-x B) (/ SIZE 2)))
(set-BALLE-y! B (- (/ SIZE 2) (BALLE-y B))))
(define (rep_scheme B)
(set-BALLE-x! B (+ (/ SIZE 2) (BALLE-x B)))
(set-BALLE-y! B (- (/ SIZE 2) (BALLE-y B))))
(define (shock Bi Bj) ;comportement des deux balles après un choc (je suis allé voir ce site: http://www.saphir-control.fr/article.../article2.html
(rep_ortho Bi)
(rep_ortho Bj)
(let* ((vxi (BALLE-vx balli))
(vyi (BALLE-vy balli))
(vxj (BALLE-vx ballj))
(vyj (BALLE-vy ballj))
(delta (/ (- yi yj) (- xj xi)))
(gamma (* (+ (- (/ vxi delta) vyi ) (- vyj (/ vxj delta)))
(+ 1 (sqr (/ 1 delta)))))
(betta (/ gamma delta)))
(set! vxi (- vxi betta))
(set! vxj (+ vxj betta))
(set! vyi (+ vyi gamma))
(set! vyj (- vyj gamma))
(rep_scheme B1)
(rep_scheme B2)
(set! Bi (make-BALLE (BALLE-x Bi)
(BALLE-y Bi)
vxi
vyi
(BALLE-c Bi)
#f))
(set! Bj (make-BALLE (BALLE-x Bj)
(BALLE-y Bj)
vxj
vyj
(BALLE-c Bj)
#f))))
(define (rebond B i monde) ;comportement d'une balle après un choc avec la paroi
(rep_ortho B)
(let* (
(x (BALLE-x B))
(y (BALLE-y B))
(vx (BALLE-vx B))
(vy (BALLE-vy B))
(alpha (atan (/ (abs y) (abs x))))
(betta (atan (/ (abs vy) (abs vx)))))
(cond ((and (< x 0) (> y 0)) (set! alpha (+ pi alpha)))
((and (< x 0) (< y 0)) (set! alpha (- pi alpha)))
((and (> x 0) (< y 0)) (set! alpha (- alpha))))
(cond ((and (< vx 0) (> vy 0)) (set! betta (+ pi betta)))
((and (< vx 0) (< vy 0)) (set! betta (- pi betta)))
((and (> vx 0) (< vy 0)) (set! betta (- betta))))
(let ((angle (- betta alpha)))
(a (+ vx x))
(b (+ vy y)))
(if (< angle 0) (begin (set! a (+ x (- (* (cos (- (* 2 angle) pi)) a)
(* (sin (- (* 2 angle) pi)) b))))
(set! b (+ y (+ (* (sin (- (* 2 angle) pi)) (+ x vx))
(* (cos (- (* 2 angle) pi)) b)))))
(begin (set! a (+ x (- (* (cos (+ pi (* 2 angle))) a)
(* (sin (+ pi (* 2 angle))) b))))
(set! b (+ y (+ (* (sin (+ pi (* 2 angle))) (+ x vx))
(* (cos (+ pi (* 2 angle))) b))))))
(set! vx (- a x))
(set! vy (- b y))
(let ((boule (make-BALLE a b vx vy (BALLE-c B) #f)))
(set-BALLE-vy! boule (- vy))
(rep_scheme boule)
(vector-set! monde i boule)))))
;calcul du tableau des distances entre la ball et les autres balles
(define (tab-dist boule monde)
(let ((d (make-vector n_boules)))
(for i from 0 to (- n_boules 1)
(vector-set! d i (distance boule (vector-ref monde i))))
d))
(define (boule-voisine boule monde) ;quelle est la balle la plus proche de notre balle ?
(let ((d (tab-dist boule monde)))
;calcul de la distance minimum :
(define (iter i min)
(if (> i (- n_boules 1))
(vector-ref monde (numero min d))
(let ((D (vector-ref d i)))
(cond ((= min 0) (iter (+ i 1) D))
((>= D min) (iter (+ i 1) D))
(else (iter (+ i 1) min))))))
(iter 1 (vector-ref d 0))))
(define (next monde)
(let ((m (make-vector n_boules)))
(for i from 0 to (- n_boules 1)
(let* ((B (vector-ref monde i))
(xs (+ (BALLE-x B) (BALLE-vx B)))
(ys (+ (BALLE-y B) (BALLE-vy B))))
(vector-set! m i (make-BALLE xs ys (BALLE-vx B) (BALLE-vy B) (BALLE-c B) (BALLE-r B)))))
m))
(define (shock-paroi ball monde kiki)
;changement de repère
(rep_ortho ball)
(let* ((x1 (BALLE-x ball))
(y1 (BALLE-y ball))
(alpha (abs (atan (abs(/ y1 x1)))))
(y (abs (* (sin alpha)
(- ray_vase ray_boule))))
(x (abs (* (cos alpha)
(- ray_vase ray_boule))))
(i (numero ball monde)))
(cond ((and (>= x1 0) (<= y1 0)) (set! y (- y)))
((and (<= x1 0) (>= y1 0)) (set! x (- x)))
((and (<= x1 0) (<= y1 0)) (begin (set! y (- y))
(set! x (- x)))))
(let ((B (make-BALLE x y (BALLE-vx ball) (BALLE-vy ball) (BALLE-c ball) #t)))
(rep_scheme B)
(vector-set! kiki i B))))
(define (monde-suivant m) ;état du monde à chaque top d'horloge
(let ((monde (next m)))
(let ((new_monde (make-vector n_boules)))
(for i from 0 to (- n_boules 1)
(let* ((B (vector-ref monde i)))
;(BP (boule-voisine B monde)))
(cond ((equal? (BALLE-r (vector-ref m i)) #t) (rebond (vector-ref m i) i new_monde))
;((shock? B BP) (shock B BP monde new_monde))
((shock-paroi? B) (shock-paroi B monde new_monde))
(else (vector-set! new_monde i B) ))))
new_monde)))
(define (affiche-balles monde)
(let ((BACKGROUND (place-image CERCLE (/ SIZE 2) (/ SIZE 2) (empty-scene SIZE SIZE))))
(for i from 0 to (- n_boules 1)
(let* ((B (vector-ref monde i))
(IMG (circle ray_boule 'solid (BALLE-c B))))
(set! BACKGROUND (place-image IMG
(inexact->exact (BALLE-x B))
(inexact->exact (BALLE-y B))
BACKGROUND))))
BACKGROUND))
(big-bang SIZE SIZE 0.5 MONDE)
(on-redraw affiche-balles)
(on-tick-event monde-suivant)
Et une fois que tu aurais mis en forme — on est pas là pour déchiffrer —, il faut que tu expliques ce qui est attendu (besoin); comment tu le résoud d'après toi (algorithme); ce qui ne fonctionne pas (l'erreur); d'où ça vient selon tes recherches.
Tu n'as quasiment aucun commentaire dans ton code, tu vas devoir donc expliquer un peu plus ici.
Je suppose que tu n'as pas l'algorithme bien sûr ? Comment veux tu programmer correctement sans avoir fait d'algorithme avant ?
En tout cas, si tu fais cet effort, tu auras de l'aide si je peux t'en fournir.
TOn dernier message date de plus d'une semaine... tu aurais du penser à revenir plus tôt si c'était urgent.
voila je suis la
excuse il est 2h30 du mat, et je sais plus trop cke je fais lol
Commences par mettre ton code en forme dans des balises CODE comme l'indiquent les merveilleux petits smiley que Vince et moi utilisons.
C'est indiqué dans les règles du forum. Si ton code n'est pas lisible, on ne va pas se battre pour le lire.
Ensuite donnes nous les renseignements demandés dans mon message. Si je ne sais pas ce que tu veux faire, je ne peux pas le deviner.
pour l'instant je veu faire rebondir la balle contre la paroie avec la fonction rebond.
qu'est ce que tu entend par algoritme ?
bon tu sais quoi
laisse tomber
excuse de t'avoir déranger
je pense que je per mon tps autant que je te fais perdre ton tps
t'as bientot ton émission a la télé
merci quand meme
j'avais qu'a pas my prendre si tard
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager