Linguaggi e Modelli Computazionali a.a. 2009/2010

Slides:



Advertisements
Presentazioni simili
Introduzione all’HTML
Advertisements

DBMS (DataBase Management System)
Il linguaggio HTML.
FANTACAMPIONATO 2008/2009 8^ GIORNATA. RAMARRI – BIDONI 2-1.
1 Scoprire e capire HTML Creare semplici pagine WEB Maria Laura Alessandroni.
Access: Query semplici
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
Corso di Informatica A.A
HyperText Markup Language
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
Esercitazione.
Corso di PHP.
ARGONEXT Accesso Docente
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Progetto per lesame di Linguaggi e Modelli Computazionali LS Chiara Chiara Gualtieri.
Implementare un modello di dati
Lezione 12 Riccardo Sama' Copyright Riccardo Sama' Excel.
Alessandro Matri Alessandro Matri (Sant’Angelo Lodigiano, 19 agosto 1984) è un calciatore Italiano, attaccante Juventino e della Nazionale Italiana… Ha.
Andrea Spinelli Linguaggio HTML
Progetto desame di Gianluca Gallo Linguaggi e modelli computazionali LM Prof. Enrico Denti.
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.
FantaGoal Quando il calcio è di rigore… Fantasia Nicola Corso di Laurea in Informatica Università La Sapienza Roma A.A. 2003/2004.
S ::= Formazione Formazione ::= NomeSquadra Team NomeSquadra ::= Team ::= Schema Tabellino | Tabellino Schema ::= Difesa Tabellino ::= ElencoTitolari.
Linguaggio per la generazione di biglietti da visita
Gianfranco Zampolini Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.
Progettare un database
Linguaggi e modelli computazionali LS
Creare pagine web Xhtlm. Struttura di una pagina.
Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti.
Il linguaggio HTML Le pagine web sono file di testo scritte utilizzando il linguaggio HTML. I documenti HTML vanno racchiusi dentro una coppia di TAG.
Paper Based Prototipe Laboratorio di Basi di Dati 2 Università di Roma La Sapienza Tecnologie Informatiche Anno 2003/2004.
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
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.
HTML HyperText Markup Language Linguaggio per marcare un’Ipertesto
Prof. Reale Nicola Studentessa Parcesepe Federica
Hyper-Text Mark-Up Language
ATTIVITÀ PROGETTUALE LINGUAGGI E MODELLI COMPUTAZIONALI L-M Un linguaggio per la descrizione di coreografie giocabili STUDENTE: BACCHILEGA SIMONE A.A 2013/2014.
ASP.NET. …un po’ di ASP ASP (Active Server Pages) è una tecnologia Microsoft che consente di scrivere codice eseguibile (script) lato server, inserendo.
Corso Web CSV – Andiamo on-line 1 Andiamo on-line Corso di formazione Elementi base per la costruzione di un sito web.
FANTACAMPIONATO 2008/ ^ GIORNATA. CAIMANO COSMICO-BIDONI 1-1.
Lezione 3 Struttura lessicale del linguaggio
Lo schieramento iniziale delle otto big e valutazioni di Giovanni Gianniello FRANCESCO J. CESAR CHIELLINI FELIPE SIVIGLIA DONI GARGANO ZANETTI J. MORRONE.
CORSO Di WEB DESIGN prof. Leonardo Moriello
Creazione di pagine per Internet Brevi note a cura di Emanuele Lana
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Introduzione a Javascript
HTML 4.01 Apogeo. I tag di base Capitolo 1 I tag SintassiEsempi:
Tag FRAMESET. I frame sono un particolare tipo di struttura HTML, che consente di suddividere la finestra del browser in diversi riquadri distinti. Un'insieme.
IV D Mercurio DB Lezione 2
FANTACAMPIONATO 2008/2009 3^ GIORNATA. RAMARRI – PALEOZOSKY 1-1.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
PROGETTO… Internet Providers, registrazione del dominio Costruire una home page … e renderla visibile sul Web.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
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.
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.
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
Servizi Internet Claudia Raibulet
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
Creazione di pagine per Internet Brevi note a cura di Emanuele Lana
FANTACAMPIONATO 2008/ ^ GIORNATA. BIDONI – PALEOZOSKY 3-1.
Compilazione del Referto di gara
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Transcript della presentazione:

