FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Demande pour Jack concernant PanExpress
par Jack Aujourd'hui à 7:48

» Calculatrice
par papydall Hier à 22:54

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Planétarium virtuel.
par Pedro Alvarez Mer 19 Sep 2018 - 9:28

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Désamorcer la bombe

Aller en bas 
AuteurMessage
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Désamorcer la bombe   Dim 26 Mar 2017 - 0:49

Bonjour à tous !

Pouvez-vous désamorcer cette bombe ?

Bonne chance !

Code:
' ------------------------------------------------------------------------------
'  Mission : désamorcer la bombe
'  Marc37 - Mars 2017 - Panoramic v0.9.27i9
'  http://panoramic-language.pagesperso-orange.fr/French/index.html
' ------------------------------------------------------------------------------
BORDER_HIDE 0
WIDTH 0,800
HEIGHT 0,600
DISPLAY
LEFT 0,(SCREEN_X-WIDTH(0))/2
TOP 0,(SCREEN_Y-HEIGHT(0))/2
Mask()
Init()
ON_CLICK 2,Action
WHILE a=0
    GOSUB Chrono
END_WHILE
END
' ------------------------------------------------------------------------------
SUB Mask()
    DIM TP(3): ' retour parametres SUB
    DIM pg : ' barre de progression chargement
    DIM t1%,t2%
    t1% = NUMBER_TICKS
    LABEL Progres_barre
    PICTURE 1 : ' écran accueil
    FULL_SPACE 1
    COLOR 1,20,20,20
    DISPLAY
    PICTURE 2 : ' écran jeu
    FULL_SPACE 2
    COLOR 2,240,250,170
    DISPLAY
    PICTURE 3 : ' écran fin de jeu
    FULL_SPACE 3
    COLOR 3,20,20,20
    DISPLAY
    HIDE 2
    HIDE 3
    Mask_1()
    Mask_2()
    Mask_3()
    t2%=NUMBER_TICKS
    WHILE t2% < t1%+10000
        t2%=NUMBER_TICKS
    END_WHILE
END_SUB
' ------------------------------------------------------------------------------
SUB Mask_1() : ' Construction écran d'accueil
    2D_TARGET_IS 1
    PRINT_TARGET_IS 1
    2D_FILL_COLOR 20,20,20
    FONT_COLOR 1,250,250,0
    FONT_NAME 1,"Arial"
    FONT_SIZE 1, 18
    PRINT_LOCATE 30,40
    PRINT "VOTRE MISSION : Désamorcer la bombe."
    PRINT_LOCATE 30,100
    PRINT "Ne cherchez pas d'aide : il n'y en a pas !"
    PRINT_LOCATE 30,140
    PRINT "Ne cherchez pas d'indice : il n'y en a pas !"
    PRINT_LOCATE 30,180
    PRINT "Ne cherchez pas de notice : il n'y en a pas !"
    PRINT_LOCATE 30,220
    DISPLAY
    PRINT "Ne cherchez pas à gagner du temps : c'est peine perdue !"
    PRINT_LOCATE 30,260
    PRINT "Vos seuls outils : vos neurones et votre souris !"
    PRINT_LOCATE 30,320
    PRINT "Bonne chance !"
    PRINT_LOCATE 30,380
    PRINT "Ce message s'autodétruira dans quelques secondes…"
    PRINT_LOCATE 90,480
    FONT_SIZE 1, 14
    PRINT "Chargement en cours..."
    DISPLAY
    2D_RECTANGLE 90,510,710,530
    2D_FLOOD 100,515,250,250,250
    DISPLAY
    GOSUB Progres_barre
END_SUB
' ------------------------------------------------------------------------------
Progres_barre:
    2D_TARGET_IS 1
    pg=pg+23
    2D_PEN_COLOR 100,100,250
    2D_PEN_WIDTH 14
    2D_LINE 98,520,92+pg,520
    DISPLAY
    2D_TARGET_IS 2
RETURN
' ------------------------------------------------------------------------------
SUB Mask_2()
    Cablage()
    Bombe()
    Balance()
    Fleches()
    Recipients()
END_SUB
' ------------------------------------------------------------------------------
SUB Cablage()
    2D_PEN_COLOR 0,0,250
    Fil(500,340,240,2,20,50,140,205,0.025)
    GOSUB Progres_barre
    2D_PEN_COLOR 50,200,30
    Fil(495,345,240,2,20,50,140,205,0.025)
    GOSUB Progres_barre
    2D_PEN_COLOR 250,0,0
    Fil(505,315,238,2,20,50,140,205,0.025)
    GOSUB Progres_barre
    2D_PEN_COLOR 0,0,10
    Fil(500,55,40,2,10,30,100,200,0.1)
    GOSUB Progres_barre
    2D_PEN_COLOR 255,20,20
    Fil(498,57,40,2,10,20,100,210,0.1)
    GOSUB Progres_barre
    2D_PEN_COLOR 255,0,0
    Fil(491,57,40,2,10,20,100,210,0.1)
    GOSUB Progres_barre
