Programare Vizualăloredanau/teaching/PV/PV-C3.pdf · • Este exprimat prin reguli de tip...

Post on 19-Jan-2020

16 views 1 download

transcript

ProgramareVizuală

AgentSheetsDr.ing. Loredana STANCIU

loredana.stanciu@aut.upt.ro

Introducere• Un limbaj de programare vizuală bazat pe agenți,

destinat pentru utilizatorii obişnuiţi, fără cunoştinţe speciale de programare

• Combină foi de calcul tabelar, agenți și tehnologii Java patentate (Ristreto) într-un mediu de programare care este intuitiv și transparent

• Tehnologia Ristreto permite partajarea aplicațiilor realizate în AgentSheets, sub formă de applet, pe un sit web

Introducere• Un agent:

o este un obiect programabil

o poate avea diverse aspecte (numite depictions)

o are un comportament determinat de reacția la un click de maus sau la apăsarea unei taste (mișcare în spațiul de lucru, schimbarea aspectului, emiterea unui sunet, calcularea unor formule etc.)

o poate interacționa cu alți agenți în spațiul de lucru organizat sub forma unei foi de calcul tabelar

• Limbajul de programare este bazat pe reguli (Visual AgenTalk)

• Condițiile, acțiunile și regulile sunt obiecte complete care pot fi explorate în orice moment al programării

Introducere• Programarea conversațională (paradigmă de

programare patentată) oferă feedback vizual imediat:o Este această condiție adevărată în acest moment, în contextul unui

agent particular?

o Poate fi executată această condiție în acest moment?

• Prin această metodă sistemul poate scoate în evidență (înainte de finalizarea programului) potențialele probleme sau oportunitățile

Exemple• Construiește podul:

o http://www.agentsheets.com/Applets/bridge-builder/index.html

• Simulare de procese:o http://www.agentsheets.com/Applets/pascals-adding-

machine/index.html

• Generarea și analiza datelor:o http://www.agentsheets.com/Applets/predators-and-prey/index.html

Mod de lucru• Realizarea unei aplicații pornește cu crearea unui

nou proiect

• Va apărea o casetă de dialog pentru specificarea dimensiunii unui agent, în pixeli

Definirea agenților• Toate obiectele din aplicație sunt agenți

Definirea agenților• Toți agenții vor apărea în galerie ca pătrățele

etichetate cu numele stabilit în pasul anterior

• Agentul poate avea mai multe aparențe, stabilind modul în care apare pe ecran

• Editarea unei aparențe se face cu ajutorul unui editor (dublu clic pe imaginea implicită atribuită unui agent în galerie sau butonul Edit depiction)

Definirea agenților

Crearea lumii simulării (a foii de calcul)

• Crearea unei foi de calcul se realizează cu opțiunea File/New Worksheet

• Pentru a pune un agent, se selectează agentul din galerie și se plasează în celula dorită. Pentru a plasa mai mulți agenți simultan (pentru fundal, de exemplu) se selectează mai multe celule

• După plasarea tuturor agenților, se va salva foaia de lucru

Crearea lumii simulării (a foii de calcul)

Comportamentul agenților

• Descrie ce știe să facă un agent

• Este exprimat prin reguli de tip dacă-atunci (if-then)care conțin condiții și acțiuni

• Mai multe reguli se pot grupa într-o metodă

• Descrierea comportamentului se face într-un editor care se pornește prin dublu clic pe zona albastră a unui agent în galerie sau clic pe butonul Edit behaviour

Comportamentul agenților

Comportamentul agenților

• Un editor de comportament poate conține un număr nelimitat de metode, compuse din reguli și un trigger (definește momentul când sunt verificate regulile)

• Ex: while running va determina metoda să verifice regulile la fiecare ciclu de rulare

Definirea regulilor• Se face combinând condiții și acțiuni pe editorul de

comportament

• Condițiile se preiau de pe paleta de condiții (Conditions Palette) iar acțiuniile de pe paleta de acțiuni (Actions Palette) accesibile fie via Tools/Conditions (Actions) Palette, fie via Conditions(Actions) Palette din parte de jos a editorului

Definirea regulilor

Acțiunile• Sunt operații pe care agenții le pot realiza:

mișcarea pe spațiul de lucru, modificarea aspectului, deschiderea unei pagini web, sunet

• Pot conține doi parametri:o Direcția în care se va executa acțiunea

o Aparența pe care o va avea agentul

• Acțiunile pot fi testate oricând și determină agentul să execute o dată comanda asociată

• Acțiunile pot fi explicate prin apăsarea butonului Explain

Condițiile• Sunt folosite pentru testarea circumstanțelor unui

agent

• Pot fi adevărate sau false

• Un agent poate folosi condiții pentru:o A testa prezența unor alți agenți în jurul lor

o A testa valorile atributelor

o Detectarea apăsării tastelor

o Detectarea mișcării mausului

• Pot fi testate în orice moment

• Pot fi explicate

Exemplu de reguli

Acționarea unei reguli• Verifică lista de reguli de sus în jos, în ordinea în care

sunt scrise

• Acționează prima regulă ale cărei condiții sunt adevărate. Toate acțiunile asociate regulii vor fi executate

• Regulile aflate sub regula executată în listă nu mai sunt verificate

• Schimbarea ordinii regulilor: se trage regula, ținând de eticheta then și se eliberează în locul dorit

Acționarea unei reguli

Rularea simulării• Regulile pot fi testate după crearea lor în editor

(butonul Apply)

• Pentru pornirea simulării se apasă butonul Run de pe foaia de lucru

• La baza editorului există un slider care poate varia viteza de simulare

Adăugarea de proprietăți• Sunt variabile accesibile tuturor agenților într-o

simulare

• Pot fi inspectate și editate de către utilizator prin editorul Simulation Properties

• Pot fi reprezentate grafic

Adăugarea de proprietăți• Exemplu: numărul total de persoane infectate

• Variabila trebuie incrementată de fiecare dată când o persoană este infectată

Regula finală

Vizualizarea grafică• Se lansează prin apăsarea butonului Plot de pe

editorul Simulation Property