Linguaggi e Modelli Computazionali a.a. 2009/2010 FantaGenius Docente: Studente: Enrico Denti Gabriele Morlini

FantaGenius: Lo scopo Lo scopo di questa applicazione è aiutare il giocatore di Fantacalcio nelle attivita di routine, evitando di analizzare diverse pagine di quotidiani e siti internet, alla ricerca delle informazioni necessarie per essere vincenti in questo gioco. L'applicazione deve fornire quindi le informazioni reperite dai siti web, in maniera comoda per il giocatore attraverso un interfaccia grafica, e aiutarlo nelle decisioni. Ma cos’è il fantacalcio? Un breve accenno..

FantaGenius: Cos’è il Fantacalcio Il Fantacalcio è un gioco nel quale un gruppo di persone si sfidano con le proprie “fantasquadre”. Una “fantasquadra” è composta da 25 giocatori della serie A di squadre anche diverse. Le “fantasquadre” si affrontano in un campionato parallelo a quello della serie A. Le “fantasquadre” si affrontano in una serie di partite,per ognuna delle quali bisogna creare una formazione, in cui vince chi fa il punteggio più alto. Il punteggio della formazione schierata è determinata dalla somma dei voti  assegnati in pagella dai quotidiani e dai punti "bonus" e "malus"  .

FantaGenius: Le attivà di routine Prima di ogni giornata di campionato bisognava: Conoscere le formazioni probabili, per sapere chi gioca o meno. Conoscere le medie dei voti dei giocatori, per scegliere i giocatori migliori Creare una formazione. Dopo ogni giornata di campionato bisognava: Calcolare il punteggio di una partita fra due formazioni. Dal punteggio ricavare il risultato.

FantaGenius: Obiettivi Realizzare un parser in grado di prima di tutto di riconoscere una pagina web già esistente, fornendo solo le informazioni interessanti all’interprete, organizzandole in maniera adeguata, in una insieme di nodi/classi legate fra di loro. Realizzare un interprete in grado di utilizzare le informazioni fornite sotto forma di classi, per aiutare l’utente nelle attività di routine,attraverso una comoda interfaccia grafica.

FantaGenius: Linguaggi I linguaggi studiati quindi nel corso della realizzazione di questa applicazione, si riconducono all’ HTML (HyperText Markup Language). Al fine di poter estrarre le informazioni dalle pagine, sono state realizzate delle grammatiche che riconoscono i tipi e la posizione dei tag Html. Ogni grammatica può essere divisa in 2 parti: Una parte condivisa per riconoscere gli elementi costitutivi di un documento HTML. Una parte specifica per riconoscere le informazioni utili.

FantaGenius: I siti internet Le pagine web da cui si è partiti per scrivere le grammatiche: Per le formazioni probabili www.fantagazzetta.com/probabili-formazioni-serie-a.asp Per conoscere le medie dei voti dei giocatori, per scegliere i giocatori migliori: www.fantagazzetta.com/statistiche_portieri.asp www.fantagazzetta.com/statistiche_difensori.asp www.fantagazzetta.com/statistiche_centrocampisti.asp www.fantagazzetta.com/statistiche_attaccanti.asp Per i voti dei giocatori per il calcolo del punteggio di una partita. http://www.pianetafantacalcio.it/Voti_Ufficiali.asp

FantaGenius: Le grammatiche Per le formazioni probabili: www.fantagazzetta.com/probabili-formazioni-serie-a.asp Per conoscere le medie dei voti dei giocatori, per scegliere i giocatori migliori: www.fantagazzetta.com/statistiche_portieri.asp www.fantagazzetta.com/statistiche_difensori.asp www.fantagazzetta.com/statistiche_centrocampisti.asp www.fantagazzetta.com/statistiche_attaccanti.asp Per i voti dei giocatori per il calcolo del punteggio di una partita. http://www.pianetafantacalcio.it/Voti_Ufficiali.asp ProbFormGrammar.jj StatPortGrammar.jj StatGiocGrammar.jj VotiGrammar.jj