END_SUB
' ------------------------------------------------------------------------------
SUB Fil(x0,y0,r1,b1,r2,b2,t1,t2,p)
    DIM_LOCAL t,x1,y1,x2,y2
    DEGREES
    FOR t = t1 TO t2 STEP p
        x1 = x0 + R1*COS(b1*t)
        y1 = y0 + R1*SIN(b1*t)
        x2 = x1 + R2*COS(b2*t)
        y2 = y1 + R2*SIN(b2*t)
        2D_POINT x2,y2
        DISPLAY
    NEXT t
END_SUB
' ------------------------------------------------------------------------------
SUB Bombe()
    DIM_LOCAL i%
    FOR i% =0 TO 12
        2D_PEN_COLOR 245-(i%*10),230-(i%*10),211-(i%*10)
        2D_LINE 275,50+i%,520,50+i%
        DISPLAY
    NEXT i%
    GOSUB Progres_barre
    FOR i% =12 TO 47
        2D_PEN_COLOR 245-(i%*3),230-(i%*3),211-(i%*3)
        2D_LINE 263,50+i%,530,50+i%
        DISPLAY
    NEXT i%
    GOSUB Progres_barre
    FOR i% =47 TO 82
        2D_PEN_COLOR 245-(i%*2),230-(i%*2),211-(i%*2)
        2D_LINE 265,50+i%,532,50+i%
        DISPLAY
    NEXT i%
    GOSUB Progres_barre
    FOR i% =82 TO 100
        2D_PEN_COLOR 245-(i%*2),230-(i%*2),211-(i%*2)
        2D_LINE 277,50+i%,517,50+i%
        DISPLAY
    NEXT i%
    GOSUB Progres_barre
    2D_PEN_COLOR 20,20,20
    2D_FILL_COLOR 20,20,20
    FOR i% = 1 TO 12
    Tracer_Arc(300+i%,49,293+i%,100,300+i%,150)
    Tracer_Arc(500-i%,49,507-i%,100,500-i%,150)
    NEXT i%
    GOSUB Progres_barre
    2D_PEN_COLOR 80,80,80
    2D_FILL_COLOR 185,175,165
    2D_PEN_WIDTH 17
    2D_RECTANGLE 360,50,500,110
    GOSUB Progres_barre
END_SUB
' ------------------------------------------------------------------------------
SUB Balance()
    DIM_LOCAL i%,j%
    2D_PEN_WIDTH 1
    J%=200
    FOR i% = 1 TO 20
        2D_PEN_COLOR 30+j%,30+j%,30+j%
        2D_LINE 130,475+i%,670,475+i%
        j%=j%-10
        DISPLAY
    NEXT i%
    2D_PEN_COLOR 20,20,20
    FOR i% = 1 TO 5
        2D_LINE 150,495+i%,650,495+i%
        DISPLAY
    NEXT i%
    GOSUB Progres_barre
    2D_POLY_FROM 120,599
    2D_POLY_TO 140,500
    2D_POLY_TO 660,500
    2D_POLY_TO 680,599
    2D_POLY_TO 640,599
    2D_POLY_TO 630,580
    2D_POLY_TO 170,580
    2D_POLY_TO 160,599
    2D_POLY_TO 120,599
    DISPLAY
    2D_FLOOD 400,540,240,235,235
    FOR i% = 1 TO 40 : ' pour effacer les fils trop longs
        2D_PEN_COLOR 240,235,235
        2D_LINE 619+i%,501,633+i%,570
    NEXT i%
    GOSUB Progres_barre
    PRINT_TARGET_IS 2
    FONT_NAME 2,"Arial"
    FONT_BOLD 2
    FONT_SIZE 2,7
    PRINT_LOCATE 150,505
    PRINT "SWC-12    Maxi 12kg   Mini 1g"
    2D_CIRCLE 180,540,15
    DISPLAY
    2D_CIRCLE 240,540,15
    DISPLAY
    2D_CIRCLE 300,540,15
    DISPLAY
    FONT_SIZE 2,9
    PRINT_LOCATE 158,560
    PRINT "POWER        Tare             OFF"
    FONT_SIZE 2,18
    PRINT_LOCATE 365,525
    PRINT "B"
    2D_PEN_COLOR 20,10,10
    2D_PEN_WIDTH 3
    2D_LINE 357,531,357,546
    2D_LINE 357,531,367,546
    2D_LINE 357,527,379,527
    2D_LINE 357,551,379,551
    DISPLAY
    GOSUB Progres_barre
    2D_PEN_COLOR 20,110,180
    2D_RECTANGLE 420,515,600,565
    2D_FLOOD 500,550,185,175,165
    DISPLAY
    2D_PEN_WIDTH 1
    2D_CIRCLE 180,540,13
    2D_CIRCLE 240,540,13
    2D_CIRCLE 300,540,13
    DISPLAY
    GOSUB Progres_barre
    2D_FLOOD 180,540,14,12,12
    DISPLAY
    2D_FLOOD 240,540,16,12,12
    DISPLAY
    2D_FLOOD 300,540,18,12,12
