Progetto desame di Gianluca Gallo Linguaggi e modelli computazionali LM Prof. Enrico Denti.

Slides:



Advertisements
Presentazioni simili
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Advertisements

Evoluzione dei linguaggi di programmazione
Sintassi (prima parte)
Analizzatori Sintattici con Cup Giuseppe Morelli.
Parser Bottom UP Giuseppe Morelli. Parser Bottom UP Un parser Bottom Up lavora costruendo il corrispondente albero di parsing per una data stringa di.
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
SINCRONIZZAZIONE E TRASFERIMENTO VIA WEB DI IMMAGINI E DATI MULTIMEDIALI CON INFORMAZIONI GEOGRAFICHE E RAPPRESENTAZIONI CARTOGRAFICHE Laureando: Mitja.
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Sistemi basati su conoscenza Comunicazione basata sul linguaggio naturale Prof. M.T. PAZIENZA a.a
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Benvenuto nella presentazione “esercitazione” di Power Point.
Modelli simulativi per le Scienze Cognitive
Unità Didattica 2 I Linguaggi di Programmazione
nome: sequenza di caratteri usata per denotare un oggetto
Capitolo 1: Introduzione ai computer e a Java
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Ambienti di programmazione Stefano Cagnoni e Monica Mordonini.
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
Fondamenti di Comunicazione Digitale
Progetto per lesame di Linguaggi e Modelli Computazionali LS Chiara Chiara Gualtieri.
ANTLR V.3 Renzi Alberto.
Linguaggi e Modelli Computazionali M Prof. Enrico Denti
Progetto Programmazione III e Laboratorio Alunno: Amodeo Roberto Matricola: 0124/91 A.A. 2013/2014.
Linguaggi e Modelli Computazionali LS - Prof E.Denti
CineMan Linguaggio per la descrizione della programmazione di cinema
Facoltà di Ingegneria – Università di Bologna
Corso di Laurea Specialistica in Ingegneria Informatica Itinerari aerei Progetto per lesame di Linguaggi e Modelli Computazionali LS realizzato da Stefano.
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
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.
LA MACCHINA DI TURING Nel 1936 il matematico inglese A. M. Turing propose una definizione del concetto di algoritmo tramite un modello matematico di macchina.
Linguaggi e modelli computazionali LS
Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti.
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
L’ambiente di sviluppo Visual C++ Docente del corso Prof. Marcello CASTELLANO.
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
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
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.
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.
Scrivere e compilare programmi
Automi a pila (1) Un automa a pila (PDA) è M = (Q, S, G, d, q0, Z0, F) dove: Q insieme finito di stati S alfabeto finito di input 3. G alfabeto di pila.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
CAKE Ambiente per la scrittura e la riproduzione audio di ricette per torte Linguaggi e Modelli Computazionali LSElisabetta Visciotti.
Eye Computer Sistema per l'interazione con un computer dotato di controllo oculare Linguaggi e modelli computazionali LS Realizzato da: Ciavarella Primiano.
Informatica e Informatica di Base
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
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.
Transcript della presentazione:

Progetto desame di Gianluca Gallo Linguaggi e modelli computazionali LM Prof. Enrico Denti

Sono programmi per computer che simulano un ambiente nel quale i giocatori usano comandi testuali per istruire il personaggio della storia ad interagire con l'ambiente in cui si trova. (Da Wikipedia)Wikipedia Caratterizzate da: Scopo Ambiente di gioco Stanze esplorabili Oggetti Inventario Obiettivo: Il giocatore deve esplorare lambiente di gioco e interagire con esso fino al completamento dello scopo dellavventura.

Realizzare un interprete per avventure testuali Riconoscere le frasi di gioco Eseguire le azioni corrispondenti

Tipologie di azioni: Movimento Raccolta Vista Utilizzo

Tipologie di azioni: Movimento Raccolta Vista Utilizzo Esempi: vai cantina - vai in cantina – vai nella cantina cammina verso cantina spostati verso tetto – spostati sul tetto

Tipologie di azioni: Movimento Raccolta Vista Utilizzo Esempi: prendi stivali – prendi gli stivali raccogli martello – raccogli il martello