Le grammatiche: la parte comune La parte comune si tratta principalmente dello scanner che riconosce i tag HTML e li fornisce sottoforma di token al parser, e alcune produzioni della grammatica. TOKEN: <DIGIT>::= ["0"-"9"] <#StringElement>::= <DIGIT> | ["a"-"z"] | ["A"-"Z"] | "!" | "?" | ":" | "_"| "=" | "/" | "\"" | "\\" | "-" | ";" | "(" | ")" | "{" | "}" | "[" | "]" | "+" | "&" | "|" | "*" | "#" | "%" | "." | ","| "\'" | "@" | "\u00c3\u00a8" | … e atri caratteri particolari...> <STRING>::= <StringElement> (<StringElement> | " ")*> <SUBSTRING::= "\'" (<STRING> | "<" | ">")* "\'">

Le grammatiche: la parte comune La parte comune si tratta principalmente dello scanner che riconosce i tag HTML e li fornisce sottoforma di token al parser, e alcune produzioni della grammatica. TOKEN: <HTMLstart>::= "<html " <STRING> <END> <HTMLend>::= "</html>" <BODYstart>::= "<body>" <BODYend>::= "</body>" <HEADstart::= "<head>" <HEADend::= "</head>" <END>::= "/>" | ">"

Le grammatiche: la parte comune La parte comune si tratta principalmente dello scanner che riconosce i tag HTML e li fornisce sottoforma di token al parser, e alcune produzioni della grammatica. TOKEN: <TABLEstart>::= "<table " <STRING> ">" <TABLEend>::= "</table>" <TRstart>::= "<tr " <STRING> ">" | "<tr>" <TRend>::= "</tr>" <TDstart>::= "<td " <STRING> ">" | "<td>" <TDend>::= "</td>" e così via per tutti i possibili tag HTML...

Le grammatiche: la parte comune La parte comune si tratta principalmente dello scanner che riconosce i tag HTML e li fornisce sottoforma di token al parser, e alcune produzioni della grammatica. SCOPO: Html_page ::= Html_comment <HTMLstart> <HEADstart> Html_HEAD <HEADend> <BODYstart> Html_BODY <BODYend> <HTMLend> <EOF>

Le grammatiche: la parte comune La parte comune si tratta principalmente dello scanner che riconosce i tag HTML e li fornisce sottoforma di token al parser, e alcune produzioni della grammatica. PRODUZIONI: Html_HEAD ::= ( Html_head_element )* Html_head_element ::= <META>|<TITLE>|<LINK>| Html_script| Html_comment Html_BODY ::=( Html_body_element )* Html_body_element::=Html_comment | Html_href | Html_form | Html_ul | Html_table| Html_script | <BR>| <STRING> | Html_div |...e molti altri..

Le grammatiche: la parte comune La parte comune si tratta principalmente dello scanner che riconosce i tag HTML e li fornisce sottoforma di token al parser, e alcune produzioni della grammatica. PRODUZIONI: Html_img::=<IMGstart> ( <STRING> )+ <END> Html_strong::=<STRONGstart> ( <STRING> | <EM> | Html_img | Html_href | <BR> )* <STRONGend> Html_href::=<HREFstart> ( <STRING> | Html_strong | Html_img )* <HREFend> Html_span::=<SPANstart> ( <BR> | <STRING> | <BOLD> | Html_img | Html_strong )* <SPANend> ....E così via per tutti gli altri possibili elementi Html...

Le grammatiche: la parte comune La parte comune si tratta principalmente dello scanner che riconosce i tag HTML e li fornisce sottoforma di token al parser, e alcune produzioni della grammatica. PRODUZIONI: Html_div ::= <DIVstyleStart> ( Html_body_element )+ ( <DIVend> )? | ( <DIVgen> ( <STRING> )* <END> | "<div>" ) ( Html_body_element )+ ( <DIVend> )? |<DIVtitolo> <STRING> <DIVend> | …….. Altra Produzione diversa per ogni grammatica specifica di una certa pagina web