END_SUB
' ------------------------------------------------------------------------------
SUB Fleches()
    2D_PEN_COLOR 50,50,50
    Fleche_remplir_A()
    GOSUB Progres_barre
    Fleche_remplir_B()
    GOSUB Progres_barre
    Fleche_vider_A()
    GOSUB Progres_barre
    Fleche_vider_B()
    GOSUB Progres_barre
    Fleche_transvaser_A()
    GOSUB Progres_barre
    Fleche_transvaser_B()
    GOSUB Progres_barre
END_SUB
' ------------------------------------------------------------------------------
SUB Fleche_remplir_A()
    Tracer_Arc(160,180, 240, 240, 280, 320)
    Tracer_Arc(145,210, 240, 260, 280, 320)
    2D_LINE 160,180,160,198
    2D_LINE 160,198,145,210
    2D_FLOOD 160,208,2,200,250
    DISPLAY
END_SUB
' ------------------------------------------------------------------------------
SUB Fleche_remplir_B()
    Tracer_Arc(640,180, 560, 240, 520, 320)
    Tracer_Arc(655,210, 560, 260, 520, 320)
    2D_LINE 640,180,640,198
    2D_LINE 640,198,655,210
    2D_FLOOD 640,208,4,200,250
    DISPLAY
END_SUB
' ------------------------------------------------------------------------------
SUB Fleche_vider_A()
    Tracer_Arc(240,340, 160, 360, 90, 440)
    Tracer_Arc(240,370, 160, 380, 90, 440)
    2D_LINE 240,340,235,355
    2D_LINE 235,355,240,370
    2D_FLOOD 200,360,6,200,250
    DISPLAY
END_SUB
' ------------------------------------------------------------------------------
SUB Fleche_vider_B()
    Tracer_Arc(560,340, 640, 360, 710, 440)
    Tracer_Arc(560,370, 640, 380, 710, 440)
    2D_LINE 560,340,565,355
    2D_LINE 565,355,560,370
    2D_FLOOD 600,360,8,200,250
    DISPLAY
END_SUB
' ------------------------------------------------------------------------------
SUB Fleche_transvaser_A()
    Tracer_Arc(320,310, 380, 290, 480, 340)
    Tracer_Arc(330,335, 380, 310, 480, 340)
    2D_LINE 320,310,330,320
    2D_LINE 330,320,330,335
    2D_FLOOD 360,310,10,200,250
    DISPLAY
END_SUB
' ------------------------------------------------------------------------------
SUB Fleche_transvaser_B()
    Tracer_Arc(480,250, 420, 230, 320, 280)
    Tracer_Arc(470,275, 420, 250, 320, 280)
    2D_LINE 480,250,470,260
    2D_LINE 470,260,470,275
    2D_FLOOD 440,250,12,200,250
    DISPLAY
END_SUB
' ------------------------------------------------------------------------------
SUB Eau()
    PICTURE 14
    WIDTH 14,120
    HEIGHT 14,200
    2D_TARGET_IS 14
    2D_PEN_COLOR 240,250,210
    2D_LINE 0,100,120,100
    2D_FLOOD 50,50,240,250,210
    2D_FLOOD 50,150,109,153,224
    IMAGE 15
    IMAGE 16
    2D_IMAGE_COPY 15,0,0,120,200
    2D_IMAGE_COPY 16,0,40,120,160
    GOSUB Progres_barre
    HIDE 14
