Forum: Italian Ruby user group Piccolo problemino da nabbo

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
A8245d1bc64f8894f35e52c36d92b8f5?d=identicon&s=25 Davide Pajot (pajot)
on 2016-02-06 18:51
Ciao a tutti, ho da pochi giorni incominciato con il ruby, e mi sta
piacendo molto, ma forse è un po presto per dirlo, comunque, sto
cercando di creare il mio primo bot di Telegram e mi sto affidando a
questo Wrapper: https://github.com/atipugin/telegram-bot-ruby
Gli esempi mi sono stati molto utili per capire in
fretta come buttare su le basi del mio bot, ma non mi è ancora chiaro
come posso far in modo che il bot dia una risposta casuale ad un
comando, oppure come come fare in modo che non faccia distinzione se il
comando è con la lettra iniziale maiuscola o minuscola, grazie in
anticipo per le risposte e sono contento di essermi unito a questa
piccola Community.
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2016-02-09 17:35
Ciao,
puoi chiamarlo semplicemente ruby: il cobol si, il pascal si, il ruby
no, il python no, il java no ecc. L'articolo è alquanto old fashion.

Per la tua questione, io purtroppo non riesco ad aiutarti nel dettaglio
ma ti posso dire che per avere flessibilità nella gestione delle
stringhe ti conviene usare le espressioni regolari:

irb(main):001:0> 'ciao' == 'Ciao'
=> false
irb(main):002:0> /ciao/i === 'Ciao'
=> true
irb(main):003:0> /ciao/i === 'ciao'
=> true
7de465f222e6a9c7fe658e370d0bfe05?d=identicon&s=25 Paolo Montrasio (pmontrasio)
on 2016-02-09 19:14
Ok per le espressioni regolari. Alle volte è sufficiente convertire
tutto l'input in maiuscolo o in minuscolo

http://stackoverflow.com/questions/1020568/how-to-...

Le risposte casuali di solito si fanno scegliendo a caso tra le risposte
possibili. Ad esempio il comando "saluta" potrebbe far scegliere una
stringa a caso tra quelle che avrai messo nell'array dei saluti. Per
scegliere a caso in un array Ruby ha il metodo sample, che immagino
implementi il solito pattern di tirare un numero a caso tra 0 e il
numero di elementi meno uno.
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2016-02-10 10:12
Per fare un bot da zero è necessario avere solide basi tecniche, ruby si
presta benissimo essendo avanti nella metaprogrammazione: reflection,
metodo send, method missing ecc... Girando tutto intorno a stringhe
(messaggi da interpretare) è necessario utilizzare le espressioni
regolari se si vogliono raggiungere risultati decenti.

Io ne avevo iniziato uno ma mai completato perchè talmente complesso da
richiedere tempo che sforava la semplice curiosità.

La complessità dipende dalle ambizioni del progetto. Al mio bot ad
esempio volevo dare una IA con capacità di persistenza e premonizione,
multi lingua (con I18n non sembrava complesso), con personalità
configurabile ecc. ...ma un bot può anche essere molto scemo e consiglio
di iniziare con questo per poi evolverlo.

Faccio un esempio:
Io: come ti chiami?
Bot: George
io: George?
Bot: George?

La maggior parte dei bot non hanno capacità di persistenza e non
collegano le domande alla discussione.

Esistono tanti progetti da cui puoi partire o prendere spunto:
https://github.com/dblock/slack-ruby-bot

Questo invece è lo storico cleverbot del grande Rollo Carpenter (ha
quasi 20 anni)
http://www.jabberwacky.com/
This topic is locked and can not be replied to.