DarkBASIC Professional/Crear un diàleg
DarkBASIC Professional |
En breu ens introduirem amb les 3D... |
Què aprendrem?
modificaEn aquest llibre aprendràs com poder fer que l’usuari tingui la sensació d’estar parlant amb l’ordinador, també podràs posar objectius de la conversa i respostes intel·ligents.
Resultat
modificaEns quedarà una aplicació com aquesta: Diàleg.exe
Llicó
modificaObrim un document
modificaEngeguem el DarkBASIC. Primer estaria bé tenir clar l’objectiu del diàleg. En el nostre cas farem que l’usuari hagi d’aconseguir la confiança del PC, perquè li expliqui un secret.
Imprimir text a la pantalla
modificaPrimer de tot farem una petita explicació a l’usuari perquè sàpiga que haurà de fer:
SET CURSOR 200,10 PRINT ">Hola, estàs a punt d’aconseguir un fet formidable, parlar amb l’ordinador, respon les preguntes que et fa i veuràs la seva saviesa.<" SET CURSOR 200,50 PRINT ">Has de respondre amb minúscules (sempre que no siguin noms propis) i sense posar més del necessari.<" SET CURSOR 200,100 PRINT ">La teva missió és que l’ordinador t’agafi suficient confiança com per explicar-te tots els seus secrets.<"
Anem a mirar què hem escrit:
El comandament SET CURSOR ens permet posar el cursor al lloc de la pantalla que vulguem, el posem a 200,10 perquè així quedarà més o menys centrat. A cada línia li sumarem 50 de distància perquè quedi una mica separat. El comandament PRINT en permet escriure entre les cometes el text que vulguem que s’imprimeixi a la pantalla. El text l’hem fet perquè quedi explicatiu, hem posat els signes >< perquè dongui la sensació que l’usuari està parlant amb l’ordinador.
Crear un marcador
modificaconfianca=000 SET CURSOR 20,50 PRINT "Grau de confiança: "; PRINT confianca
Aquí creem una variable: confianca.
Nota: (les ç no serveixen excepte pel text)
Posarem el marcador de la confianca a 0: confianca=000
Posarem el cursor a la banda superior esquerre de la pantalla (SET CURSOR 20,50). Allà hi imprimirem "el marcador": PRINT "Grau de confiança: "; i PRINT confianca. Aquí veiem dues noves coses: si volem que al posar PRINT no ens canviï de línea haurà d’anar seguit d’un ; així quedarà Grau de confiança: 0. I també hem vist que podem imprimir variables a la pantalla, l’única diferència és que no s’han de posar entre cometes com el text.
Crear el text
modificaPRINT ">Hola. Com et dius?" INPUT "";a$ confianca=confianca+10 SET CURSOR 20,50 PRINT "Grau de confiança: "; PRINT confianca
Imprimim una pregunta per a l’usuari: ">Hola. com et dius?"
El comandament INPUT serveix per què l’usuari hagi d’escriure quelcom, es posen dues cometes, així l’usuari posarà el seu nom. Podríem posar dins les cometes alguna paraula, com "Nom: " i llavors l’usuari tondria més facilitat a l’hora d’escriure, però no és necessari. Si volem que la variable que ha escrit l’usuari la puguem utilitzar després haurem de posar ;variable després de les cometes. El nom de la variable pot ser tant una paraula (com confianca) o una lletra seguida del signe representatiu de variables (a$), en aquest treball podeu utilitzar qualsevol.
Ara volem que l’ordinador tingui més confiança amb l’usuari, ja que ara en sap el nom: confianca=confianca+10. Ara la confiança haurà augmentat en 10. Tornem a situar el cursor a on teníem el marcador i tornem a escriure’l, ara amb una confiança de 10.
Un petita intel·ligència artificial
modificaSET CURSOR 0,180 PRINT ">Hola "; PRINT a$; PRINT ", encantat, jo em dic PC. Quans anys tens?"
Situem el cursor de nou a on estàvem escrivint.
Ara, l’ordinador ja pot utilitzar la variable, de tal manera que ja el pot anomenar pel seu nom.
Imprimim el text que creiem apropiat. Les variables s’han d’imprimir en línies a part, no es pot posar:
- PRINT ">Hola " a$ ", encantat jo em dic PC. Quants anys tens?"
Sinó que s’ha de fer en diferents línies, utilitzarem el ; perquè al resultat final això no es noti.
Respostes diferents segons el text que escrigui l’usuari
modificaINPUT "";Edat IF Edat<=29 confianca=confianca+10 PRINT ">Ets molt jove!"; ENDIF IF Edat>=30 confianca=confianca+5 PRINT ">Estàs a la flor de la vida."; ENDIF SET CURSOR 20,50 PRINT "Grau de confiança: "; PRINT confianca SET CURSOR 0,225
Al pas anterior hem fet la pregunta "Quan anys tens?"
Ara l’usuari l’haurà de dir: INPUT "";Edat (Edat serà el nom de la variable).
Ara farem que si l’edat és igual o inferior a 29 la confiança augmenti +10 (perquè l’ordinador també és jove) i respongui ">Ets molt jove!":
- IF Edat<=29
- confianca=confianca+10
- PRINT ">Ets molt jove!";
- ENDIF
I si l’edat és 30 o superior la confiança augmenti +5 (l’ordinador és més jove i no augmenta tant la confiança) i respongui ">Estàs a la flor de la vida."
- IF Edat>=30
- confianca=confianca+5
- PRINT ">Estàs a la flor de la vida.";
- ENDIF
El marcador es tornarà a actualitzar:
- SET CURSOR 20,50
- PRINT "Grau de confiança: ";
- PRINT confianca
- SET CURSOR 0,225
I amb SET CURSOR 0,225 tornarem a situar el cursor al text.
Afegim més text
modificaPRINT "Jo no en tinc tants, però envelleixo molt més ràpid que vosaltres, els humans, amb un parell d’anys estic antiquat." PRINT ">Quines aficions tens?" INPUT "";b$ confianca=confianca+5 SET CURSOR 20,50 PRINT "Grau de confiança: "; PRINT confianca SET CURSOR 0,270 PRINT ">Jo si fos com un humà també m'agradaria "; PRINT "";b$ PRINT ">De totes maneres segur que m'envejes per a ser PC. Què t'agradaria del que tinc jo que tu no tens?" INPUT "";c$ confianca=confianca+15 SET CURSOR 20,50 PRINT "Grau de confiança: "; PRINT confianca SET CURSOR 0,315 PRINT ">Si, està molt bé poder tenir "; PRINT "";c$
Anem posant més preguntes, més respostes, que la confiança augmenti, etc.
PRINT ">Què n'opines d'aquesta conversa que estem tenint?" INPUT "" confianca=confianca+25 SET CURSOR 20,50 PRINT "Grau de confiança: "; PRINT confianca
Aquí veiem una resposta a la qual no li assignem cap variable, ja que no l’utilitzarem.
SET CURSOR 0,360 PRINT ">Quina nota l'hi posaries?" INPUT "";nota IF nota<7 confianca=confianca+15 PRINT ">T'han aborrit et semblo? Crec que aquesta conversa es mereixia més que un "; PRINT nota ENDIF IF nota>=7 confianca=confianca+35 PRINT ">Si, està siguent una bona conversa, jo en comptes d'un "; PRINT "";nota; PRINT " l'hi posaria 1 punt més: "; PRINT "";nota+1; PRINT ", jeje." ENDIF SET CURSOR 20,50 PRINT "Grau de confiança: "; PRINT confianca
Aquí, com a novetat veiem que podem fer operacions matemàtiques amb les variables.
L’usuari diu la nota que posaria (de l'1 al 10) a la conversa que mantenen, i l’ordinador, si veu que és més d’un 7 li respondrà que ell l’hi posaria un punt més (nota+1), com que pot ser que l’usuari digui 10 i no tindria sentit dir que li posa un 11 afegirem unes rialles darrere (jeje) de tal manera que si ha de dir "jo en comptes d’un 10 l’hi posaria 1 punt més: 11" digui ", jeje" com si fos una broma.
Seguim posant més text.
SET CURSOR 0,410 PRINT ">Quins són els teus programes de TV preferits?" INPUT "";progtv PRINT ">Sí, em sonen..." confianca=confianca+25 SET CURSOR 20,50 PRINT "Grau de confiança: "; PRINT confianca
Si aconsegueix 100 de confiança
modificaAra posarem el secret que explicarà l’ordinador a l’usuari. Això passarà quan l’usuari aconsegueixi una confiança de 100 o superior. Ho posarem dins el "bucle" perquè es vagi repetint contínuament:
DO IF confianca>=100 SET CURSOR 0,500 PRINT ">Sí, "; PRINT "";a$; PRINT ", crec que ets de confiança. Vols saber el meu secret?" INPUT "";siono IF siono=no PRINT ">Bé, tu ho has volgut." ENDIF IF siono=si PRINT ">El meu secret és que jo sóc del futur, i en realitat era un humà." PRINT ">El 2030, un informàtics hem van proposar convertir-me en ordinador, jo com que em fascinava del que tenien els ordinadors com: "; PRINT "";c$; PRINT " vaig acabar acceptant." PRINT ">Em deia "; PRINT "";a$; PRINT ", sí, com tú, que curiós... En aquells moments tenia "; PRINT "";Edat+24; PRINT " anys. Ostres! Fixat'hi: "; PRINT "";Edat+24; PRINT "menys 24 anys dóna "; PRINT ""; Edat; PRINT ". A mi, també m'agradava "; PRINT "";b$; PRINT ". Jo sóc tu d'aquí a 24 anys!!" ENDIF ENDIF LOOP
Els comandaments DO i LOOP ens serveixen per a marcar què va dins el bucle, el bucle és el conjunt de comandament que es repeteixen contínuament, per tant, contínuament mirarà si la confiança és 100 o superior per començar a explicar el secret.
Aprofitem totes les variables anteriors per a fer aquest secret més impressionant per a l’usuari.
Ara ja podeu crear un diàleg de l’usuari amb l’ordinador.