END_SUB
' ------------------------------------------------------------------------------
SUB Seau_1()
    PICTURE 10
    WIDTH 10, 120
    HEIGHT 10,100
    COLOR 10,240,250,170
    2D_TARGET_IS 10
    2D_PEN_COLOR 120,120,180
    2D_LINE 10,0,20,100
    2D_LINE 110,0,100,100
    2D_LINE 20,99,100,99
    2D_FLOOD 50,50,0,0,0
    IMAGE 11
    2D_IMAGE_COPY 11,0,0,120,100
    HIDE 10
    SCENE2D 4
    HIDE 4
    WIDTH 4,120
    HEIGHT 4,100
    TOP 4,375
    LEFT 4,220
    SPRITE_TARGET_IS 4
    SPRITE 1
    SPRITE_IMAGE_LOAD 1,15
    SPRITE 2
    SPRITE_IMAGE_LOAD 2,11
END_SUB
' ------------------------------------------------------------------------------
SUB Seau_2()
    PICTURE 12
    WIDTH 12, 120
    HEIGHT 12,60
    COLOR 12,240,250,170
    2D_TARGET_IS 12
    2D_PEN_COLOR 120,120,180
    2D_LINE 13,0,20,60
    2D_LINE 107,0,100,60
    2D_LINE 20,59,100,59
    2D_FLOOD 50,50,0,0,0
    IMAGE 13
    2D_IMAGE_COPY 13,0,0,120,60
    HIDE 12
    SCENE2D 5
    HIDE 5
    WIDTH 5,120
    HEIGHT 5,60
    TOP 5,415
    LEFT 5,460
    SPRITE_TARGET_IS 5
    SPRITE 3
    SPRITE_IMAGE_LOAD 3,16
    SPRITE 4
    SPRITE_IMAGE_LOAD 4,13
END_SUB
' ------------------------------------------------------------------------------
SUB Mask_3() : ' Construction écran de fin
    2D_TARGET_IS 3
    PRINT_TARGET_IS 3
    FONT_SIZE 3,100
    FONT_BOLD 3
    FONT_COLOR 3,250,250,20
    2D_FILL_COLOR 20,20,20
    PRINT_LOCATE 120,240
    PRINT "B"
    PRINT_LOCATE 220,180
    PRINT "O"
    PRINT_LOCATE 330,190
    PRINT "O"
    PRINT_LOCATE 440,225
    PRINT "M"
    FONT_SIZE 3,150
    PRINT_LOCATE 580,200
    PRINT "!"
    DISPLAY
    2D_PEN_COLOR 250,250,20
    2D_PEN_WIDTH 5
    2D_POLY_FROM 220,40
    2D_POLY_TO 320,130
    2D_POLY_TO 400,40
    DISPLAY
    2D_POLY_TO 450,140
    2D_POLY_TO 530,80
    2D_POLY_TO 530,130
    DISPLAY
    2D_POLY_TO 680,100
    2D_POLY_TO 640,200
    2D_POLY_TO 740,180
    DISPLAY
    2D_POLY_TO 660,280
    2D_POLY_TO 760,300
    2D_POLY_TO 650,320
    DISPLAY
    2D_POLY_TO 720,420
    2D_POLY_TO 640,400
    2D_POLY_TO 720,580
    DISPLAY
    2D_POLY_TO 560,480
    2D_POLY_TO 530,590
    2D_POLY_TO 480,460
    DISPLAY
    2D_POLY_TO 400,560
    2D_POLY_TO 320,500
    2D_POLY_TO 200,598
    DISPLAY
    2D_POLY_TO 240,500
    2D_POLY_TO 140,540
    2D_POLY_TO 160,500
    DISPLAY
    2D_POLY_TO 40,560
    2D_POLY_TO 120,420
    2D_POLY_TO 5,360
    2D_POLY_TO 130,280
    DISPLAY
    2D_POLY_TO 40,200
    2D_POLY_TO 120,200
    2D_POLY_TO 50,90
    DISPLAY
    2D_POLY_TO 220,150
    2D_POLY_TO 220,40
END_SUB
' ------------------------------------------------------------------------------
Action:
    OFF_CLICK 2
    x%=MOUSE_X_POSITION(2)
    y%=MOUSE_Y_POSITION(2)
    tache% = COLOR_PIXEL_RED(2,x%,y%)
    SELECT tache%
        CASE 2 :' remplir seau 1
            na1=1000
        CASE 4 :' remplir seau 2
            na2=600
        CASE 6 :' vider seau 1
            na1=0
        CASE 8 :' vider seau 2
            na2=0
        CASE 10 :' transvaser seau 1
            IF nd2<601
                IF nd2+nd1>600
                   na2=600
                   na1=nd1-(600-nd2)
                ELSE
                   na2=nd1+nd2
                   na1=0
                END_IF
            END_IF
        CASE 12 :' transvaser seau 2
            IF nd1<1001
                IF nd2+nd1>1000
                   na1=1000
                   na2=nd2-(1000-nd1)
                ELSE
                   na1=nd1+nd2
                   na2=0
                END_IF
            END_IF
        CASE 14 :' balance on
            IF Balance_on%=0
                Balance_on%=1
                Poids=0
            END_IF
        CASE 16 :' tare
            Poids=0
        CASE 18 :' balance off
            Balance_on%=0
    END_SELECT
    Ajuster_niveau()
    ON_CLICK 2,Action
