Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti.

Slides:



Advertisements
Presentazioni simili
Analisi e progettazione
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Sintassi (prima parte)
Metodologie di Programmazione = decomposizione basata su astrazioni
1 Linguaggi di Programmazione - elementi Corso di Laurea in Informatica (AA 2005/2006) Gabriella Pasi e Carla Simone
RICONOSCIMENTO DI SEQUENZE DI EVENTI
Othello Strutture dati ed implementazione in prolog
Maria Teresa PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Tabelle hash.
Cercare informazioni sul Web. 5-2 Organizzazione dellinformazione tramite gerarchie Classificazione gerarchica Linformazione è raggruppata in un piccolo.
Unità Didattica 2 I Linguaggi di Programmazione
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
Usare Word di Antonio BERNARDO.
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
LINGUAGGI DI PROGRAMMAZIONE
AN FI Un denominatoe comune Lo stile funzionale Concetti fondamentali.
EasyDLX Università degli Studi di Bologna Facoltà di Ingegneria Un linguaggio che realizza un sottoinsieme dellInstruction Set Architecture del DLX Realizzato.
Dall’algoritmo al programma.
Progetto per lesame di Linguaggi e Modelli Computazionali LS Chiara Chiara Gualtieri.
A D IET – P ROGETTO PER L ESAME DI L INGUAGGI E M ODELLI C OMPUTAZIONALI LS Prof. Enrico Denti Sviluppato da Fabio Bracci – AA 2009/2010.
ANTLR V.3 Renzi Alberto.
Linguaggi e Modelli Computazionali M Prof. Enrico Denti
Progetto desame di Gianluca Gallo Linguaggi e modelli computazionali LM Prof. Enrico Denti.
Linguaggi e Modelli Computazionali LS - Prof E.Denti
Elementi di Informatica di base
CineMan Linguaggio per la descrizione della programmazione di cinema
Corso di Laurea Specialistica in Ingegneria Informatica Itinerari aerei Progetto per lesame di Linguaggi e Modelli Computazionali LS realizzato da Stefano.
LINGUAGGIO PER LA DESCRIZIONE DI ESERCITI E LA CREAZIONE DI LISTE PER IL GIOCO DI BATTAGLIE TRIDIMENSIONALI WARHAMMER FANTASY WarArmy Linguaggi e Modelli.
S ::= Formazione Formazione ::= NomeSquadra Team NomeSquadra ::= Team ::= Schema Tabellino | Tabellino Schema ::= Difesa Tabellino ::= ElencoTitolari.
Linguaggio per la generazione di biglietti da visita
Linguaggi e Modelli Computazionali a.a. 2009/2010
Gianfranco Zampolini Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.
Corso di Laurea Specialistica in Ingegneria Informatica Model Drive Applicazione per il pilotaggio di veicoli Esame di Linguaggi e Modelli computazionali.
Introduzione ai linguaggi formali e alle stringhe
Linguaggi e modelli computazionali LS
runhome Progetto di Linguaggi e Modelli Computazionali LS Luca Bueti
Corso di Laurea Specialistica in Ingegneria Informatica Previsione dei Consumi Elettrici = Progetto per lesame di Linguaggi e Modelli Computazionali LS.
Un linguaggio ed un interprete per il gioco Citadels
Progetto don’t you forget
Progetto Fireworks Simulatore di spettacoli pirotecnici
Tablabla Progetto di Valent Cristina
SQL File Manager un nuovo modo di gestire il filesystem….
Università degli Studi di Bologna Facoltà di Ingegneria Anno Accademico 2007/2008 Laurea Specialistica in Ingegneria Informatica Linguaggi e Modelli Computazionali.
Chess Game Visualizer Un interprete per Short Algebraic Notation Progetto per lesame di Linguaggi e modelli computazionali LS prof. Denti – A.A. 2007/08.
Linguaggi e modelli computazionali LS Manni Tiziano
ATTIVITÀ PROGETTUALE LINGUAGGI E MODELLI COMPUTAZIONALI L-M Un linguaggio per la descrizione di coreografie giocabili STUDENTE: BACCHILEGA SIMONE A.A 2013/2014.
Lezione 3 Struttura lessicale del linguaggio
Microsoft Word Interfaccia grafica
Sistemi e Tecnologie Informatiche Verifica di correttezza di un programma.
DRAUGHTS Linguaggi e Modelli Computazionali LS Linguaggio e interprete per effettuare una partita di dama inglese contro un’intelligenza artificiale Progetto.
Giannicola Spezzigu Accordo: sovrapposizione di 3 o più suoni Ogni sigla denota un accordo, ossia i suoni da cui esso è formato Accordi e.
Trading EToro Un linguaggio per descrivere e gestire operazioni di borsa Progetto di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti Mancini Laura.
Calendar Generator Progetto Linguaggi e Modelli Computazionali LS Docente: Enrico Dentidi: Alberto Renzi.
Progetto di Linguaggi e modelli computazionali M Prof. Enrico Denti Progetto di: Francesco Paci.
DerIntCalculator La calcolatrice per integrali e derivate Progetto di Linguaggi e Modelli Computazionali M Prof. Enrico Denti Realizzato da: Gabriella.
Linguaggi e Modelli Computazionali LS Anno Accademico 2007/2008 Alessio Della Motta Un linguaggio per descrivere partite di Maraffone: il gioco più popolare.
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Il pre-processore C modifica il testo del programma prima che esso raggiunga il compilatore vero e proprio. ANCORA SUL PRE-PROCESSORE C File sorgente.c.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
CAKE Ambiente per la scrittura e la riproduzione audio di ricette per torte Linguaggi e Modelli Computazionali LSElisabetta Visciotti.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Automi temporizzati.
Eye Computer Sistema per l'interazione con un computer dotato di controllo oculare Linguaggi e modelli computazionali LS Realizzato da: Ciavarella Primiano.
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Controlli. ActionSheet e Alert Selezionare un’azione In molte situazioni è necessario fornire all’utente una scelta fra varie azioni disponibili. per.
Transcript della presentazione:

Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti

