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 gapp
hw1
fare le seguenti refactoring:
hw1
con gapp.ulg
gapp.ulg.play
RandPlayer
nel package gapp.ulg.play
.homework2.jar
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
).
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. ↩