Esempi a.a. 2005-06, 2002-03

Package Java

Esempi di programmi in Java

Qui di seguito è raccolto il codice degli esempi discussi in classe. Selezionando l'icona che rappresenta il jar-file (JAR = Java ARchive), è possibile scaricare tutti i sorgenti e gli eventuali documenti di supporto relativi a ciascuno degli esempi; per espandere l'archivio di nome archive.jar basta eseguire la linea di comando "jar xvf archive.jar" (o utilizzare strumenti equivalenti che dipendono dal sistema in uso). Inoltre, la definizione di una classe può essere visualizzata direttamente selezionando il nome corrispondente nel testo a destra dell'icona.

La voce appunti, quando è presente, può eventualmente essere selezionata per visualizzare ulteriori note e diagrammi illustrativi del progetto nella forma di pagine HTML.

 

I parte

Rompicapo delle N Regine (versione preliminare semplificata)
Definizioni di classi:
Queen
Board
QueensSolver
Rompicapi ispirati al gioco degli scacchi
(versione base che non prevede il trattamento delle eccezioni)
Definizioni di classi:
Piece
Queen
Knight
Board
QueensSolver
Trattamento delle eccezioni relative al modello "chessboard"
Definizioni di classi:
ChessboardException
Piece
Queen
Knight
Board
Puzzling
Interfaccia grafica per l'utente
(versione preliminare da integrare con il package "chessboard")
Definizioni di classi:
ChessboardView
ApplicationPane
ApplicationStarter
QueensSolver

Immagini di alcuni pezzi:
               
Integrazione di vista (V), controllo (C) e modello (M)
(applicazione di uno schema MVC)
Definizioni di classi e interfacce:
ChessboardControl
UserItem
ChessboardView
PieceToolBar
ApplicationPane
ApplicationStarter
codice HTML
(utilizzo come applet)

II parte

Modello per il gioco del Nim
Definizioni di classi e interfacce:
Nim
NimPlayer
NimStrategy
NimGame
Simulazione interattiva del gioco del Nim
Definizioni di classi e interfacce:
NimUser
NimView
BoringStrategy
NimTest
codice HTML
(utilizzo come applet)
immagine di un fiammifero
(formato PNG)
NimReferee
(integrazione per più di 2 giocatori)
appunti
Programmazione client-server applicata al gioco del Nim
Definizioni di classi e interfacce:
RemoteAction
RemoteSetModel
RemoteUpdate
RemoteSuggest
RemoteOutcome
RemoteAck
Transceiver
RemoteNimUser
(server)
NimServer
RemoteNimGame
(client)
NimClient
ServerTest
(test)
Server2Test
ClientTest
appunti
Classi accessorie per avviare e monitorare server e client
(il codice non è parte del programma del corso):
ClientServerStarter
NetworkMonitor
SettingsPanel
ScalableStrategy
... e variazioni sul tema:
NimConsole
ConsoleTest
Creazione e ripristino di oggetti permanenti
attraverso il file system (Input/Output e Serialization)
Definizioni di classi:
IntList
IntListTest

 

Ulteriori esempio discussi negli a.a. 2007-08, 2008-09 e 2009-10

Simulazione del modello URM (Unlimited Register Machine)
Definizioni di classi:
URM
Program
Instruction
Z
S
T
J
Simulation
appunti
Interprete delle istruzioni in linguaggio URM
Definizioni di classi:
InstructionParser
Tokenization
...e domanda su StringTokenizer
InstructionException
Parsing
codice per il testing
soluzione senza gestione delle eccezioni
appunti
Interfaccia Utente per il modello URM e relativo parser
Definizioni di classi:
UserFrame
MessageArea
ProgramPanel
DataPanel
Simulation
codice per il testing
appunti
Ricapitolazione dei meccanismi alla base dell'istanziazione, del polimorfismo, ecc.
Definizioni di classi:
Pezzo
PezzoScacchi
Cavallo
OperationalModel
Simulazione del comportamento funzionale delle reti logiche
Definizioni di classi:
LogicComponent
Gate
AndGate
OrGate
NandGate
NorGate
NotGate
Node
CompositeComponent
SaveLogicNets
RestoreLogicNets
appunti
Strategia del gioco del Nim basata sull'apprendimento
Definizioni delle classi:
LearningStrategy
KnowledgeBase
LearningTest
appunti