Le grammatiche: Probabili Formazioni In una pagina web ci sono informazioni: trascurabili e altre interessanti Html_div ::= <DIVstyleStart> ( Html_body_element )+ ( <DIVend> )? | ( <DIVgen> ( <STRING> )* <END> | "<div>" ) ( Html_body_element )+ ( <DIVend> )? |<DIVtitolo> <STRING> <DIVend> | <DIVprobabili> Probabili <DIVend>

Le grammatiche: Probabili Formazioni Le formazioni probabili sono composti da una serie di scontri Probabili ::= ( <DIVscontro> Scontro <DIVend> )+ <DIVstyleStart><IFRAME><DIVend> ( <DIVscontro> Scontro <DIVend> )+

Le grammatiche: Probabili Formazioni Ogni scontro contiene diverse informazioni: Scontro::= <DIVtitolo><DIVintestazione> <STRING><DIVend> <DIVorario> <STRING><DIVend> <DIVend> <DIVgen> <STRING> <END> Ultime <DIVend> <DIVteam> TeamSx <DIVend> <DIVteam> TeamDx <DIVend> <DIVgen> <STRING> <END> html_body_element

Le grammatiche: Probabili Formazioni Ogni scontro contiene diverse informazioni:come il nome della squadra, e informazioni specifiche su alcuni giocatori. Ultime ::= <BOLD> ( <BR> )+ <SPANstart> <STRING> <SPANend> <STRING> <BOLD> <BR> ( <STRING> | <SUBSTRING> )* ( <BR> )+ InfoGiocatori ( html_href ( <BR> )+ )? <SPANstart> <STRING> <SPANend> ( <BR> )+

Le grammatiche: Probabili Formazioni Informazioni specifiche su alcuni giocatori: InfoGiocatori ::= ( <DIVstyleStart> ( Squalificati | Infortunati | InDubbio ) <DIVend> ( <BR> )+ )* Squalificati ::= <SPANsqualificati> <BR> <STRING> Infortunati ::= <SPANinfortunati> InDubbio ::= <SPANinDubbio>

Le grammatiche: Probabili Formazioni Informazioni specifiche sui giocatori titolari e in panchina in uno scontro: TeamSx::= ( GiocatoreSx )+ <DIVpanchinaSx> <STRING> <DIVend> ( GiocatoreSx )+ GiocatoreSx::= <DIVsx> <STRING> <DIVend> <DIVruolo> <STRING> <DIVend> TeamDx::= ( GiocatoreDx )+ <DIVpanchinaDx> <STRING> <DIVend> ( GiocatoreDx )+ GiocatoreDx::=<DIVruolo><STRING><DIVend> <DIVdx> <STRING> <DIVend> Nome giocatore

Le grammatiche: Probabili Formazioni Token specifici delle probabili formazioni: <SPANsqualificati>::= <SPANstart> "Squalificati" <SPANend> <SPANinfortunati>::=<SPANstart> "Infortunati" <SPANend> <SPANinDubbio>::= <SPANstart> "In dubbio" <SPANend> <DIVprobabili>::= "<div id=\"probabili\">" <DIVscontro>::= "<div class=\"scontro \">" <DIVteam>::= "<div class=\"team\">" <DIVsx>::= "<div class=\"sx\">" <DIVpanchinaSx>::= "<div class=\"panchinasx\">" <DIVdx>::= "<div class=\"dx\">" <DIVpanchinaDx>::= "<div class=\"panchinadx\">" <DIVruolo>::= "<div class=\"ruolo\">" <DIVintestazione>::= "<div class=\"intestazione\">" <DIVorario>::= "<div class=\"orario\">"

Le grammatiche: Statistiche In una pagina web ci sono informazioni: trascurabili e altre interessanti Html_div ::= <DIVstyleStart> ( Html_body_element )+ ( <DIVend> )? | ( <DIVgen> ( <STRING> )* <END> | "<div>" ) ( <DIVend> )? |<DIVtitolo> <STRING> <DIVend> | <DIVstat> Stat <DIVend> <DIVstat>::= "<div class=\"stat-box\">"

Le grammatiche: Statistiche Le statistiche di tutti i giocatori di un ruolo sono contenuti all'interno di una tabella: Stat ::= <TABLEstart> Giocatori<TABLEend> Ogni riga contiene i dati di un giocatore: Giocatori ::= ( <TRstart> Giocatore <TRend> )+

