Calcul coordonée aléatoire

Contenu du snippet

ne vous attendez pas à parler avec votre ordinateur, ceci est juste un exemple. C'est un petit jeu de tir avec la possibilité que l'ordinateur joue à votre place.
1/ PLacez un bouton "Command1"
2/ Placer un timer "Timer1"
3 Placez un Label "cible" avec caption "", borderstyle : 1 et backcolor = vbmagenta
4/ placez une imagebox "Image1" et prenez l'image de la case cochée "checkmrk" dans graphics/icons/misc
5/ un label "lblpoints"

Source / Exemple :


'A mettre dans votre form

Dim ia As Boolean
Dim position As POINTAPI
Private Sub cible_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If touche = True Then Exit Sub
cible.BackColor = &HFF80FF
End Sub
Private Sub cible_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
cible.BackColor = vbRed
lblPoints.Caption = lblPoints.Caption + 1
touche = True
Image1.Visible = True
End Sub
Private Sub Command1_Click()
ia = True
End Sub
Private Sub Form_Load()
Me.WindowState = 2 'La feuille est de taille
 'maximised
Image1.Width = cible.Width
Image1.Height = cible.Height
Me.Caption = "TEST D'INTELLIGENCE ARTIFICIELLE"
Image1.Visible = False
Timer1.Interval = 1000
Command1.Caption = "&Lancer l'IA"
lblPoints.Caption = 0
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If Image1.Visible = True Then Exit Sub
cible.BackColor = vbMagenta
End Sub

Private Sub Timer1_Timer()
If ia = True Then GoTo 1
touche = False
Image1.Visible = False
Randomize Timer
A1 = Int(Rnd * Screen.Width - 200) + 1
A2 = Int(Rnd * Screen.Height - 200) + 1
cible.Top = A2
cible.Left = A1
Image1.Left = cible.Left
Image1.Top = cible.Top
Exit Sub
1:
For I = 1 To 100000 '
DoEvents '
DoEvents ' Pour pas que
Next I ' le tir soit instantané
touche = False
Image1.Visible = False 'L'image cochée est
' invisible
Randomize Timer
A1 = Int(Rnd * Screen.Width - 200) + 1 '
A2 = Int(Rnd * Screen.Height - 200) + 1 '
' Situe la cible est l'image n'importe
' où sur l'écran
cible.Top = A2
cible.Left = A1
Image1.Left = cible.Left
Image1.Top = cible.Top
position.x = cible.Top + 10
position.y = cible.Left + 10
'Envoie le curseur sur la cible
SetCursorPos position.x, position.y
cible.BackColor = vbRed
'La cible est touchée
lblPoints.Caption = lblPoints.Caption + 1
touche = True
Image1.Visible = True
End Sub

' a metrre dans le module

Public Type POINTAPI
        x As Long
        y As Long
End Type

Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

Conclusion :


Je sais, c'est nul, mais ça pourrait vous donner des idées (un snake avec une IA :p)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.