DarkBASIC Professional/Crear un diàleg

Salta a la navegació Salta a la cerca
DarkBASIC Professional

En breu ens introduirem amb les 3D...

Què aprendrem?[modifica]

En 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[modifica]

Ens quedarà una aplicació com aquesta: Diàleg.exe

Llicó[modifica]

Obrim un document[modifica]

Engeguem 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[modifica]

Primer 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[modifica]

confianca=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[modifica]

PRINT ">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[modifica]

SET 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[modifica]

INPUT "";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[modifica]

PRINT "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[modifica]

Ara 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.