RETURN
' -----------------------------------------------------------------------------
SUB Init()
    DIM nd1,nd2,na1,na2,Balance_on%,poids,tache%,x%,y%,t1,t2,t3,a,m,d,s$
    LABEL Action,Chrono
    MIDI_ON
    MIDI_INSTRUMENT 47
    MIDI_VOLUME 127
    nd1=600:t3=151:na1=600
    nd2=84:na2=84
    HIDE 1
    SHOW 2
    SHOW 4
    SHOW 5
    SPRITE_SHOW_ALL
    PRINT_TARGET_IS 2
    2D_TARGET_IS 2
    FONT_NAME 2,"Arial"
    FONT_SIZE 2,22
    2D_FILL_COLOR 185,175,165
    FONT_COLOR 2,20,10,10
    IF t3>151 THEN t3=151
    Ajuster_niveau()
    t1=INT((NUMBER_TICKS/1000)+0.5)
    GOSUB chrono
END_SUB
' ------------------------------------------------------------------------------
SUB Ajuster_niveau()
    DIM_LOCAL i%
    FOR i% = 0 TO 1000
        Affiche_poids()
        GOSUB Chrono
        SPRITE_POSITION 1,0,(-1*nd1)/10
        SPRITE_POSITION 3,0,(-1*nd2)/10
        IF na1=nd1 AND na2=nd2 THEN EXIT_FOR
        IF na1<nd1 THEN nd1=nd1-1:Poids=Poids-1
        IF na1>nd1 THEN nd1=nd1+1:Poids=Poids+1
        IF na2<nd2 THEN nd2=nd2-1:Poids=Poids-1
        IF na2>nd2 THEN nd2=nd2+1:Poids=Poids+1
    NEXT i%
    IF poids = 800 and Balance_on%=1
        a=1
        PRINT_LOCATE 400,65
        PRINT "- -:- -  "
        MIDI_VOLUME 127
        MIDI_INSTRUMENT 71
        FOR i% = 60 TO 44 STEP -2
            MIDI_PLAY i%, 10
            MIDI_VOLUME i%+60
            NEXT i%
            MIDI_PLAY 40,8
        FOR i% = 800 to 1 STEP -1
        WIDTH 0,i%
            HEIGHT 0,i%-200
            DISPLAY
            LEFT 0,(SCREEN_X-WIDTH(0))/2
            TOP 0,(SCREEN_Y-HEIGHT(0))/2
        NEXT i%
        TERMINATE
    END_IF
END_SUB
' ------------------------------------------------------------------------------
SUB Affiche_poids()
    PRINT_LOCATE 450,523
    IF Balance_on%=1
        IF Poids < 0
            PRINT LEFT$(STR$(Poids*0.005+0.0005),6)+" kg  "
        ELSE
            PRINT LEFT$(STR$(Poids*0.005+0.0005),5)+" kg  "
        END_IF
    ELSE
        PRINT "                 "
    END_IF
END_SUB
' ------------------------------------------------------------------------------
Chrono:
    IF SCANCODE=72 THEN a=1:TERMINATE
    t2=INT((NUMBER_TICKS/1000)+0.5)
    IF t2>t1
        m=INT(t3/60)
        d=MOD(t3,60)
        IF d > 9
            s$=STR$(d)
        ELSE
            s$="0"+STR$(d)
        END_IF
    PRINT_LOCATE 400,65
    PRINT STR$(m)+":"+s$
    t3=t3-1
    IF t3=-2
        a=1
        OFF_CLICK 2
        HIDE 2
        HIDE 4
        HIDE 5
        SHOW 3
        MIDI_PLAY 21,0
        TERMINATE
    END_IF
    t1=INT((NUMBER_TICKS/1000)+0.5)
    END_IF
RETURN
' ------------------------------------------------------------------------------
SUB Recipients()
    SPRITE_CREATE_HIDE
    Eau()
    GOSUB Progres_barre
    Seau_1()
    GOSUB Progres_barre
    Seau_2()
END_SUB
' ------------------------------------------------------------------------------
SUB Dte_2Pts(x1,y1,x2,y2)
    DIM_LOCAL a,b,c
    IF x1=x2
        a=-1
        b=0
        c=x1
    ELSE
        b=-1
        a=(y2-y1)/(x2-x1)
        c=y1-a*x1
    END_IF
    tp(0)=a
    tp(1)=b
    tp(2)=c
