代做JBlackJack代写Java程序
- 首页 >> DatabaseJBlackJack
Regole e Video Tutorial
Regole del gioco: https://it.wikipedia.org/wiki/Blackjack
Video tutorial: https://www.youtube.com/watch?v=G4VQXJH5xE8
Risorse
Online si trovano moltissime immagini di carte da gioco, e siti con campioni audio di pubblico dominio.
Consegna
1) Consegnare il diagramma delle classi (esclusivamente in formato PDF)
2) Il progetto eclipse del gioco, con tutte le cartelle relative a codice sorgente e risorse (la classe JBlackJack deve contenere il main del gioco) (esclusivamente in formato ZIP e NON RAR o altri formati)
3) la documentazione completa generata con javadoc (nella forma di una cartella contenuta nel progetto eclipse del punto 2)
4) Una relazione INDIVIDUALE (esclusivamente in formato PDF) che
descrive, almeno i seguenti punti IMPORTANTE: UNA
RELAZIONE DI UN PROGETTO SOFTWARE NON
HA UN LIMITE SUPERIORE NEL NUMERO DI
PAGINE (UNA RELAZIONE SERVE A VALORIZZARE IL VOSTRO LAVORO) :
a) Il numero di matricola
b) corso (presenza MZ o Teledidattica)
c) nome, cognome
d) le decisioni di progettazione relative a ognuna delle specifiche (vedi sotto)
e) I design pattern adottati, dove e perchè
f) l’uso degli stream
g) altre note progettuali e di sviluppo
Specifiche
1) Gestione del profilo utente, nickname, avatar, partite giocate, vinte e perse, livello …
2) Gestione di una partita completa con un giocatore umano contro 1/2/3 giocatori artificiali
3) Uso appropriato di MVC [1,2], Observer Observable e di altri design pattern. NON IMPLEMENTARE MVC e/o ObservableObserver non è considerata una scelta appropriata, l’adozione è richiesta come SPECIFICA DI PROGETTO.
4) Adozione di Java Swing [2] o JavaFX [3] per la GUI
5) Utilizzo appropriato di stream
6) Riproduzione di audio sample (si veda appendice AudioManager.Java)
7) Animazioni ed effetti speciali (anche se limitati)
Riferimenti
[1] https://it.wikipedia.org/wiki/Model-view-controller
[2] Java Swing e MVC Tutorial (Attenzione questa implementazione di MVC non prevede l’adozione di Observer Observable, mentre è richiesto di adottare anche Observer Observable per la gestione delle notifiche provenienti dal Model) :
https://www.youtube.com/watch?v=-NiKk9UqUoo&list=PLU8dZfh0ZIUn7-TDZfSmX9Q RnBgmdJJWD
Append ice (AudioManager.Java)
Provate una delle due versioni, il funzionamento dipende dalle distribuzioni di JRE.
import java.io.FileInputStream;
import java.io.FileNot Found Exception;
import java.io.IOException;
import java.io.InputStream;
import sun.audio.AudioPlayer;
import sun.audio.AudioStream;
public class AudioManager {
private static AudioManager instance;
public static AudioManager get Instance() {
if (instance == null)
instance = new AudioManager();
return instance;
}
private AudioManager() {
}
public void play(String filename) {
try {
InputStream in = new FileInputStream(filename);
AudioStream sound = new AudioStream(in);
AudioPlayer.player.start(sound);
} catch (FileNot Found Exception e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Esempio di riproduzione di un sample audio
AudioManager.get Instance().play("resources/audio/hit.wav");
Altra versione di AudioManager (JDK>9)
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
public class AudioManager {
private static AudioManager instance;
public static AudioManager getInstance() {
if (instance == null)
instance = new AudioManager();
return instance;
}
private AudioManager() {
}
public void play(String filename) {
try {
InputStream in = new BufferedInputStream(new
FileInputStream(filename));
AudioInputStream audioIn = AudioSystem.getAudioInputStream(in); Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
} catch (LineUnavailableException e1) {
e1.printStackTrace();
}
}
}