Progettare un sistema che permetta di effettuare una partita a MemoryPlus: Progettare un linguaggio che sia in grado di esprimere le azioni topiche di una tale partita. Realizzare uninterprete per tale linguaggio che: accetti in input una stringa di caratteri; esegua unanalisi sintattica al fine di riconoscere se la stringa è una frase lecita del linguaggio; esegua le azioni corrispondenti alla semantica della frase immessa. 19 novembre 2009 Vito La Porta 2

MemoryPlus è un gioco di memoria Si gioca su una griglia di carte inizialmente coperte Si possono scegliere tre livelli di difficoltà: 4x4, 6x6, 8x8 Lo scopo del gioco è individuare le coppie di carte uguali Il giocatore, allinizio della partita, può scegliere di visualizzare le carte per un certo numero di secondi, con lobiettivo di memorizzare gli accoppiamenti Scelta una carta è possibile richiedere un aiuto: il sistema evidenzia la carta che si accoppia con quella selezionata più un certo numero di carte definito dallutente, tutte sempre coperte 19 novembre 2009 Vito La Porta 3

Il linguaggio dovrà quindi offrire i costrutti per: o iniziare una nuova partita: settare, se richiesto, il livello di difficoltà del gioco; settare, se richiesto, il tempo in cui saranno visualizzate le carte scelte ma non accoppiate settare, se richiesto, il tempo in cui inizialmente saranno visualizzate tutte le carte o scegliere la coppia di carte: definire la nozione di posizione della prima carta e della seconda carta; offrire la possibilità di richiedere laiuto 19 novembre 2009 Vito La Porta 4

Il linguaggio che si intende progettare deve essere: semplice: sono sufficienti poche frasi per soddisfare le richieste di unutente che usufruisce del sistema; descrittivo: le frasi lecite del linguaggio devono riflettere il pensiero del giocatore che in quel momento sta richiedendo una particolare azione; comprensibili a chiunque: non legate quindi a notazioni chiare solo a professionisti. 19 novembre 2009 Vito La Porta 5

Esempi di frasi lecite: start level beginner start level intemediate time 4 start level expert time 3 view 7 ::= | ::=start [ ] [ ] [ ] ::=level ::=time ::=view Scopo Inizia nuova partita 19 novembre 2009 Vito La Porta 6

Esempi di frasi lecite: choose b6 - a5 choose a3 help 4 ::= choose (- | ) ::= ::= help Azioni partita in corso ::=beginner | intemediate | expert ::= ["1"-"9"] { [ 0"-"9 ] } ::= ::=A | B | C | D | E | F | G | H ::=1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 Token 19 novembre 2009 Vito La Porta 7

Secondo la classificazione di Chomsky, la grammatica è di tipo 2, ovvero libera dal contesto, poiché le produzioni non sono regolari. Lassenza di self-embedding assicura però che il linguaggio generato è di tipo 3, ovvero regolare. Non sono presenti ε-rules: il linguaggio non comprende, quindi, la stringa vuota in quanto essa non avrebbe alcun significato rilevante. Gli starter symbols corrispondenti alle parti destre delle produzioni alternative sono disgiunti: la grammatica è, quindi, LL(1). Non è necessario ricorrere ai director symbols giacché nessun metasimbolo genera la stringa vuota. È possibile, allora, utilizzare lanalisi ricorsiva discendente. 19 novembre 2009 Vito La Porta 8

Linguaggio di programmazione: o Java 1.6.0_13 Generazione parser e scanner: o JavaCC 4.2 Generazione APT e visitor: o JTB Ambiente di sviluppo: o Eclipse Ambiente di test: o JUnit novembre 2009 Vito La Porta 9

La boundary MemoryPlus implementa linterfaccia grafica e mette a disposizione dellutente unarea di testo in cui è possibile definire le azioni desiderate. Il controller Partita verifica la correttezza delle azioni richieste e, in caso positivo, le esegue. Lentità Matrix implementa la griglia delle carte e memorizza lo stato di ciascuna di esse. 19 novembre 2009 Vito La Porta 10

Sono stati implementati due visitor: MemoryPlusGameVisitor: visita lAPT e inoltra al controller Partita le azioni rilevate al fine di verificarne la correttezza e, in caso positivo, lesecuzione. MemoryPlusTreeVisitor: visita lAPT e ne fornisce una rappresentazione grafica sotto forma di albero. Lunione degli alberi relativi ad una stessa partita determina lo storico della stessa. Ciascun visitor realizza una visita di tipo depth first avvalendosi del meccanismo del double dispatch. 19 novembre 2009 Vito La Porta 11

Area inserimento frasi Unione APT della partita in corso Evoluzione partita 19 novembre 2009 Vito La Porta 12

E stata implementatia una suite di test JUnit: TestController: verifica la correttezza dei metodi, il corretto andamento della partita e la capacità di riscontrare e notificare azioni illecite. 19 novembre 2009 Vito La Porta 13

Il principale limite è la mancanza di un sistema di punteggi, basato sul numero di tentativi e sul tempo utilizzato, che permetta di definire classifiche delle diverse partite. Possibili sviluppi futuri possono essere: Introdurre un sistema di punteggi Permettere allutente la possibilità di definire un limite di tempo entro cui completare una partita. Introdurre la possibilità di effettuare partite tra due giocatori. 19 novembre 2009 Vito La Porta 14