Le grammatiche: Statistiche Ogni statistica di un giocatore del campo,ovvero di tutti escluso il portiere, ha i seguenti dati: Giocatore ::= <TDstart> <STRING> <TDend> <TDstart> <HREFstart> <STRING> <HREFend> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> ( <STRING> | <DIGIT> ) <TDend> <TDstart> ( <STRING> | <DIGIT> ) <Tdend> <TDstart> <DIGIT> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <STRING> <TDend> ID Giocatore Cognome Giocatore Partite Giocate Media Voto Media Voto con Bonus/Malus Media Voto prec. con Assist Goal Fatti Rigori a segno Rigori sbagliati Assist Ammonizioni Espulsioni Squadra Quotazione

Le grammatiche: Statistiche Mentre il portiere ha i seguenti dati: Giocatore ::= <TDstart> <STRING> <TDend> <TDstart> <HREFstart> <STRING> <HREFend> <Tdend> <TDstart> <DIGIT> <Tdend> <TDstart> ( <STRING> | <DIGIT> ) <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <DIGIT> <TDend> <TDstart> <STRING> <TDend> ID Giocatore Cognome Giocatore Partite Giocate Media Voto Media Voto con Bonus/Malus Gol subiti Rigori parati Ammonizioni Espulsioni Squadra Quotazione

Le grammatiche: Voti Per i voti si è utilizzato un sito diverso,più orientato alle tabelle, questo ha implicato una grammatica un po' più rigida e meno leggibile: Html_div ::= ...sempre uguale... | <DIVvoti> <TABLEstart> Voti <TABLEend> <DIVend> Voti ::= {<TRstart> <TDstart> Html_table <TDend> <TRend>}3 <TRstart> ( <TDstart> Html_body_element <TDend> )+ <TRend>....

Le grammatiche: Voti .... <TRstart> <TDstart> Squadre <Tdend> <TRend> <TDstart> Html_table <Tdend> <Trend> Squadre::= <BR> ( Html_script )+ Html_table Html_div <BR> ( Squadra )+ <BR> Squadra ::= <TABLEstart>....<TABLEend> Giocatori

Le grammatiche: Voti Giocatori ::= ( <TABLEstart> <TRstart> Giocatore <TRend> ( <TRstart> ( <TDstart> html_body_element <TDend> )+ <TRend> )* <TABLEend> )+ <BR>

Le grammatiche: Voti Il voto di un giocatore ha 29 possibili attributi/colonne..il risultato è una grammatica un po' prolissa.. Giocatore ::= <TDstart> ( <STRING> | <IMGstart> <END> )* <Tdend> <TDstart> ( <IMGpor> | <IMGdif> | <IMGcen> | <IMGatt> | <IMGstart> <END> )* <TDend> <TDstart> ( <HREFstart> <STRING> <HREFend> | <STRING> ) <TDend> <TDstart> ( <STRING> | <IMGamm> | <IMGesp> )* <Tdend> <TDstart> ( <STRING> | <DIGIT> ) <TDend> ....

Grammatica e Linguaggio: Tipologia Grammatica di tipo 2(context‐free) secondo Chomsky perchè le produzioni sono vincolate alla forma:: A → α con A ε VN e α ε (VN U VT)+ Linguaggio di tipo 2 perché sono presenti produzioni che contengono self-embedding: A → α1 A α2 con A ε VN e α1, α2 ε (VN U VT)+ LL(1)perchè l’insieme degli director-symbols corrispondenti alle parti destre delle produzioni alternative di uno stesso metasimbolo sono fra loro disgiunti;

