Programación General > Visual Basic para principiantes
Duda! Ando Creando Un chat (Tipo Chatbot)
(1/1)
eljaze:
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:
--- 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"
--- Fin de la cita ---
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 ---If Text1.Text = "Hola" Then dim respuestas(10) respuestas(1) = "Hola" respuestas(2) = "Que tal" ... 'generas un numero aleatorio Agrego_Texto "Ciclope", respuestas(aleatorio)End If
--- Cita de: "eljaze" ---Tambien como hacer para que el texto no diferencie entre mayusculas y minusculas...
--- Fin de la cita ---
Podrias cambiar el texto del usuario a mayusculas o minusculas y asi compararlo.
--- Código: Text ---If ucase(Text1.Text) = "HOLA" Then Asi no importara si el usuario escribio Hola, HoLa, hola, HOLA ya que todo se convierte a mayusculas
eljaze:
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
--- Fin de la cita ---
Muchas gracias
Navegación
Ir a la versión completa