Un petit jeu sur la reponse à des phrases.
C'est un amusement et je pense un source interressant sur le découpage et analyse de mots dans une phrases.
Vous devez créer un écran avec :
-Un label explicatif
-Une zone de saisie
-Un bouton d'analyse
-Un label pour les réponses de l'ordinateur
Source / Exemple :
'
' VIENT GERARD(FRANCE)
' TRES IMPORTANT CE PROGRAMME NE REMPLACE PAR UN PSYCHOLOGUE
' IL DOIT ETRE CONSIDERER COMME UN AMUSEMENT
' Pour ceux qui font de la micro-informatique depuis longtemps
' ils se rapelleront des programmes de l'ordinateur individuel !
'
' cette variable sert dans le cas d'une repetition
'
Dim totalmots, infoje, infoinsulte, infoexcla, infointer, infovous, infopere, infomere, infoargent, elle, il
Private Sub CommandButton1_Click()
'
' on etablit un diagnostic
'
Label2.Caption = "RESULTAT DE VOTRE ANALYSE :" + Chr(13)
'
' il faut avoir parler assez
'
If totalmots < 100 Then
Label2.Caption = Label2.Caption + "Vous n'avez pas assez parlé.L'analyse risque d'être très incomplète." + Chr(13)
End If
'
' relation avec le travail
'
Select Case infotravail
Case Is > 10
Label2.Caption = Label2.Caption + "Il y as trop de place au monde du travail dans votre vie." + Chr(13)
Case Is > 4
Label2.Caption = Label2.Caption + "Le travail participe activement à votre vie." + Chr(13)
Case Is >= 0
Label2.Caption = Label2.Caption + "Vous parlez peu de votre travail." + Chr(13)
End Select
'
' relations avec la mere
'
Select Case infomere
Case Is > 10
Label2.Caption = Label2.Caption + "Visiblement votre mère a une trop grande place dans votre vie." + Chr(13)
Case Is > 4
Label2.Caption = Label2.Caption + "Votre mère est un élément important de votre vie." + Chr(13)
End Select
'
' relation avec le pere
'
Select Case infopere
Case Is > 10
Label2.Caption = Label2.Caption + "Votre père vous a énormement marqué!" + Chr(13)
Case Is > 4
Label2.Caption = Label2.Caption + "L'influence de votre père, apparait dans notre discussion." + Chr(13)
End Select
'
' relation avec l'argent
'
Select Case infoargent
Case Is > 10
Label2.Caption = Label2.Caption + "Il faut absolument prendre de la distance par rapport à l'argent." + Chr(13)
Case Is > 4
Label2.Caption = Label2.Caption + "L'argent n'est pas tout dans la vie!" + Chr(13)
End Select
'
' analyse des insultes
'
Select Case infoinsulte
Case Is > 10
Label2.Caption = Label2.Caption + "Vous avez trop tendance à insulter les gens." + Chr(13)
Case Is > 4
Label2.Caption = Label2.Caption + "Mefiez vous d'une tendance à vous enerver." + Chr(13)
Case Is > 0
Label2.Caption = Label2.Caption + "Souvenez vous qu'insulter les autres ne permet pas d'avancer. Et risque de vous fermer des portes." + Chr(13)
End Select
'
' analyse des !
'
Select Case infoexcla
Case Is > 10
Label2.Caption = Label2.Caption + "Vous aimez vous faire entendre." + Chr(13)
Case Is > 4
Label2.Caption = Label2.Caption + "Vous preferez exprimer vos idées clairement." + Chr(13)
End Select
'
' analyse de ?
'
Select Case infointer
Case Is > 10
Label2.Caption = Label2.Caption + "Vous vous posez beaucoup de questions." + Chr(13)
Case Is > 4
Label2.Caption = Label2.Caption + "Vous restez très indécit sur certaines questions." + Chr(13)
End Select
'
' analyse des je
'
Select Case infoje
Case Is > 10
Label2.Caption = Label2.Caption + "Vous savez bien parlé de vous.C'est bien vous acceptez de vous dévoiler." + Chr(13)
Case Is > 4
Label2.Caption = Label2.Caption + "Vous avez parlé de vous, mais pas encore assez!" + Chr(13)
Case Is >= 0
Label2.Caption = Label2.Caption + "Vous etiez la pour parler de vous et vous avez très peu employé le je!Cela cache un problème de confiance en soi!" + Chr(13)
End Select
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'
' premiere phase en decoupe la phrase en mot
' maxi 100 mots
Dim resultat(100)
zone = TextBox1.Text
x = 1
nb = 0
zone2 = ""
'
' caracteres qui determine le decoupage
'
cardecoup = " ,;.'!?"
'
' caracteres de type e
'
care = "éèêë"
For g = 1 To Len(zone)
'
' on met en minuscule
'
car = LCase(Mid$(zone, g, 1))
'
'on comptablilise les ! ?
'
Select Case car
Case "!"
infoexcla = infoexcla + 1
Case "?"
infointer = infointer + 1
End Select
'
' on elimine les accents
'
If InStr(care, car) Then
car = "e"
End If
'
' on change de mot ?
'
If InStr(cardecoup, car) > 0 Then
If zone2 <> "" And nb <= 100 Then
nb = nb + 1
resultat(nb) = zone2
End If
zone2 = ""
Else
zone2 = zone2 + car
End If
Next g
'
' on cumule le nombre de mots
'
totalmots = totalmots + nb
'
' ne pas oublier le dernier mot
'
If zone2 <> "" And nb <= 100 Then
nb = nb + 1
resultat(nb) = zone2
End If
'
' on remplace elle et il par (mere,pere,...)
'
For g = 1 To nb
If "elle" = resultat(g) Then resultat(g) = elle
If "il" = resultat(g) Then resultat(g) = il
Next g
'
' ok on fait l'analyse de la phrase
'
reponse = ""
insulte = "/con/connard/idiot/stupide/"
For g = 1 To nb
'
' insulte ?
'
If InStr(insulte, "/" + resultat(g) + "/") > 0 Then
reponse = "Ne vous enervez pas !!! Evitez d'employé le mot " + resultat(g) + ", cela n'arrange rien..."
infoinsulte = infoinsulte + 1
End If
'
' relation avec l'argent
'
Select Case resultat(g)
Case "je"
infoje = infoje + 1
Case "argent"
choix = Int(Rnd * 10 + 1)
Select Case choix
Case 1
reponse = "Vous pensez que l'argent pose des problèmes?"
Case 2
reponse = "Au faites mon tarif est de 1 500 francs la séance!" + Chr(13) + "je plaisante..."
Case 3
reponse = "Et les autres membres de la famille peuvent vous aider à régler ces problèmes d'argent?"
Case 4
reponse = "Le fait que l'argent"
For h = g + 1 To nb
reponse = reponse + " " + resultat(h)
Next h
reponse = reponse + ", cela vous empeche de prendre du recul par rapport à lui!"
Case 5
reponse = "D'accord l'argent peut provoquer effectivement ceci. Mais ne vous focalisez pas trop sur lui."
Case 6
reponse = "L'argent pour vous est sans doute très important?"
Case 7
reponse = "Le manque d'argent vous poursuit-il ?"
Case 8
reponse = "L'argent doit être un moyen pas une finalité!"
Case 9
reponse = "Cela vous bloque-t-il dans vos projets?"
Case 10
reponse = "Vous sentez vous seul face à ce probleme?"
End Select
infoargent = infoargent + 1
g = nb
'
' relation avec le travail
'
Case "travail"
If infotravail = 5 Then
reponse = "Je vois que votre travail est un élément important de votre vie."
Else
choix = Int(Rnd * 10 + 1)
Select Case choix
Case 1
reponse = "Si votre travail"
For h = g + 1 To nb
If resultat(h) = "me" Then
reponse = reponse + " vous"
Else
reponse = reponse + " " + resultat(h)
End If
Next h
reponse = reponse + ", vous en souffez?"
Case 2
reponse = "Le problème vient de vous ou de vos collègues?"
Case 3
reponse = "Souvent cela cache un manque d'assurance dans le travail!"
Case 4
reponse = "Bien, mais vous pensez que cela est du uniquement aux autres?"
Case 5
reponse = "Attention le monde du travail n'est pas le monde familial! Il ne faut pas mélanger les genres."
Case 6
reponse = "C'est un choix ce type de metier?"
Case 7
reponse = "Cela provoque-t-il des répercussions dans votre vie familiale?"
Case 8
reponse = "Le fait que " + resultat(g - 1) + " " + resultat(g) + " " + resultat(g + 1) + " " + resultat(g + 2) + ", provoque quoi comme problème?"
Case 9
reponse = "Le travail est souvent source de conflit!"
Case 10
reponse = "Le travail doit aussi participer à votre epanouissement."
End Select
End If
infotravail = infotravail + 1
g = nb
'
' relation avec le pere
'
Case "pere"
If infopere = 5 Then
reponse = "Je vois que votre père est une piece importante de votre vie."
Else
choix = Int(Rnd * 10 + 1)
Select Case choix
Case 1
reponse = "Si votre père"
For h = g + 1 To nb
If resultat(h) = "me" Then
reponse = reponse + " vous"
Else
reponse = reponse + " " + resultat(h)
End If
Next h
reponse = reponse + ", vous en souffez?"
Case 2
reponse = "Cette relation avec votre père, vous fait-elle encore souffrir?"
Case 3
reponse = "Pensez-vous que votre père en a eu conscience?"
Case 4
reponse = "Oui, je comprends mais votre père était-il responsable de cela?"
Case 5
reponse = "Dans ce cas, votre père vous embetait?"
Case 6
reponse = "Cela produisait-il de la gène par rapport aux autres ?"
Case 7
reponse = "Votre père comprenait-il réellement toutes les implications?"
Case 8
reponse = "Votre père " + resultat(g + 1) + " " + resultat(g + 2) + ", dites-vous. Cela a entrainé quels problèmes?"
Case 9
reponse = "En avait-il toute la responsabilité?"
Case 10
reponse = "Et vous même, pensez-vous reproduire le même schéma?"
End Select
End If
infopere = infopere + 1
g = nb
il = "pere"
'
' relation avec la mere
'
Case "mere"
If infomere = 5 Then
reponse = "Je vois que votre mère est une piece importante de votre vie."
Else
choix = Int(Rnd * 10 + 1)
Select Case choix
Case 1
reponse = "Si votre mère"
For h = g + 1 To nb
If resultat(h) = "me" Then
reponse = reponse + " vous"
Else
reponse = reponse + " " + resultat(h)
End If
Next h
reponse = reponse + ", cela reste un vrai problème encore aujourd'hui?"
Case 2
reponse = "Et vous vous considerez cela comme un faute de votre mere?"
Case 3
reponse = "Votre mere connaissait elle de grave difficulté?"
Case 4
reponse = "Il faut réussir à vous détacher de tel souffrance avec votre mère!"
Case 5
reponse = "Votre mere"
If g < nb Then
For h = g + 1 To nb
If resultat(h) = "me" Then
reponse = reponse + " vous"
Else
reponse = reponse + " " + resultat(h)
End If
Next h
reponse = reponse + " et en cela vous etes tres sensible?"
Else
End If
Case 6
reponse = "Et votre pere qu'en disait-il ?"
Case 7
reponse = "Votre famille connaissait-elle ce coté de votre mère?"
Case 8
reponse = "Il faut savoir pardonné, surtout à sa mère!"
Case 9
reponse = "Je sens bien, que cette relation entre vous et votre mère vous hante."
Case 10
reponse = "Les relations avec sa mère sont souvent difficile à expliquer!"
End Select
End If
infomere = infomere + 1
g = nb
elle = "mere"
'
' verbe etre
'
Case "suis"
reponse = "Pourquoi etes-vous"
For h = g + 1 To nb
reponse = reponse + " " + resultat(h)
Next h
g = nb
reponse = reponse + "?"
Case "etes"
If infovous = True Then
reponse = "Je vous l'ai dejà dit, c'est de vous qu'il faut parler!"
Else
reponse = "Je suis peut etre"
For h = g + 1 To nb
reponse = reponse + " " + resultat(h)
Next h
reponse = reponse + ", mais c'est de vous qu'il sagit!"
infovous = True
End If
g = nb
End Select
Next g
If reponse = "" Then
If nb = 0 Then
reponse = "Dites moi quelque chose..."
Else
'
' on a rien trouve on lance une phrase au hasard
'
choix = Int(Rnd * 20 + 1)
Select Case choix
Case 1
reponse = "Oui, je comprend bien" + Chr(13) + "Mais donnez moi plus d'explication."
Case 2
reponse = "C'est interressant continuez!"
Case 3
reponse = "Vraimment " + resultat(Int(Rnd * nb + 1)) + " est-il le terme exact?"
Case 4
reponse = "Souvent on croit que"
For g = 1 To nb
reponse = reponse + " " + resultat(g)
Next g
Case 5
reponse = "Ne vous fiez pas aux apparences."
Case 6
reponse = "Vous pouvez m'expliquer le terme " + resultat(nb) + ", que vous avez employé?"
Case 7
reponse = "Vous savez, la vie n'est pas toujours evidente!"
Case 8
reponse = "Cela a-t-il un rapport avec votre mere ?"
Case 9
reponse = "Cela a-t-il un rapport avec votre pere ?"
Case 10
reponse = "Je pense que vous avez raison!"
Case 11
reponse = "J'ai bien compris " + resultat(nb) + ", mais pouvez-vous mieux décrire le problème."
Case 12
reponse = "Si je vous repose les mêmes questions, c'est pour être sur de vos réponses..."
Case 13
reponse = "Continuez, vous progressez!"
Case 14
reponse = "Il n'y a pas que " + resultat(1) + " " + resultat(2) + ", dans la vie!Essayez de me parler d'autre chose."
Case 15
reponse = "Vous etes là pour vous exprimer!"
Case 16
reponse = "D'accord, mais cela fait-il partie d'une souffrance?"
Case 17
reponse = "Pour vous la vie est-elle un long fleuve tranquille?"
Case 18
reponse = "Bien , voilà une information !Continuez!"
Case 19
reponse = "D'accord, c'est clair.Mais maintenant parlez moi de vos relations avec une autre personne!"
Case 20
reponse = "Ok, j'ai bien compris!Mais donnez moi plus d'informations sur le sujet!"
End Select
End If
End If
Label2.Caption = reponse
End Sub
Private Sub UserForm_Activate()
'
' on met en place les variables
'
infovous = False
infopere = 0
infomere = 0
infoargent = 0
totalmots = 0
infoexcla = 0
infointer = 0
infoinsulte = 0
infotravail = 0
infoje = 0
elle = "elle"
il = "il"
End Sub
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.