Grammatica e Linguaggio: Tipologia Grammatica di tipo 2(context‐free) secondo Chomsky perchè le produzioni sono vincolate alla forma:: A → α con A ε VN e α ε (VN U VT)+ Linguaggio di tipo 2 perché sono presenti produzioni che contengono self-embedding: A → α1 A α2 con A ε VN e α1, α2 ε (VN U VT)+ LL(1)perchè l’insieme degli director-symbols corrispondenti alle parti destre delle produzioni alternative di uno stesso metasimbolo sono fra loro disgiunti; All’interno di un documento HTML potrei avere una serie di elementi di tipo DIV annidati: Html_body_element::= <STRING>|…| Html_div Html_div ::= “<div>”( Html_body_element )+ ( <DIVend> )? Es.:<div><div>…<div>Ciao!!</div>…</div></div> All’interno di un documento HTML potrei avere una serie di elementi di tipo DIV annidati: Html_body_element::= <STRING>|…| Html_div Html_div ::= “<div>”( Html_body_element )+ ( <DIVend> )? Es.:<div><div>…<div>Ciao!!</div>…</div></div> All’interno di un documento HTML potrei avere una serie di elementi di tipo DIV annidati: Html_body_element::= <STRING>|…| Html_div Html_div ::= “<div>”( Html_body_element )+ ( <DIVend> )? Es.:<div><div>…<div>Ciao!!</div>…</div></div>

FantaGenius: La squadra Per salvare e caricare una squadra è stato realizzato uno specifico linguaggio di tipo 3(non c'è self-enbedding),descritto dalla seguente grammatica , gestita tramite la funzione “.split(String sep)” della classe String: Squadra:=ListaGiocatori"\n" ListaGiocatori"\n" ListaGiocatori ListaGiocatori::=(Giocatore ";" ListaGiocatori)|Giocatore ";" Giocatore::=Nome","Squadra Nome::=<STRING> Squadra::=<STRING> MiaSquadra.txt: Antonioli,CESENA;Cavalieri,CESENA;Handanovic,UDINESE; Criscito,GENOA;Samuel,INTER;Nesta,MILAN;Cassetti,ROMA;Dias,LAZIO;dellafiore,PARMA;Felipe,FIORENTINA;Grava,NAPOLI; Cambiasso,INTER;Pirlo,MILAN;alvarez e. a.,BARI;Colucci,CESENA;Giovinco,PARMA;Marchionni,FIORENTINA;Jimenez,CESENA;Marques,PARMA; Gilardino,FIORENTINA;Cassano,SAMPDORIA;Del Piero,JUVENTUS;pozzi,SAMPDORIA;paloschi,PARMA;marilungo,SAMPDORIA;

FantaGenius: La formazione Per salvare e caricare una formazione è stato realizzato uno specifico linguaggio di tipo 3(non c'è self-embedding) descritto dalla seguente grammatica, gestita tramite la funzione “.split(String sep)” della classe String: Formazione_S::="titolari:\n"Formazione "panchina:\n"Formazione Formazione:=Portiere"\n" ListaGiocatori"\n" ListaGiocatori Portiere::=<STRING> ListaGiocatori::=(<STRING> "," ListaGiocatori) |<STRING> MiaFormazione.txt: titolari: Antonioli Nesta,criscito,samuel,Dias Giovinco,Pirlo,Cambiasso Cassano,gilardino,del Piero panchina: Handanovic Cassetti,grava Marques,colucci Pozzi

FantaGenius: Strumenti utilizzati Linguaggio di programmazione: JavaSE 1.6 Generazione automatica di scanner e parser: JavaCC 5.0 Interfaccia grafica NetBeans 6.8 Ambiente di sviluppo: Eclipse 3.5

FantaGenius: Architettura Package: App: Classi necessarie all’interfaccia grafica. Elements: Classi a cui corrispondo le principali entità del sitema. Parser: Classi relative allo scanner ed al parser create in automatico da javacc.

FantaGenius: Architettura

FantaGenius: Architettura

FantaGenius: Test L'applicazione è già stata utilizzata nelle ultime due giornate di campionato di serie A. I giocatori che l'hanno provato sono rimasti soddisfatti.

FantaGenius: Interfaccia grafica Colori per rappresentare stato giocatori: Verde: titolare Azzurro: panchina Rosso: squalificato Grigio: infortunato Bianco: non esistente

FantaGenius: Interfaccia grafica

FantaGenius: Possibili sviluppi Utilizzo di tuProlog per calcolare il risultato di una partita e calcolare una formazione ideale in maniera più “intelligente” e flessibile. Unificare in un unico file la parte comune delle 4 grammatiche riguardanti i siti web. Possibilità di modificare alcuni parametri dell'applicazione, attraverso l'interfaccia grafica.