END_SUB
' -----------------------------------------------------------------------------
SUB Dte_Med(x1,y1,x2,y2)
    DIM_LOCAL Mx,My,a,b,c
    milieu(x1,y1,x2,y2)
    Mx=TP(0)
    My=TP(1)
    Dte_2Pts(x1,y1,x2,y2)
    IF TP(0)=0
        a=-1
        b=0
        c=Mx
    END_IF
    IF TP(1)=0
        a=0
        b=-1
        c=My
    END_IF
    IF  TP(0)<>0 AND TP(1)<>0
        a=-1*1/TP(0)
        b=-1
        c=My-a*Mx
    END_IF
    tp(0)=a
    tp(1)=b
    tp(2)=c
END_SUB
' -----------------------------------------------------------------------------
SUB milieu(x1,y1,x2,y2)
    Tp(0)=(x1+x2)/2
    Tp(1)=(y1+y2)/2
END_SUB
' -----------------------------------------------------------------------------
SUB distance(x1,y1,x2,y2)
    Tp(0) = SQR(POWER(x1-x2,2)+POWER(y1-y2,2))
END_SUB
' -----------------------------------------------------------------------------
SUB intersection(a1,b1,c1,a2,b2,c2)
    IF b1*a2 = a1*b2
        print "Impossible, les droites sont parallèles."
    ELSE
        TP(0)=(c2*b1-c1*b2)/(a1*b2-a2*b1)
        TP(1)=(c2*a1-c1*a2)/(b1*a2-b2*a1)
    END_IF
END_SUB
' -----------------------------------------------------------------------------
SUB centre(x1,y1,x2,y2,x3,y3)
    DIM_LOCAL a1,b1,c1,a2,b2,c2
    Dte_Med(x1,y1,x2,y2)
    a1 = TP(0)
    b1 = TP(1)
    c1 = TP(2)
    Dte_Med(x2,y2,x3,y3)
    a2 = TP(0)
    b2 = TP(1)
    c2 = TP(2)
    intersection(a1,b1,c1,a2,b2,c2)
END_SUB
' -----------------------------------------------------------------------------
SUB Cart_to_Pol(Ax,Ay,Mx,My)
    DIM_LOCAL r, a
    distance(Ax,Ay,Mx,My)
    r=TP(0)
    a=(Ax-Mx)/r
    IF My>=Ay
        TP(0)=2*Pi-ACOS(a)
    ELSE
        TP(0)=ACOS(a)
    END_IF
    TP(1)=r
END_SUB
' -----------------------------------------------------------------------------
SUB Pol_to_Cart(theta,r,Mx,My)
    TP(0)=cos(theta)*r+Mx
    TP(1)=sin(theta)*r+My
END_SUB
' -----------------------------------------------------------------------------
SUB deuxpi(num)
    IF num >=2*Pi
        WHILE num>= 2* Pi
            num=num-2*Pi
        END_WHILE
    END_IF
    IF num<0
        WHILE num<0
            num=num+2*Pi
        END_WHILE
    END_IF
    TP(0)=num
END_SUB
' -----------------------------------------------------------------------------
SUB Tracer_Arc(Ax,Ay,Bx,By,Cx,Cy)
    RADIANS
    DIM_LOCAL Mx,My,ThA,ThB,ThC,sens,a,b,l,r,nbpts,i,Px,Py,ThP,Delta
    sens = 1
    centre(Ax,Ay,Bx,By,Cx,Cy)
    Mx = TP(0)
    My = TP(1)
    distance(Mx,My,Ax,Ay)
    r = TP(0)
    Cart_to_Pol(Ax,Ay,Mx,My)
    ThA = TP(0)
    Cart_to_Pol(Bx,By,Mx,My)
    ThB = TP(0)
    Cart_to_Pol(Cx,Cy,Mx,My)
    ThC = TP(0)
    IF (ThB>ThA AND ThB>ThC) OR (ThB<ThA AND ThB<ThC)
        IF ThA > ThC
            l = ABS(2*Pi-ThA+ThC)
        ELSE
            l = ABS(2*Pi-ThC+ThA)
            sens = -1
        END_IF
    ELSE
        IF ThA > ThC
            l = ABS(ThA-ThC)
            sens = -1
        ELSE
            l = ABS(ThA-ThC)
        END_IF
    END_IF
    l= l * r
    nbpts = INT(l)
    Delta = sens/r
    FOR i = 0 TO nbpts
        ThP = ThA + Delta*i
        Pol_to_Cart(ThP,r,Mx,My)
        Px = TP(0)
        Py = TP(1)
        2D_POINT Px,Py
        DISPLAY
    NEXT i
    2D_POINT Cx,Cy
