Metodologie di Programmazione: Hw2
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.
hw1 a gapphw1 fare le seguenti refactoring:
hw1 con gapp.ulggapp.ulg.playRandPlayer nel package gapp.ulg.play.homework2.jarVersione 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).
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;
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.
import di package esterni (cioè esterni all'homework) che non siano strettamente della piattaforma Java, cioè evitare import di package esterni che non iniziano con java. o javax. (anche se poi non sono usati). Anche solo la presenza nei sorgenti di import di tale tipo (anche se non usati) può ostacolare la compilazione e quindi la valutazione dell'homework consegnato.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
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. ↩