Tipologie di azioni: Movimento Raccolta Vista Utilizzo Esempi: guarda la spada - guarda inventario osserva spada esamina cantina

Tipologie di azioni: Movimento Raccolta Vista Utilizzo Esempi: usa spada – usa la spada usa la spada su cattivo – usa spada cattivo utilizza il martello – utilizza il martello con le mura

Azione ::= ( Movimento | Raccoglimento | Vista | Utilizzo ) ; Movimento ::= Compl_movimento Compl_movimento ::= ( )? TOKEN : { } Raccolta ::= Compl_oggetto Compl_oggetto ::= ( )? TOKEN : { } Vista ::= Compl_oggetto TOKEN : { } Utilizzo ::= Compl_oggetto ( Compl_uso )? TOKEN : { } Compl_uso ::= ( )? ( )? TOKEN : { } TOKEN : { )+> | }

La struttura delle produzioni è vincolata alla forma Aα, conα(VT VN)*,A VN Grammatica di Tipo 2 Nessun simbolo non terminale è self-embedded Linguaggio generato di Tipo 3 (Regolare) Nessun simbolo non terminale genera la stringa vuota; per ogni simbolo non terminale che appare nella parte sinistra di più produzioni, gli starter symbol appartenenti alle parti destre delle produzioni alternative sono disgiunti Grammatica LL(1)

Scopo Oggetti Stanze Inventario Stato Stanza corrente Introduzione

Un visitor che evolve stato del gioco in base allazione eseguita Azione Movimento

Un visitor che evolve stato del gioco in base allazione eseguita Azione Raccolta

Un visitor che evolve stato del gioco in base allazione eseguita Azione Vista

Un visitor che evolve stato del gioco in base allazione eseguita Azione Utilizzo

Utilizzo del PlayVisitor fino alla condizione di terminazione

Gioco cablato nel codice

Ogni gioco ha la sua intro, le sue stanze e i suoi oggetti FACILE: istanze Ma anche un determinato scopo......e ogni oggetto ha un uso diverso! DIFFICILE: comportamento

1.Lettura informazioni di gioco da file esterno 2.Creazione di classi specifiche 3.Istanziamento stanze e oggetti

Start ::= DescrizioneGioco StanzaIniziale Oggetti Stanze DescrizioneGioco ::= Introduzione CondizioneTerminazione Introduzione ::= "INTRODUZIONE:" Descrizione CondizioneTerminazione ::= "FINE:" JavaCode StanzaIniziale ::= "STANZAINIZIALE:" Oggetti ::= ( Oggetto )* Oggetto ::= NomeOggetto Descrizione JavaCode NomeOggetto ::= "OGGETTO:" Stanze ::= ( Stanza )+ Stanza ::= NomeStanza Descrizione "[" ( OggettoPresente )* "]" "[" ( StanzaRaggiungibile )* "]" NomeStanza ::= "STANZA:" OggettoPresente ::= StanzaRaggiungibile ::= Descrizione ::= JavaCode ::= TOKEN : { }

Parsing file di gioco Controllo sintattico parser Controllo semantico CheckSemanticVisitor Controllo sintattico codice java ToolProvider.getSystemJavaCompiler(); Costruzione classi di gioco CreateGameVisitor Compilazione gioco compiler.getTask() Avvio (reflection) Controllo tramite engine di gioco (chiamata ciclica al PlayVisitor)

Acquisite le stanze e gli oggetti dal file di gioco: La stanza iniziale deve essere stata definitiva; Gli oggetti contenuti nelle varie stanze devono essere stati definiti; I vicinati devono essere consistenti Stanze vicine devono essere definite Stanze vicine devono esserlo reciprocamente

Creazione codice classe oggetti

Creazione codice classe di gioco

Istanziazione oggetti e stanze

Grammatica di gioco più elastica Stanze customizzabili Eventi allingresso Eventi alluscita Eventi asincroni Esecuzione azioni entro certi tempi Mostri in movimento Porting in JavaScript

Progetto desame di Gianluca Gallo Linguaggi e modelli computazionali LM Prof. Enrico Denti