END_SUB


Dernière édition par Marc37 le Sam 15 Avr 2017 - 12:55, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5643
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Désamorcer la bombe   Dim 26 Mar 2017 - 9:53

Bravo Marc !

Je vais recommencer à chercher la solution, quand j'aurai reconstruit ma maison  Razz

lol!

J'ai voulu faire le malin en cliquant sur le bouton stop de l'éditeur Panoramic, hé ben ça a pété quand même.  affraid



Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 26 Mar 2017 - 14:14

Bon ! j' ai plus d ' appart et en plus j' ai pas trouvé la solution...
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1761
Date d'inscription : 13/09/2009

MessageSujet: +++   Dim 26 Mar 2017 - 14:18

Terroriste, va !
Jolie petit programme !
Et il y a réellement un
moyen de la désamorcer ?
Laughing alien scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Désamorcer la bombe   Dim 26 Mar 2017 - 15:24

Jjn4 a écrit:
Et il y a réellement un
moyen de la désamorcer ?

Oui !
La bombe est reliée électriquement à la balance...
Il faut donc trouver le bon poids à mettre dessus...

Edit : mettez 4,000 kg sur la balance et vous serez sain et sauf !

Je retourne au jeu de l'oie, c'est moins risqué ! Merci JJN4 pour ton programme !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5643
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Désamorcer la bombe   Dim 26 Mar 2017 - 17:59

Quand on connait le poids recherché, ça devient plus simple en cherchant un peu. Very Happy

Sinon pour désamorcer une bombe il y a un moyen infaillible:
Spoiler:
 

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
bignono

avatar

Nombre de messages : 1127
Age : 61
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: Désamorcer la bombe   Dim 26 Mar 2017 - 18:15

Bonjour à tous, Smile
excellent jeu Marc 37!
J'ai la solution! Mais je ne la donne pas encore, il faut chercher un peu encore les amis!
Effectivement, il faut 4kg sur la balance!
A plus! Wink Wink Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5991
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Désamorcer la bombe   Lun 27 Mar 2017 - 10:01

Bonjour tout le monde.
Bonjour Bignono.

Bignono a écrit:
J'ai la solution! Mais je ne la donne pas encore,...

Soit ! Mais cela ne t'empêche pas d'être plus actif sur le forum!
De toutes les façons, je suis heureux de ton retour. Laughing

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
bignono

avatar

Nombre de messages : 1127
Age : 61
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: Désamorcer la bombe   Lun 27 Mar 2017 - 11:13

Bonjour tout le monde! Smile
Bonjour Papydall! Very Happy
Je suis moins actif sur le forum, parce que j'ai des graves soucis personnels, et aussi de santé. Crying or Very sad
Je le consulte de temps en temps quand j'en ai la possibilité. La dernière chose intéressante que j'ai adoré, c'est la dll de Klaus avec la fonction "TakeVideoScreenSnapshot" qui permet de faire une vidéo de ce qui se passe à l'écran. Merci beaucoup Klaus! Very Happy
Pour la solution au programme de Marc37 (j'espère qu'il ne m'en voudra pas trop si je la donne, mais je suis sur qu'il y en a qui galère) la voici:
commencez par vider les 2 seaux
allumez la balance avec le bouton power
remplissez le seau de droite puis transvasez-le dans le seau de gauche
remplissez à nouveau le seau de droite et transvasez-le aussi dans le seau à gauche
videz maintenant le seau de gauche puis transvasez le restant du seau de droite dans le seau à gauche
Vous n'avez plus qu'à remplir à nouveau le seau de droite!

Voilà, bonne journée à tous! Wink Wink Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5643
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Désamorcer la bombe   Lun 27 Mar 2017 - 13:31

J'avais aussi la solution, depuis que je savais qu'il fallait aligner 4kg sur la balance....

@Bignono,
Content de te relire. Je te souhaite une meilleure santé et moins de problème.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Désamorcer la bombe   Lun 27 Mar 2017 - 21:25

Bonjour à tous !

Merci à tous pour vos retours. Je suis désolé pour tous les dégâts occasionnés. Embarassed

@Bignono : Pas de problème, tu as trouvé la solution, bravo !
J’en profite pour te souhaiter tous mes vœux de prompt rétablissement.

Cette idée de jeu est tirée du film "Die Hard 3, une journée en enfer".

