Une petit challenge LD

Discussion dans 'Programmation' créé par wayeli, 28 Février 2006.

  1. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD


    lol ra 3zize 3lina nediro chewiate suspence a raja casa
     
  2. megaman_c

    megaman_c Guest

    Re : Une petit challenge LD

    a fine wsalti a 7nini f dak chi ? :D ghadi m3ah ?
     
  3. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD

    welaima bedito lol
    3anedi des programmes khasseni nekemelhome :D
     
  4. megaman_c

    megaman_c Guest

    Re : Une petit challenge LD

    ihhh ...

    iwa llah ysehhel a weldi


    fach had l programmat ? kel language ? :D
     
  5. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD

    je dois faire le mainsweeper et un autre porgramme de canon o wahede akhore deyale quiz
    je suis au mainsweeper mn :D
    en VB
     
  6. megaman_c

    megaman_c Guest

    Re : Une petit challenge LD

    ihhhhhhh .. nass dyale l VB

    ma 3andich m3ah a 3zizi mma wkan 3awentek ila kan 3andek chi mouchkil


    llah ysehhel l 2oumour 3ala kouli 7al .. llah yneffe3 :D
     
  7. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD

    Lahe yehafedeke a Sat
     
  8. BillGates

    BillGates Citoyen

    J'aime reçus:
    4
    Points:
    38
    Re : Une petit challenge LD

    wayeli, le programme de canon, c quoi ???
    je me rappele une personne m'a deja parler de ca.... c'est une simulation d'un canon ?
     
  9. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD

    non c un jeu ou tu dois viser avec un caon apres tu dois tirer et toucher le but
    tu utilise les formules de gravite la dans
     
  10. BillGates

    BillGates Citoyen

    J'aime reçus:
    4
    Points:
    38
    Re : Une petit challenge LD

    ca te derange pas d'envoyer les formules ??
    j'ai deja fais un truc semblable... mais juste approximatif... ce n'etait pas pour viser, mais plus pour trouver l'altitude maximale du projectil
     
  11. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD

    we a khoya rire nedekhole l dare et te l'es envoyerais :D
     
  12. BillGates

    BillGates Citoyen

    J'aime reçus:
    4
    Points:
    38
    Re : Une petit challenge LD

    cool ! merci wayeli
     
  13. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Un petit challenge LD

    Voici le code de mon programme les formules je les ai ecrites en rouge
    '************************************ ********** ***** *** ** *** ** ******** *** **
    'Mustapha El karafi *.........* ********** ** ** **** ** **** ** ** ** *** **
    'Programme Canon *.........* ** ** $ ** ** ** ** ** ** ** ** ** ** ** **
    'Lundi le 01 Mars *.........* ** *********** ** ** ** ** ** ** ** $$ ** ** ** **
    'Années 2005-2006 *.........* ** ************* ** **** ** **** ** ** ** ****
    'Concours *.........* ********** ** ** ** *** ** *** ** ** ** ***
    '************************************ ********** ** ** ** ** ** ** ******** ** **
    '******************************************************************************************************************
    '***********************************Code De mon Programme**********************************************************
    '******************************************************************************************************************
    Option Explicit 'Déclaration D'Obtion explicites (Places des Variables)............................................
    Dim X2, Y2, X1, Y1 As Integer
    Dim vx As Long
    Dim vy As Long
    Dim v As Long
    Dim xx As Long
    Dim yy As Long
    Const G = 9.8 'Constante qui ne varie pas ( elle ne change pas)..........................................
    Dim TT As Long
    Dim blnCannonMove As Boolean
    Dim blnTargetMove As Boolean
    'Variable des angles..........................................................................................
    Dim Theta As Double
    Dim App As Double

    Private Sub cmdFeu_Click()
    'Calcule de Vitesse du ballon selon l'horizontale et la verticale..................................................
    vx = v * Cos(Theta)
    vy = v * Sin(Theta)

    ShpBalle.Visible = True
    'Remettre le temps à 0.............................................................................................
    TT = 0
    'Activation du Timer(TmrDebut).....................................................................................
    TmrDebut.Enabled = True
    End Sub

    Private Sub Form_Load()
    X2 = LinCannon.X2
    Y2 = LinCannon.Y2
    X1 = LinCannon.X1
    Y1 = LinCannon.Y1

    'Les contenus de Txt.text seront controlés par le HsbSpeed.........................................................
    TxtSpeed.Text = HsbSpeed.Value
    HsbSpeed.Max = 500 'La Valeur maximale du HsbSpeed est de 500......................................................
    HsbSpeed.Min = 100 'et le Minimum est de 100 Alors avec le HsbSpeed il peut juste etre entre 100=<HsbSpeeed=<500...
    'Formule Nécéssaire pour mon programme.............................................................................
    'Des affinitées Bien déterminées une formule de la Physique........................................................
    Theta = Atn(Abs(Y2 - Y1) / Abs(X2 - X1))
    App = (Y1 - Y2) / Sin(Theta)

    ShpGroupe.Width = frmCannon.Width
    ShpGroupe.Left = 0

    End Sub

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    X2 = LinCannon.X2
    Y2 = LinCannon.Y2
    X1 = LinCannon.X1
    Y1 = LinCannon.Y1
    'Faire Bouger le Cannonde gauche vers le haut ou du haut vers la Gauche en etant donne que la souris soit pres du
    'Cannon...... de tel sorte que la pointe de la souris soit au bout du cannon comme cela le cannon se activé a faire
    'tout mouvement Possible dépendamment de ce qu'on l'ordonne........................................................
    If X > X2 - 100 And X < X2 + 100 _
    And Y > Y2 - 100 And Y < Y2 + 100 Then
    blnCannonMove = True
    End If
    '*********************************************************************************************************************
    If X > ShpTarget.Left And X < ShpTarget.Left + ShpTarget.Width _
    And Y > ShpTarget.Top And Y < ShpTarget.Top + ShpTarget.Height Then
    ShpBalle.Visible = False
    blnTargetMove = True
    End If
    End Sub

    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Faire bouger le Cannon avec la souris sans qu'il ne change sa grandeur............................................
    'Permitation du cannon tout en etant intact........................................................................
    If blnCannonMove Then
    LinCannon.X2 = X
    LinCannon.Y2 = Y
    If LinCannon.X2 - LinCannon.X1 = 0 Then
    Else
    Theta = Atn(Abs(LinCannon.Y2 - LinCannon.Y1) / Abs(LinCannon.X2 - LinCannon.X1))
    'L 'Angle que fait le cannon avec le SOL.......................................................................
    End If
    LinCannon.X2 = (Cos(Theta) * App) + LinCannon.X1
    LinCannon.Y2 = LinCannon.Y1 - (Sin(Theta) * App)

    'La messure du grandeur du cannon restera intacte malgré l'angle qu'il fera la longueur sera pas touchée.......
    'si C'est du Haut vers la bas(le Cos est Appliqué et si c'est Horizontale c'est le Sin.........................
    End If
    '**********************************************************************************************************************
    'Pouvoir changer de place à ma Cible ma juste Horizontalement Horizontalement ( Gauche, Droite)....................
    If blnTargetMove Then
    ShpTarget.Left = X - (ShpTarget.Width / 2)
    ShpTarget1.Left = X - (ShpTarget1.Width / 2)
    lintarget1.X1 = ShpTarget1.Left - lintarget1.Y2 / 6
    lintarget1.X2 = ShpTarget1.Left
    End If
    End Sub

    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'L'ordre de bouger la Cible Horizontalement
    If blnCannonMove Then
    blnCannonMove = False
    End If
    If blnTargetMove Then
    blnTargetMove = False
    End If
    End Sub

    Private Sub HsbSpeed_Change()
    Call HsbSpeed_Scroll 'Appelle du sub HsbSpeed_Change qui un code a été mis en jeux
    End Sub

    Private Sub HsbSpeed_Scroll()
    TxtSpeed.Text = HsbSpeed.Value 'Le textSpeed va afficher la valeur de HSbSpeed
    End Sub

    Private Sub mnuQuitter_Click()
    Unload Me 'Fin de mon Programme
    End Sub

    Private Sub TmrDebut_Timer()
    xx = vx * TT + LinCannon.X2 'Mouvement Horizontal
    yy = 0.5 * G * (TT * TT) - vy * TT + LinCannon.Y2 'Mouvement vertical
    'L'emplacement de la balle
    ShpBalle.Left = xx
    ShpBalle.Top = yy
    TT = TT + 1
    '**********************************************************************************************************************
    'Le passage du ballon avec la cible ( Lorsque la ball sera en contact avec ma cible)
    If ShpBalle.Top + ShpBalle.Height > ShpTarget.Top And ShpBalle.Top < ShpTarget.Top + ShpTarget.Height _
    And ShpBalle.Left + ShpBalle.Width > ShpTarget.Left And ShpBalle.Left < ShpTarget.Left + ShpTarget.Width Then
    Beep
    TmrDebut.Enabled = False 'Désactivé le timer
    End If
    '**********************************************************************************************************************
    'C'est le passage de la balle avec le sol au momment du lancé
    If ShpBalle.Top + ShpBalle.Height >= ShpGroupe.Top Then
    Beep
    TmrDebut.Enabled = False 'Désactiver le timer
    End If
    End Sub

    Private Sub TxtSpeed_Change()
    v = CInt(TxtSpeed.Text) 'La vitesse en fonction de Text
    End Sub

    et voici le exe du programme

    http://rapidshare.de/files/14794316/Canon.exe.html

    si t'as des questions n'hesite pas :D
     
  14. BillGates

    BillGates Citoyen

    J'aime reçus:
    4
    Points:
    38
    Re : Une petit challenge LD

    c cool wayeli !
    on utilise la meme formule
    X, Y = la position du canon
    Alpha : l'angle
    V : la force du tire

    procedure Shoot(x, y, alpha, v : Double);
    Var
    g, dt : double;
    vx, vy : double;
    hw, hh : Integer;
    Begin
    g := sbGravite.Position/100;
    Continue := True;
    dt := 0.00001;
    vx := v * Cos(Alpha);
    vy := v * Sin(Alpha);
    hw := (ClientWidth Div 2);
    hh := (ClientHeight Div 2);
    While (y > 0)AND(Continue) Do
    Begin
    x := x + vx * dt;
    y := y + vy * dt;
    vy := vy + g * dt;
    dt := dt + 0.00001;
    Canvas.Pixels[hw +Round(x), hh -Round(y)] := clWhite;
    Sleep(1);
    application.ProcessMessages;
    end;
    end;

    et voici un programme test
    http://rapidshare.de/files/14868233/ShootProject.exe.html
     
  15. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD

    bikhir meme si c difficile a preciser l'endroit d'ou tu peux tirer ,j'aime bien comment tu declares tes variables en delphi :D
     
  16. BillGates

    BillGates Citoyen

    J'aime reçus:
    4
    Points:
    38
    Re : Une petit challenge LD

    oui c pas facile... je dois trouver une façon pour utiliser des valeures qui ont un sense pour l'angle !!
    en fait je l'avais pas revu depuis un bon moment... aujourd'hui j'ai juste ajouté la Boolean 'Continue' pour sortir de la boucle.. parceque si tu utilise un valeure nulle ou positive pour la gravité, le projectil ne revient pas, et la boucle va a l'infini :)
     
  17. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD

    La valeur experimental du garavie c 9.8 m/s^2 , essaye d'utiliser cette constante dans ton programme et essaye de jouer avec les formules,en faite la gravite tu dois l'utiliser pour le mouvement verticale parceque ca change en fonction de y ,essaye d'utiliser cette formule

    yy = 0.5 * G * (TT * TT) - vy * TT + LinCannon.Y2
     
  18. BillGates

    BillGates Citoyen

    J'aime reçus:
    4
    Points:
    38
    Re : Une petit challenge LD

    yy est l'altitude ?
    et TT est le temps ?

    en fait la gravité est -9.8 sur terre... je l'ai laissé variable expret...pour experimenter la sensation sur Mars, Jupiter, etc... hahahahahaha
     
  19. megaman_c

    megaman_c Guest

    Re : Une petit challenge LD

    a fine wsaltou m3a les challenges ? :D
     
  20. wayeli

    wayeli Accro

    J'aime reçus:
    47
    Points:
    48
    Re : Une petit challenge LD

    yy mouvement horizental et tt c le temps c tout a fait comme les problemes des projectiles en physique

    Ps:gravite en mars c ton poid :D

    Wellahita nessitehome lloll
     

Partager cette page