• Sábado 21 de Diciembre de 2024, 15:34

Autor Tema:  Duda! Ando Creando Un chat (Tipo Chatbot)  (Leído 2230 veces)

eljaze

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Duda! Ando Creando Un chat (Tipo Chatbot)
« en: Domingo 12 de Abril de 2009, 02:12 »
0
Tengo este Codigo en Visual Basic 6, Lo que hace este programa es un tipo chatbot, pero mas bien con respuestas automaticas.

Ingresas "Hola" en text1 y en text2 aparece este mismo "hola", mas una respuesta como "que tal!" por ejemplo como se muestra en el codigo....

lo que quiero saber es como hacer para que me pueda responder de diferentes maneras la misma pregunta, como ejemplo pongo "hola" y me responde "hola" la primera vez y si le vuelvo poner hola que me conteste otra cosa diferente como "que tal"

Tambien como hacer para que el texto no diferencie entre mayusculas y minusculas...

Y como pasar el texto de text1 a tex2 con solo dar click en enter sin dar clicl en el boton enviar.


CODIGO:
______________________________________________________________________________________

Private Sub Command1_Click()
    If Trim(Text1.Text) = "" Then Exit Sub
    Agrego_Texto "Usuario", Text1.Text
    Envio_Texto
    Text1.Text = ""
    Text1.SetFocus
   
End Sub

__________________________________________________________________________

Sub Agrego_Texto(QUIEN As String, TXT As String)
    If Text2.Text = "" Then
       Text2.Text = "<" & QUIEN & "> " & TXT
       Else
        Text2.Text = Text2.Text & vbCrLf & "<" & QUIEN & "> " & TXT
    End If
End Sub
__________________________________________________________________________

Sub Envio_Texto()

If Text1.Text = "Hola" Then
Agrego_Texto "Ciclope", "Que tal!"
End If
 
 If Text1.Text = "Como estas" Then
 Agrego_Texto "Ciclope", "Bien!"
 End If
 
  If Text1.Text = "Quien te creo?" Then
 Agrego_Texto "Ciclope", "Jaaziel Peña en un proyecto de UMM"
 End If
 
End Sub

___________________________________________________________________

posman

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Duda! Ando Creando Un chat (Tipo Chatbot)
« Respuesta #1 en: Domingo 12 de Abril de 2009, 20:53 »
0
Cita de: "eljaze"
lo que quiero saber es como hacer para que me pueda responder de diferentes maneras la misma pregunta, como ejemplo pongo "hola" y me responde "hola" la primera vez y si le vuelvo poner hola que me conteste otra cosa diferente como "que tal"
Lo que podrias hacer es enviar una respuesta aleatoria en la funcion que envia la respuesta al usuario. Cuando comparas si el usuario escribio Hola entonces generarias un numero aleatorio y esa respuesta (de todas las posibles) es la que enviarias.

Código: Text
  1. If Text1.Text = "Hola" Then
  2.   dim respuestas(10)
  3.   respuestas(1) = "Hola"
  4.   respuestas(2) = "Que tal"
  5.   ...
  6.   'generas un numero aleatorio
  7.   Agrego_Texto "Ciclope", respuestas(aleatorio)
  8. End If
  9.  

Cita de: "eljaze"
Tambien como hacer para que el texto no diferencie entre mayusculas y minusculas...

Podrias cambiar el texto del usuario a mayusculas o minusculas y asi compararlo.

Código: Text
  1. If ucase(Text1.Text) = "HOLA" Then
  2.  
Asi no importara si el usuario escribio Hola, HoLa, hola, HOLA ya que todo se convierte a mayusculas

eljaze

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Duda! Ando Creando Un chat (Tipo Chatbot)
« Respuesta #2 en: Domingo 12 de Abril de 2009, 21:25 »
0
Muchas gracias, asi le estaba haciendo pero no le ayo para el numero aleatoria, RND

pero se me hiso mas facil con el select case que con el array y asi lo hice
Citar
Dim n As Integer
n = Int(Rnd * 5) + 1

Select Case UCase(Text1.Text)
Case "HOLA"
Select Case n
Case 1
Agrego_Texto "Ciclope", "Que tal!"
Case 2
Agrego_Texto "Ciclope", "Hola Hola!!"
Case 3
Agrego_Texto "Ciclope", "Buenas :)"
Case 4
Agrego_Texto "Ciclope", "Que onda"
Case 5
Agrego_Texto "Ciclope", "Hola como va"
End Select


Muchas gracias