Avant de vous exposer la solution complète, je souhaite dire merci à Papydall pour le câblage électrique : Je me suis inspiré d’une de ses SUBs pour réaliser les torsades. Sans lui, les fils électriques auraient été rectilignes ! Merci Papydall !

Pour désamorcer la bombe, il fallait :
.  - Analyser le dessin et voir que la balance était reliée électriquement à la bombe, et en déduire qu’un certain poids devrait désamorcer la bombe.
.  - Cliquer un peu partout pour s’apercevoir que la balance est une vraie balance fonctionnelle et comprendre l’utilité des six flèches bleues. Le fait de pouvoir vider, remplir et transvaser l’eau conforte la première idée que c’est un certain poids qui doit désamorcer la bombe.
.  - Allumer la balance.
.  - Vider les seaux.
.  - Appuyer sur TARE pour mettre la balance à  zéro.
.  - Remplir le premier seau pour connaitre sa contenance : 5 litres, soit 5 kg.
.  - Vider le premier seau et remplir le deuxième pour connaitre sa contenance : 3 litres, soit 3 kg.
.  - Déduire qu’en remplissant, vidant, ou transvasant d’un seau à l’autre, on ne peut obtenir qu’un multiple du kg.

La solution était donc, hormis 0 kg, une des huit possibilités suivantes :
1,000kg,
2,000kg
3,000kg
4,000kg
5.000kg
6,000kg
7,000kg
8,000kg

La solution était 4,000kg.

Pour obtenir ces 4,000kg, il faut commencer avec les seaux vides et la balance à 0 kg puis suivez les instructions de Bignono :
Bignono a écrit:
remplissez le seau de droite puis transvasez-le dans le seau de gauche
remplissez à nouveau le seau de droite et transvasez-le aussi dans le seau à gauche
videz maintenant le seau de gauche puis transvasez le restant du seau de droite dans le seau à gauche
Vous n'avez plus qu'à remplir à nouveau le seau de droite!

Remarques :

Après avoir installé le programme sur un ordinateur rapide, je me suis aperçu que l’on n’avait pas le temps de lire toute la page d’accueil. Je vais ajouter une temporisation.

D’une manière très aléatoire, au lancement du programme, le FORM 0 ne prend pas toute sa hauteur ! ? => Je n’ai pas trouvé de solution. Quelqu’un a-t-il eu le même phénomène ?

J'ai dû supprimer le bruit du TIC TAC du compte à rebours en MIDI. Trop lent en traitement… Lorsque que l’on joue une note MIDI, le reste du programme reste figé le temps de la note. Crying or Very sad

... Et je réfléchis à une sortie du programme un peu moins austère lorsque l’on gagne.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5991
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Désamorcer la bombe   Mar 28 Mar 2017 - 0:27

Citation :
Avant de vous exposer la solution complète, je souhaite dire merci à Papydall pour le câblage électrique : Je me suis inspiré d’une de ses SUBs pour réaliser les torsades. Sans lui, les fils électriques auraient été rectilignes ! Merci Papydall !

Bon, disons que papydall aime bien les rondeurs car une ligne rectiligne est moins belle à contempler !  tongue
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Désamorcer la bombe   Sam 15 Avr 2017 - 12:57


Bonjour les démineurs !

Améliorations :
Ajout d’une temporisation de 10 secondes pour avoir le temps de lire la page d’accueil sur les ordinateurs rapides.
Ajout d’une mélodie de fin lorsque la bombe est désamorcée + fermeture progressive de la fenêtre.

>>> Le source est mis à jour. <<<

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Désamorcer la bombe   Sam 15 Avr 2017 - 13:24

Oups, pas trouvé le zip su le webdav
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5991
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Désamorcer la bombe   Sam 15 Avr 2017 - 13:29

Bonjour Jicehel

Il n’y a pas de zip, juste un code que tu trouveras en haut de cette page.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Désamorcer la bombe   Sam 15 Avr 2017 - 14:04

mdr, oui désolé, j'ai buggué tout à l'heure... Merci Papydall  ...  :oups: ... Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Désamorcer la bombe   Sam 15 Avr 2017 - 17:25

Jicehel a écrit:
Oups, pas trouvé le zip su le webdav


Gloups ! Désolé !
Webdav à jour !

Merci Papydall !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Désamorcer la bombe   

Revenir en haut Aller en bas
 
Désamorcer la bombe
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Bombe à décompression : est-ce grave docteur?
» Réparer des appareils en les "cuisant" au four
» Une autre Bombe chez Asrock la Z87 Extreme11/ac !
» Nouvelle Opel ADAM S : une petite bombe relevée d’une touche de luxe
» Super Mario Bros. 3: La Bombe Nintendo!

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: