Metodologie di Programmazione: Hw2

Riccardo Silvestri

Homework 2

Il secondo homework è in questo archivio jar homework2.jar. Dopo averlo scaricato, dare il comando da terminale jar -xf homework2.jar, essendo posizionati nella directory che contiene il jar che supponiamo si chiami mydir. Le directory e file estratti in mydir sono i seguenti:

gapp/
gapp/package-info.java
gapp/ulg/
gapp/ulg/game/
gapp/ulg/game/board/
gapp/ulg/game/board/Action.java
gapp/ulg/game/board/Board.java
gapp/ulg/game/board/GameRuler.java
gapp/ulg/game/board/Move.java
gapp/ulg/game/board/PieceModel.java
gapp/ulg/game/board/Player.java
gapp/ulg/game/board/Pos.java
gapp/ulg/game/GameFactory.java
gapp/ulg/game/Param.java
gapp/ulg/game/PlayerFactory.java
gapp/ulg/game/util/
gapp/ulg/game/util/BoardHex.java
gapp/ulg/game/util/BoardOct.java
gapp/ulg/game/util/package-info.java
gapp/ulg/game/util/Probe.java
gapp/ulg/game/util/Utils.java
gapp/ulg/games/
gapp/ulg/games/HexFactory.java
gapp/ulg/games/MNKgame.java
gapp/ulg/games/MNKgameFactory.java
gapp/ulg/games/Othello.java
gapp/ulg/games/OthelloFactory.java
gapp/ulg/package-info.java
gapp/ulg/play/
gapp/ulg/play/MCTSPlayer.java
gapp/ulg/play/MCTSPlayerFactory.java
gapp/ulg/play/OptimalPlayer.java
gapp/ulg/play/OptimalPlayerFactory.java
gapp/ulg/play/RandPlayer.java
gapp/ulg/play/RandPlayerFactory.java
gapp/ulg/test/
gapp/ulg/test/PartialGrade.java

La spiegazione dell'homework è contenuta nei javadoc dei file. Se si vuole si può usare un IDE creando un project contenente tali file. Ad esempio, con IntelliJ IDEA si può creare il project scegliendo Import Project… dal menu File, successivamente si seleziona la directory mydir, poi si sceglie create project from existing sources e mantenendo sempre come nome del project e directory base la directory mydir (o qualunque sia il nome della directory che contiene gapp). Per evitare che il project veda l'archivio jar homework2.jar come una libreria, prima di creare il project togliere da mydir il file homework2.jar.

Migrazione da hw1 a gapp

  1. Nel progetto che contiene hw1 fare le seguenti refactoring:
  2. Creare un progetto che contiene i file contenuti in homework2.jar
  3. Copiare le implementazioni dei metodi delle classi/interfacce dell'homework 1 nei corrispondenti metodi delle classi/interfacce dell'homework 2.

Partial Grader

Versione definitiva del partial grader PartialGrade che dà fino a 40 punti e che sostituisce la versione del 12/5/2016 (cioè sostituisce il file sorgente gapp.ulg.test.PartialGrade.java).

Rettifica

C'è un errore nel javadoc del campo pieces di GamerRuler.Mechanics quello corretto è il seguente:

/** La lista immodificabile dei modelli dei pezzi usati nel gioco, senza
 * ripetizioni e in ordine prima il nero e poi il bianco */
public final List<P> pieces;

Pre-valutazione e Consegna

Gli homework sottomessi entro la mezzanotte del 2 Giugno 3 Giugno 2016 saranno pre-valutati (con il grade completo) e i risultati resi disponibili sulle pagine di status entro il 3 giugno 4 giugno. Attenzione che se si sottomette dopo la mezzanotte del 2 giugno 3 giugno ma prima che sia pubblicata la pre-valutazione, si può perdere la pre-valutazione dell'eventuale sottomissione precedente alla mezzanotte.

L'homework deve essere consegnato entro la mezzanotte del 9 Giugno 2016.

Bisogna consegnare un file jar che deve contenere tutti i file e directory del jar originale (ovviamente alcuni file saranno stati modificati). Il jar può contenere altri file e directory (package) ma i file aggiunti devono essere file sorgenti .java e non ci devono essere directory o file non .java o che non servono all'homework. Per creare il jar si dovrebbe usare il seguente comando essendo posizionati nella directory che contiene la directory di base dell'homework gapp, che coincide con il package base gapp:

jar cvMf homework2.jar gapp

Per controllare il contenuto del jar creato si può usare il comando:

jar -tf homework2.jar

La directory di base gapp deve coincidere con la directory dell'omonimo package base dell'homework. Questo significa che non ci devono essere file o directory al di fuori del package base. La dimensione massima consentita per il jar è 150KB.

La sottomissione del jar dell'homework si effettua tramite la pagina Consegna1. Si può controllare lo stato delle sottomissioni tramite la pagina Status.

Importante

Avvertenze

Non copiare. Gli homework consegnati saranno scrupolosamente confrontati anche con strumenti automatici. La prova di convalida sarà tanto più approfondita tanto più forti sono gli indizi di copiatura e tanto più alto è il punteggio.

3 Giu 2016


  1. Se non si è già registrati, prima di consegnare l'homework è necessario registrarsi tramite la pagina Registrazione. Una volta ottenuta la password si può procedere con la sottomissione.