| |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[Progetto] Pac-Man Clicca QUI per vedere il messaggio nel forum |
killah |
qualcuno sa quando uscirà il progetto d giugno x gli appelli di giugno e luglio?! |
Pupino |
Indicativamente penso per metà Giugno! :D |
AL85 |
dal sito del prof:
ATTENZIONE!! Per poter sostenere gli scritti di giugno o luglio '08 È NECESSARIO consegnare il progetto che verrà proposto alla fine di maggio ed ottenere, per tale progetto, valutazione positiva |
matt |
siamo al 28 maggio oggi ....
l'appello di giugno è il 16, e se è come dicono dovresti consegnare il progetto prima di questa data.
Cosi come stanno le cose adesso avremmo 2settimane per svolgere il progetto.
non ne avevano date 3 di settimane per il progetto html? |
black.jack |
alt..non diamo notizie allarmanti.
le settimane a disposizione sono state e saranno sempre 3.
inoltre se guardiamo sul sito http://homes.dsi.unimi.it/~mereghet...t/progetti.html
notiamo che anche nel progetto scorso, la data di consegna era l'11, metre l'appello il 4.
Secondo me uscirà a giorni, probabilmente anche i primi del mese. |
matt |
Hai probabilmente ragione.
L'avviso sulle condizioni per sostenere l'esame è errato, o vale solo per quello di luglio.
non ho mai capito comunque perchè non possono tenere esame e progetto separati. (ovvero tenere valido ad ogni modo l'esame passato) |
Supernick |
Scusate ma ci sarà una presentazione ufficiale come per il progetto scorso? Oppure ci sarà solo la consegna online?
Grazie |
matt |
Credo solo on-line..
Comque tornando sul discorso date, gli orali li sono segnati in data 23 giugno.
Se è come dice black.jack che uscirà i primi del mese e ci daranno 3 settimane per farlo (20gg), dovrebbero correggerci il progetto in 1 o 2 giorni
hmmmmmmmmmmmm |
AnTHrAx |
bho... cmq sia io son da solo... se c'è uno spazietto in qualche gruppo mi contattate??
il mio indirizzo msn è aimer71@hotmail.com :P |
black.jack |
è uscito..2 giorni fa =\ |
Ste Ramone |
Originally posted by black.jack
è uscito..2 giorni fa =\
....... e dove sta scritto? sul sito di mereghetti niente, sul sito di cazzola niente...
edit: alt, non dirmi che è quello che qualche babbo ha scritto "Sessioni di Giugno e Luglio 2007" mentre è del 2008 come dice il pdf.. |
sturo |
qualcuno ha idea di come farlo e vorrebbe accogliermi in gruppo??non so minimamente da dove iniziare,mi manca solo ilo progetto per finire informatica e sono 4 anni che non riesco a consegnarlo in tempo...per favore qualche anima pia... |
Pupino |
Per laurearmi mi manca solo questo progetto...
Qualcosa so fare, qualcosa no... Diamoci tutti una mano e vediamo di tirarcelo fuori dalle palle!! Quindi per ogni dubbio o chiarmimento troviamoci qui!
:birrozza: |
AL85 |
Originally posted by Pupino
Per laurearmi mi manca solo questo progetto...
Qualcosa so fare, qualcosa no... Diamoci tutti una mano e vediamo di tirarcelo fuori dalle palle!! Quindi per ogni dubbio o chiarmimento troviamoci qui!
:birrozza:
tirare fuori pac man dalle palle è come sparare fuori un calcolo renale! AUHAUHAUHA |
Pupino |
è dura davvero.... :( |
bonny88 |
cerchiamo di farcelaaaaa |
sHADOw001 |
Quindi per ogni dubbio o chiarmimento troviamoci qui!
Vediamo, inizio io:il testo, come si poteva immaginare, non è chiarissimo e non spiega in modo esaustivo come iniziare (almeno per quanto mi riguarda)!Quando parla delle limitazioni del gioco, alla voce "Pac-man si muove secondo una logica predeterminata e senza l’intervento del giocatore" intende dire che bisogna simulare una partita, no? Cioè il prof caricherà le nostre classi in una cartella con un suo file di testo contenente una configurazione iniziale su cui pac-man dovrà agire, no? :pensa:
In linea di massima mi sembra (senza aver ancora letto in modo approfondito) più fattibile rispetto al validatoreHTML (forse perchè non l'ho ancora iniziato sigh)!!
Ciauz :ciao: |
Pupino |
Tu dai la configurazione iniziale, poi in base alle regole che ci sono scritte i vari omini si muoveranno come detto e ci sarà la partita...
:D |
Dattebayo |
Originally posted by Pupino
Tu dai la configurazione iniziale, poi in base alle regole che ci sono scritte i vari omini si muoveranno come detto e ci sarà la partita...
:D
No, da quel che ho capito io la configurazione iniziale non sei tu a stabilirla, ma sarà il prof. che caricherà un file attraverso un'istruzione di Maze contenente la configurazione... Tu devi "solo" programmare tutto il resto della partita :-D |
Dattebayo |
cmq questo progetto mi sembra decisamente piu' carino di quello del validatore html... no?
la parte piu' difficile, secondo me, rimane la classe Maze! |
sHADOw001 |
Originally posted by Dattebayo
cmq questo progetto mi sembra decisamente piu' carino di quello del validatore html... no?
Assolutamente!
Si il primo problema è capire bene come interagire con questo file di testo.Personalmente ho difficoltà ad avere una visione d'insieme della dinamica dei vari oggetti in gioco, ma penso che man mano che il progetto si evolve tutto diventerà più chiaro. |
ufficiale86 |
Ciao ragazzi dalla prima occhiata che ho dato al progetto il noccio del progetto sta nella giusta implementazione della classe astratta Behavior(comportamento oggetti mobili) e nelle sue sottoclassi.
Qualcuno di vuoi può darmi 1dritta su come ha implementato il costruttore di behavior?ke parametri ha messo??grazie a tutti:-D |
Pupino |
Ma fatemi capire... in behavior io devo specificare come si muovono i vari omini del gioco..
Quindi è unicamente lì che descrivo il loro movimento e poi richiamo la loro move() all' interno della loro singola classe?
Ovvero dentro la classe Pacman faccio solo un richiamo alla PacmanBehavior per farlo muovere?
:( |
Dattebayo |
Non proprio... Behavior è astratta, i vari comportamenti li devi definire nelle 5 sottoclassi concrete |
sturo |
io, per quanto possa essere utile, vedo di informarmi su qualcosa di piu concreto e non appena saprò qualcosa posterò tutte le informazioni che saranno in mio possesso..
di più per ora non sono in grado di fare
maledetto progetto!!!!non bastavano 3 compitini...
:evil::evil::evil::evil::evil::evil::evil::evil::e
vil::evil::evil::evil::evil::evil: |
Pupino |
Originally posted by ufficiale86
Qualcuno di vuoi può darmi 1dritta su come ha implementato il costruttore di behavior?ke parametri ha messo??grazie a tutti:-D
Quoto!
Che costruttore si usa? Poi per i comporamenti ci sto ancora studiando su.. appena produco qualcosa vi dico! :D |
aberth |
secondo me era più facile il validatore... |
aberth |
comunque, se qualcuno vuole collaborare, io non son un gran chè con java, mi contatti su msn aberthparise@hotmail.com |
sturo |
qualcuno ha bisogno di un membro per gruppo progettopac-man?? |
Pupino |
Noi abbiamo un unica classe ghost... Però ci sono 4 tipi di ghost differenti, con i loro 4 movimenti...
Come fate ad identificare i 4 ghost? Nel senso, c'è la classe ghost, sottoclasse di mobile element.
A parte c'è behavior con le 5 sottoclassi dei movimenti..
Ma come identificare il Blinky per esempio? :? |
ufficiale86 |
i fantasmini li riconosci a seconda della lettera ke hanno assegnata...ad esempio 'r' è blinky(fantasma rosso)..però non so neanke io come fare il tutto....mi sono bloccato alla classe Behavior ke deve interagire con le sottoclassi di MobileElement....non capisco proprio l'attributo Behavior bev della classe MobileElement a cosa serve e come usarlo per i comportamenti....appena qualcuno sa qualcosa può aiutarmi??:(grazie mille:) |
Pupino |
Originally posted by ufficiale86
i fantasmini li riconosci a seconda della lettera ke hanno assegnata...ad esempio 'r' è blinky(fantasma rosso)..però non so neanke io come fare il tutto....mi sono bloccato alla classe Behavior ke deve interagire con le sottoclassi di MobileElement....non capisco proprio l'attributo Behavior bev della classe MobileElement a cosa serve e come usarlo per i comportamenti....appena qualcuno sa qualcosa può aiutarmi??:(grazie mille:)
siamo in due.... qualcuno ha idee??
Ma tu le sottoclassi come Inky e così via le hai già create? |
ufficiale86 |
si ma vuote per ora..non so come fare il costruttore...cioè non so ke parametro dargli |
Pupino |
Originally posted by ufficiale86
si ma vuote per ora..non so come fare il costruttore...cioè non so ke parametro dargli
E fare una cosa del genere?
code:
public abstract class Behavior{
private String nome;
public Behavior (String s){
nome=s;
}
e di seguito i metodi da implementare nelle sottoclassi
No?
|
ufficiale86 |
Tu dici che la String s passata come parametro ad esempio è 'r' per il fantasma rosso così crea il costruttore giusto?? |
Pupino |
Originally posted by ufficiale86
Tu dici che la String s passata come parametro ad esempio è 'r' per il fantasma rosso così crea il costruttore giusto??
Io l' ho pensata così... mi sembra un buon modo per identificare la cosa e avere un costruttore....
Ci sto ragionando, non sembra male.. |
black.jack |
penso che non ci sia bisogno di una string s per capire il tipo di behavior...non andrai mai a istanziare un oggetto di tipo behavior, ma istanzi oggetti di tipo PacManBehavior...PinkyBehavior...ecc..
non farai mai PacManbehavior x = newPackmanbehavior(string s)
cioè non ha senso, sai gia che instanzi pacmanbehav senza bisogno di metterci una stringa s.
penso/credo che la cosa + logica sia quella di rendere la classe Ghost astratta e creare una classe per ogni fantasmino.
ogni mobilElement ha al suo interno una istanza di tipo Behavior, quindi per esempio, per calcolare il percorso fatto da pacman, all'interno della classe PacMan dovrai richiamare i metodi di bev, che è di tipo Behavior per l'appunto, quindi contiene i metodi di PacManBehavior...
io la vedo così..poi magari sto dicendo cagate :D |
ufficiale86 |
Ciao raga ho un problema....voi come avete fatto a controllare se ad esempio pacman ha il muro alla sua destra,in alto o in basso?????
PacMan ha bev ke rappresenta il suo comportamento, ma come faccio a dirgli d guardare nelle 4direzioni??grazie mille a tutti:D |
ufficiale86 |
raga ho chiesto al prof e mi ha detto che non si deve creare 1classe x ogni fantasmino, ha detto ke è inutile.
Bisogna trovare 1altra strada cavolo.... |
Ste Ramone |
se qualcuno si trova con un posto libero in gruppo mi può piemmare? gracias |
Miroku |
Ragazzi,
qualcuno ha capito cosa deve fare e l'utilità del metodo reload() nella classe Maze???
Ok che deve ricaricare l'ultima configurazione di filename, ma poi? dove la salvi? che te ne fai? |
Pupino |
Reload penso sia una cosa in piu... te la fa fare per vedere come implementi quel metodo...
Io invece non riesco a capire i movimenti dei vari personaggi...
Per esempio, pacman ora è sulle coordinate (1,2).
Qualcuno gentilmente potrebbe dirmi secondo lui che movimenti dovrebbe fare per seguire le specifiche del progetto???
Io dico..
(1,2) (1,1) (0,1) (1,1) (2,1) (3,1) (2,1) (1,1) (0,1) ed entra in sto loop..
|
Lorux |
visto che avevo molti,moltissimi dubbi ho fatto un po' di domande direttamente al cazzola,eccovele
1-Quando Pacman prende una Pill,la direzione dei fantasmi cambia come
nella descrizione del gioco(invertono il senso di marcia) o rimane uguale?
rimane uguale
> 2-Come dobbiamo gestire la collisione tra 2 Ghost?si possono
> sovrapporre o cambiano direzione come se avessero davanti un wall?
me ne ero dimenticato, direi, come se incontrassero un muro, al
proposito ho aggiornato il testo.
> 3-Nel caso in cui i Ghost cambiassero direzione come se avessero
> davanti un Wall,che succede se un ghost si trova chiuso ad esempio tra
> 3 Wall e 1 altro ghost?
rimane fermo, l'altro cambia direzione e al turno successivo potrà
muoversi
> 4-E nel caso in cui si possano sovrapporre,quale dei 2(o più) Ghost
> figurerebbe nella stringa in output?
caso inesistente
> 5-Nel caso precedente(o anche nel caso Ghost sopra Pill o Dot)non si
> avrebbe una perdita di informazioni in caso di backup dalla stringa?
solo sul backup/visualizzazione sta a voi non perdere le pillole/puntini
> 6-Il girarsi e spostarsi quando si ha davanti un muro è parte dello
> stesso turno o ci vuole un turno per girarsi e quello dopo per
> spostarsi?
stesso turno
> 7-Che succede se la partita non finisce mai?(girando sempre dalla
> stessa parte è possibile che il Pacman e i Ghost facciano sempre lo
> stesso percorso e non si incontrino mai)
control-c, situazione che direi essere la norma
> 8-In caso di Pacman mangiato dal Ghost,il pacman ricompare al turno
> successivo o ricompare non appena il posto in cui deve ricomparire è
> libero?
al termine del turno successivo quando il posto è libero.
> 9-Nel caso in cui ricompaia al turno successivo anche se il posto è
> occupato da un altro fantasma,perde subito un altra vita no?
sì se fosse occupato sì.
------vi prego di postare qui eventuali domande che avete rivolto ai prof(sia cazzola che malchiodi) |
il_gege |
effettivamente anche io l'avrei vista così...poi mi sono detto :" vabbè, verrà prima o poi mangiato da un fantasma.." asd |
Lorux |
> 1-Quando Pacman prende una Pill,la direzione dei fantasmi cambia come
> nella descrizione del gioco(invertono il senso di marcia) o rimane
> uguale?
rimane uguale
> 2-Come dobbiamo gestire la collisione tra 2 Ghost?si possono
> sovrapporre o cambiano direzione come se avessero davanti un wall?
me ne ero dimenticato, direi, come se incontrassero un muro, al
proposito ho aggiornato il testo.
> 3-Nel caso in cui i Ghost cambiassero direzione come se avessero
> davanti un Wall,che succede se un ghost si trova chiuso ad esempio tra
> 3 Wall e 1 altro ghost?
rimane fermo, l'altro cambia direzione e al turno successivo potrà
muoversi
> 4-E nel caso in cui si possano sovrapporre,quale dei 2(o più) Ghost
> figurerebbe nella stringa in output?
caso inesistente
> 5-Nel caso precedente(o anche nel caso Ghost sopra Pill o Dot)non si
> avrebbe una perdita di informazioni in caso di backup dalla stringa?
solo sul backup/visualizzazione sta a voi non perdere le pillole/puntini
> 6-Il girarsi e spostarsi quando si ha davanti un muro è parte dello
> stesso turno o ci vuole un turno per girarsi e quello dopo per
> spostarsi?
stesso turno
> 7-Che succede se la partita non finisce mai?(girando sempre dalla
> stessa parte è possibile che il Pacman e i Ghost facciano sempre lo
> stesso percorso e non si incontrino mai)
control-c, situazione che direi essere la norma
> 8-In caso di Pacman mangiato dal Ghost,il pacman ricompare al turno
> successivo o ricompare non appena il posto in cui deve ricomparire è
> libero?
al termine del turno successivo quando il posto è libero.
> 9-Nel caso in cui ricompaia al turno successivo anche se il posto è
> occupato da un altro fantasma,perde subito un altra vita no?
sì se fosse occupato sì.
----se avete fatto domande ai prof per favore postatele con le risposte!-------------- |
Pupino |
Originally posted by Lorux
> 8-In caso di Pacman mangiato dal Ghost,il pacman ricompare al turno
> successivo o ricompare non appena il posto in cui deve ricomparire è
> libero?
al termine del turno successivo quando il posto è libero.
> 9-Nel caso in cui ricompaia al turno successivo anche se il posto è
> occupato da un altro fantasma,perde subito un altra vita no?
sì se fosse occupato sì.
Non capisco...
Lui dice che ricompare al termine del turno successivo quando il posto è libero. Quindi non ha senso la domanda successiva, il posto deve essere libero ha detto sopra!!!! Ho capito male io??
E poi... come si fa a tener traccia che in una stessa posizione di un array ci sono due elementi (ghost + pallini)??? :shock: |
Lorux |
Originally posted by Pupino
Non capisco...
Lui dice che ricompare al termine del turno successivo quando il posto è libero. Quindi non ha senso la domanda successiva, il posto deve essere libero ha detto sopra!!!! Ho capito male io??
E poi... come si fa a tener traccia che in una stessa posizione di un array ci sono due elementi (ghost + pallini)??? :shock:
penso voglia dire
se è libero riappare al termine del turno successivo
se c'è il fantasma perde una vita
x l'altra faccenda..ovviamente ti salvi l'elemento sotto da qualche parte..
ho una domanda che può sembrare banale,xò la faccio lo stesso..
la simulazione termina quando pacman mangia tutte le pillole e tutti i dot? |
Pupino |
Originally posted by Lorux
penso voglia dire
se è libero riappare al termine del turno successivo
se c'è il fantasma perde una vita
x l'altra faccenda..ovviamente ti salvi l'elemento sotto da qualche parte..
ho una domanda che può sembrare banale,xò la faccio lo stesso..
la simulazione termina quando pacman mangia tutte le pillole e tutti i dot?
Quindi muore. Turno in cui si muovono ancora i fantasmi (perchè sennò morirebbe ancora). Riappare.
Giusto? :D
Salvare l' elemento da qualche parte??? Idee? :?
In teoria termina quando pacman mangia tutto, ma dubito accadrà spesso... :asd: |
Pupino |
Dove siete tutti???????
Come avete gestito il movimento del pacman? Io un' idea ce l' ho ma non è giusta.... :asd:
E' da perfezionare! |
Lorux |
Originally posted by Pupino
Dove siete tutti???????
Come avete gestito il movimento del pacman? Io un' idea ce l' ho ma non è giusta.... :asd:
E' da perfezionare!
vabbè il move() è tutto il progetto praticamenteXD non penso che qualcuno voglia dirteloXD |
nasty121 |
Ciao ragazzi!
la classi Pacman e Ghost ereditano bev, ma come gli assegnamo i comportamenti vari?
Nella descrizione del progetto dice che i costruttori delle sottoclassi di MobileElement non hanno parametro di tipo Behavior, ma che il comportamento è "cablato" nella classe stessa.
Che cosa significa?!!! :shock: |
Lorux |
Originally posted by nasty121
Ciao ragazzi!
la classi Pacman e Ghost ereditano bev, ma come gli assegnamo i comportamenti vari?
Nella descrizione del progetto dice che i costruttori delle sottoclassi di MobileElement non hanno parametro di tipo Behavior, ma che il comportamento è "cablato" nella classe stessa.
Che cosa significa?!!! :shock:
ad esempio il costruttore di pacman avrà bev= new PacManBehavior() |
rekotc |
ad esempio il costruttore di pacman avrà bev= new
PacManBehavior()
eh ma così non fa esattamente quello che nel testo dice di non fare? cioè se dentro il costruttore di pacman creo una variabile bev di fatto creo un parametro di tipo behavior nel costruttore della sottoclasse di mobileElement..almeno mi pare..non vorrei fare + confusione ancora.. |
Lorux |
Originally posted by rekotc
eh ma così non fa esattamente quello che nel testo dice di non fare? cioè se dentro il costruttore di pacman creo una variabile bev di fatto creo un parametro di tipo behavior nel costruttore della sottoclasse di mobileElement..almeno mi pare..non vorrei fare + confusione ancora..
si,il bev in questione è sempre quello che eredita da MobileElement |
rekotc |
si ma intendo, nel testo del progetto c'è scritto di non mettere una variabile di tipo behavior dentro il costruttore, o no?
cioè da come l'ho capita io non è possibile istanziare un oggetto come bev = new PacManBehavior(); dentro il costruttore di PacMan, perchè nel testo dice di non farlo...
poi avrei un'altra domanda...ma MazeElement estende ogni altra classe? cioè non capisco Behavior se è una classe a se o se estende qualcosa...help! :? |
nasty121 |
Originally posted by rekotc
poi avrei un'altra domanda...ma MazeElement estende ogni altra classe? cioè non capisco Behavior se è una classe a se o se estende qualcosa...help! :?
Beh MazeElement è la classe astratta che definisce metodi e attributi sia x le sottoclassi degli elementi mobili (pac-man e fantasmini) sia per quelli "fissi" come pillole e muri. Queste poi aggiungerano i metodi che le diversificano dalle altre.
Behavior è una classe astratta a sè: "definisce" gli attributi oldx e oldy che rappresentano le "vecchie coordinate" delle elemento MOBILE, e in + ha i metodi ASTRATTI getNewX() e getNewY().
Le sottoclassi riscriveranno questi metodi (che calcolano (penso) e ritornano le nuove coordinate) in base al pacMan o al tipo di fantasmino.
Così Nasty crede... (bhe semplicemente ho tracrittto con parole +comuni, ma costruire il tutto è un'altro discorso!:shock:)
Qualcuno ha obiezioni? |
jonny86 |
I costruttori delle sottoclassi di MobileElement non hanno un PARAMETRO di tipo Behavior il comportamento è cablato nella classe stessa
Attenzione ragazzi parla di PARAMETRO non di ATTRIBUTO, il che significa solamente che nei costruttori delle sottoclassi di MobileElement, nella segnatura, non posso aggiungere un parametro di tipo Behavior perchè tanto è inutile, se sto costruendo un PacMan istanzierò sempre un PacManBehavior nell'attributo bev ereditato da MobileElement.
Non fatevi più seghe mentali di quante effettivamente ne servano... |
rekotc |
ho ancora un dubbio atroce..ma behavior estende qualcosa? non è estensione di mazeElement anche lei? perdonate se son un pò ripetitivo.. |
nasty121 |
Originally posted by rekotc
ho ancora un dubbio atroce..ma behavior estende qualcosa? non è estensione di mazeElement anche lei? perdonate se son un pò ripetitivo..
Certo che non estende! :-D
Dato che la classe Behavior è per definire solo i comportamenti degli oggetti mobile, è facile intuire che i metodi e gli attributi di MazeElement siano superflui: diciamo che è una classe dedicata solo ai comportamenti. |
nasty121 |
Raga sapete dirmi qual'è la differenza tra:
- i metodi di Maze toString() e getMaze() (cosa fanno in poche parole!);
- i metodi backup() e write() (simili, a parte la destinazione di output);
- la bella e la bestia... :shock: |
black.jack |
qualcuno per caso ha chiesto al prof come cavolo si fa a istanziare un ghost con un dato comportamento piuttosto che un altro?
voi cosa avete fatto? passate a ghost un parametro di tipo stringa e a seconda della stringa associare al campo bev un determinato comportamento? |
rekotc |
pubblico qui altre "risposte" del profe...risposte un pò inutili in verità...giudicate voi!
> Se nel testo un metodo obbligatorio è mostrato senza parametri
> (parentesi
> vuote) è obbligatorio lasciarlo così o è possibile inserire parametri
> a piacere?
assolutamente immutabili
> Il metodo public void reload() deve rileggere dall’ultima riga del
> file la configurazione del gioco…ma per farci cosa? Oltretutto non
> restituisce nulla quindi non capisco a cosa serva
reinizializza il campo di gioco.
> getHorizontalOffset() e getVerticalOffset()
> a cosa servono questi due metodi? Ha scritto che determinano di quanto
> e in che direzione l'elemento si muove ma ogni elemento mobile non si
> sposta al massimo di una casella per turno?
sì ma di una casealla a turno non indica in che direzione.
> E poi non ho capito perché si chiamano horizontal e vertical e hanno
> però come obiettivo il determinare la direzione, cioè io avrei pensato
> semplicemente a una variabile che per ogni elemento mobile tiene
> traccia della direzione, questi metodi non saprei come utilizzarli.
setter & getter ti dicono niente?
Walter Cazzola |
nasty121 |
Originally posted by Lorux
vabbè il move() è tutto il progetto praticamenteXD non penso che qualcuno voglia dirteloXD
e perchè non dare qualche suggerimento?
alla fine amare è condividere, e questo thread serve anche per uscire dai problemi e dai dubbi, no? :razz:
accantoniamo l'orgoglio (e l'egoismo) e collaboriamo! |
nasty121 |
Originally posted by nasty121
e perchè non dare qualche suggerimento?
alla fine amare è condividere, e questo thread serve anche per uscire dai problemi e dai dubbi, no? :razz:
accantoniamo l'orgoglio (e l'egoismo) e collaboriamo!
Amen. |
nasty121 |
A proposito di amore e compassione,
non riesco a capire dove bisogna impostare le direzioni e come!
io farei un ciclo while (ad esempio per pacman) nel quale controllerei se nella casella successiva c'è un Wall o un Ghost e mi sposterei...
ma con quale metodo?:lode: |
black.jack |
io non ho ancora capito, e nessuno ne da una risposta, di come associare l'istanza di ghost al corrispettivo behavior :? |
nasty121 |
Originally posted by black.jack
io non ho ancora capito, e nessuno ne da una risposta, di come associare l'istanza di ghost al corrispettivo behavior :?
Io e il mio compagno di gruppo passiamo un carattere al costruttore di Ghost e poi, in base ad esso, viene istanziato il corrispondente Behaviot
esempio
public Ghost(x, y, ch){
...
if(ch=='r')
bev = new BlinkyBehavior;
...
}
voi altri cosa ne pensate? :schifo:
SPARTANI. CHI E' CON ME?!!!! |
Pupino |
Io ora sono ubriaco, domani ti passo la mia move perchè tu ragioni bene... e ti parla uno al 5° anno a cui manca solo sto esame del cazzo! |
black.jack |
Originally posted by nasty121
Io e il mio compagno di gruppo passiamo un carattere al costruttore di Ghost e poi, in base ad esso, viene istanziato il corrispondente Behaviot
esempio
public Ghost(x, y, ch){
...
if(ch=='r')
bev = new BlinkyBehavior;
...
}
voi altri cosa ne pensate? :schifo:
SPARTANI. CHI E' CON ME?!!!!
eh si...però così non è altro che un aggiramento alla restrizione che poneva il prof, ovvero quello di non mettere un parametro di tipo Behavior nel costruttore =\
così proprio aggiri la cosa..invece del behavior, gli passi una stringa che rimanda al behavior..mmMMmMm...:?
non sto criticando eh, anche perchè anche io ho fato così :D, non vorrei che però il prof voglia un qualcosa di differente... |
nasty121 |
già! nel testo dice:
"Nota. I costruttori delle sottoclassi di MobileElement non hanno un parametro di tipo
Behavior il comportamento è cablato nella classe stessa."
non chiedermi cosa significa "cablato" :)
cmq sia io non vedo alternative... :shock: |
black.jack |
l'italiano di sti professori fa veramente paura..
"I costruttori delle sottoclassi di MobileElement non hanno un parametro di tipo
Behavior il comportamento è cablato nella classe stessa."
non si capisce a chi si riferisci con CABLATO, se a behavior o mobilelement.....mah! |
Pupino |
Secondo me intende dire che il comportamento è cablato in behavior specifico di ogni elemento mobile...
Chi riesce a consegnare qualcosa di decente? |
nasty121 |
Originally posted by nasty121
A proposito di amore e compassione,
non riesco a capire dove bisogna impostare le direzioni e come!
io farei un ciclo while (ad esempio per pacman) nel quale controllerei se nella casella successiva c'è un Wall o un Ghost e mi sposterei...
ma con quale metodo?:lode:
avevo postato questa domanda-
la direzione e di quanto viene dettato dai metodi getHorizontalOffset e getVerticalOffset (o SBAGLIO?)
MA COME E DOVE SI FA IL CONTROLLO DELLA CASELLA IN CUI SI DEVE SPOSTARSI L'ELEMENTO MOBILE? |
Pupino |
Io farei una serie di if per capire cosa c'è dopo e in base a quello che c'è sposti nella matrice l' elemento come viene stabilito nelle specifiche...
:D |
black.jack |
Originally posted by nasty121
avevo postato questa domanda-
la direzione e di quanto viene dettato dai metodi getHorizontalOffset e getVerticalOffset (o SBAGLIO?)
MA COME E DOVE SI FA IL CONTROLLO DELLA CASELLA IN CUI SI DEVE SPOSTARSI L'ELEMENTO MOBILE?
io sn messo abbastanza male, nn credo consegnerò, ma a logica l'ho capito...
nelle varie classi non devi fare altro che scrivere la direzione orizzontale e verticale degli oggetti mobili, e ci metti anche un metodo per il cambio di direzione, ovvero inverte la direzione orizz e verticale....ogni elementi mobile ha, come dice il testo, direzioni diverse..
poi TUTTO quel che riguarda lo spostamento del gioco, sta tutto nel metodo move() di MAZE.
se ci pensi bene,. alla fine il gioco altro non è, come dice Pupino, di una serie di if in cui si calcolano le collisioni di tutti gli elementi in gioco.
es. se la coordinata di pacman è uguale al pallino aumenta i pinti, , se è uguale alla pillola energy, fai scattare un contatore che per 5 turni rende pacman invincibile, se è uguale a quella di un fantasmino, pacman muore, se è uguale a un muro, inverti il senso di marcia ecc
stessa indentica cosa per i ghost..
però un conto è aver capito..un'altro è riportare todo in java :sad: |
Pupino |
Siamo sulla stessa barca, black jack....
Io ho capito tutto, ma spiegare a java come farlo funzionare è un altro discorso... |
nasty121 |
Originally posted by Pupino
Io farei una serie di if per capire cosa c'è dopo e in base a quello che c'è sposti nella matrice l' elemento come viene stabilito nelle specifiche...
:D
anche noi avevamo pensato il movimento di Pacman in questo modo (con una serie di if-else annidati) :-D
ma:
- in che metodo lo mettiamo? getNewX/Y() o getHoriz/VertOffset()?
- cerchiamo nella matrice dell'oggetto Maze (statica, come la pensiamo noi...) e calcoliamo le collisioni varie: questo è compito di move() di Maze o di altro?
risp raga!,
jhonny dove seiiiiiii?!!!!!!!!!!!!!! |
nasty121 |
Originally posted by Pupino
Siamo sulla stessa barca, black jack....
Io ho capito tutto, ma spiegare a java come farlo funzionare è un altro discorso...
Io con Java me la cavo abb bene, ma è che non ho capito come avviene l'interazione! :D ossia non capisco il compito di alcuni metodi |
nasty121 |
Originally posted by Pupino
Siamo sulla stessa barca, black jack....
Io ho capito tutto, ma spiegare a java come farlo funzionare è un altro discorso...
Io con Java me la cavo abb bene, ma è che non ho capito come avviene l'interazione! :D ossia non capisco il compito di alcuni metodi |
black.jack |
alura..
getHoriz/VertOffset() di dicono, rispettivamente sull'asse X e Y in che direzione ti stai spostando
getNewX/Y() invece ti servono per calcolarti la nuova posizione in cui dovrà essere messo l'elemento che si deve spostare :)
in questi 2 ovviamente dovrai fare una somma, tra la cordinata della matrice dove si strova l'elemento, e la direzione dove sta andando l'elemento, così ti trovi la posizione nella matrice dove dovrà mettersi..
:) |
Supernick |
Salve avrei una domanda da porvi, a me il campo da gioco viene così
Chiedo come fate a gestire quella porzione di bordo in cui non è presente il muro, ma in cui può entrarci una entità mobile.
Quando entra e tenta di andare verso destra il compilatore giustamente mi lancia a una ArrayOutOfBoundException!
Come gestire questa eccezione? Secondo voi basta creare una entità muro in ogni caso che le cordinate della entità superano la X o la Y della griglia??
Un'altra cosa che volevo chiedervi invece è per le collisioni
quando si scontrano due fantasmi....ad esempio Blinky va a destra e Pinky va a sinistra, si scontrano, a quel punto si respingono entrambi o uno solo respinge l'altro? (Credo sia giusta la prima, ma a me purtroppo fa la seconda :D) |
nasty121 |
Originally posted by black.jack
alura..
getHoriz/VertOffset() di dicono, rispettivamente sull'asse X e Y in che direzione ti stai spostando
getNewX/Y() invece ti servono per calcolarti la nuova posizione in cui dovrà essere messo l'elemento che si deve spostare :)
in questi 2 ovviamente dovrai fare una somma, tra la cordinata della matrice dove si strova l'elemento, e la direzione dove sta andando l'elemento, così ti trovi la posizione nella matrice dove dovrà mettersi..
:)
quindi è in getHoriz/VertOffset() che vedo se nella prossima cella c'è un muro!!!
o no? :? |
black.jack |
Originally posted by nasty121
quindi è in getHoriz/VertOffset() che vedo se nella prossima cella c'è un muro!!!
o no? :?
mm no
quella cosa del vedere cosa c'è nella prox casella non lo fai nelle classi degli elementi, lo fai tutto nel metodo maze().
ogni elemento mobile ha un getHorintal Vertical, che appunto chiamandosi GET vuol dire che richiamano dei valori presi da qualche parte...in questo caso valori che vengono richiamati con l'istanza bev, che sarebbe altrimenti inutile no!?
quindi in ogni behavior devi avere delle variabili horizzontaloffset e verticaloffset, che contengono la direzione sull'asse x e y dell'oggetto mobile
NB. a questo punto nn c'è da fare altro che tradurre da testo a java quello che dice dei movimenti nelle sottoclassi di behavior.. |
black.jack |
Originally posted by Supernick
Salve avrei una domanda da porvi, a me il campo da gioco viene così
Chiedo come fate a gestire quella porzione di bordo in cui non è presente il muro, ma in cui può entrarci una entità mobile.
nella classe Maze ci sono appunto 2 variabili, rown e columns che rapprensentano la grandezza del campo di gioco.
io direi che, prima di far spostare gli elementi del gioco, fai un controllo con un if del tipo
if (la posizione dove sta per spostarsi l'elemento è minore del numero di colonne, Or è maggiore del numero di colonne, OR è minore del numero di righe, OR è maggiore del numero di righe) cambia direzione dell'elemento
esegui tutto il resto |
nasty121 |
Qualcuno può suggerire come fare il comportamento di PacMan? PacManBehavior.... |
Lorux |
ma solo io sto avendo problemi quando invio il progetto?
mi vengono fduori unsacco di errori" così
/users/malchiod/public_html/LP/sottoposizione/sottoposizioni/phpzR2tcS/Main.java:4: cannot find symbol
symbol : class Behavior
location: class Main
Behavior inky = new InkyBehavior();
^ |
black.jack |
credo che non avrai risposte fino a domenica sera :D |
Lorux |
Originally posted by black.jack
credo che non avrai risposte fino a domenica sera :D
ma che cazzo,già ho dovuto stravolgere il mio progetto xkè il cazzola non ha specificato come devono essere i costruttori dei behavior e dei vari mobileElements x poi non accettare costruttori con parametri o con + di 2 parametri.. |
black.jack |
Originally posted by Lorux
ma che cazzo,già ho dovuto stravolgere il mio progetto xkè il cazzola non ha specificato come devono essere i costruttori dei behavior e dei vari mobileElements x poi non accettare costruttori con parametri o con + di 2 parametri..
cioè? spiegati meglio..cosa intendi con + di 2 parametri? a chi hai dato + di 2 parametri?
se ce lo dici ci fai un grande favore, così evitiamo anche noi :) |
Lorux |
Originally posted by black.jack
cioè? spiegati meglio..cosa intendi con + di 2 parametri? a chi hai dato + di 2 parametri?
se ce lo dici ci fai un grande favore, così evitiamo anche noi :)
a quanto pare,i costruttori dei behavior non devono avere parametri,i costruttori degli elementi ne devono avere solo 2 |
black.jack |
Originally posted by Lorux
a quanto pare,i costruttori dei behavior non devono avere parametri,i costruttori degli elementi ne devono avere solo 2
:| parole del prof? cioè..come fa Ghost ad avere 2 parametri e basta? bisogna pur passargli qualcosa per istanziare i 4 ghost differenti no?
per il behavior gli do ragione, non c'è bisogno di nessun parametro.. |
jonny86 |
Allora non sono solo parole del prof... ma anche dati di fatto, perchè ha messo sul sito di sottoposizione un file Main.java con dentro del codice fuffa per vedere se abbiamo rispettato i nomi delle classi e dei metodi richiesti e le relative segnature.. peccato che le segnature dei metodi erano scritte, quelle dei costruttori no, e praticamente le Behavior non hanno parametri nel costruttore e i Ghost ne hanno 2 e basta, cioè ti devi fare tutte le sottoclassi (megaspreco.. alla faccia dell'insegnare la buona programmazione!).
Per di più non considero corretto neanche il costruttore dei Behavior senza parametri perchè se le classi in questione hanno 2 attributi a me hanno sempre insegnato che questi devono sempre essere istanziati a valori corretti fin da subito, mica settarli poi... ma a sto punto chissene... basta che è contento lui.
Il problema è un altro... che il sito di sottoposizione da quegli errori di "cannot find symbol" sulle varie classi anche se queste sono state create da noi perchè a quanto pare hanno sbagliato a configurare il sito di sottoposizione che fa la compilazione del Main.java prima che vengano effettivamente caricati i nostri file... TRADUCO: E' impossibile per tutti caricare i progetti... almeno per ora. Se sbaglio qualcuno mi contraddica dicendo che ci è riuscito (nota: solo a partire da mercoledì c'è sto particolare blocco). |
black.jack |
per quanto riguarda la classe Ghost, qualcuno qui nel forum ha scritto che aveva chiesto al prof se si potevano creare le 4 sottoclassi di ghost, e la risposta è stata "NON C'è BISOGNO". |
jonny86 |
Ok risolto ragazzi.. ho segnalato la cosa e l'hanno sistemata.. comunque restano quelle modifiche sulle segnature dei costruttori che vi ho scritto. Meno male,... nn ce la faccio più. |
black.jack |
per quanto riguarda la classe Ghost, qualcuno qui nel forum ha scritto che aveva chiesto al prof se si potevano creare le 4 sottoclassi di ghost, e la risposta è stata "NON C'è BISOGNO".
qualcuno di voi lo conferma?
dove siete tutti? :? |
candy |
Ciao a tutti! vorrei chiedervi un consiglio.. siccome non è prevista la creazione di una classe contenente un main e che quando il prof controllerà i nostri programmi avrà un proprio main con cui eseguire le varie classi, come facciamo ad intercettare delle eccezioni che potrebbero essere sollevate proprio nel momento in cui viene controllata l'effettiva correttezza della stringa di configurazione?!
Mi spiego meglio.. io dal main creo un'istanza di Maze passando la stringa contenente il nome del file dove è contenuta la configurazione da utilizzare. Nel momento in cui chiamo setMaze() controllo se la stringa è corretta. Se non lo è, sollevo un'eccezione. Questa verrà rimandata a su su nella gerarchia fino al blocco try-catch che la gestisce.
A questo punto la mia esecuzione dovrebbe bloccarsi (se potessi gestire l'eccezione direttamente nel main) ma siccome non è così, l'esecuzione torna al main che invoca altri metodi che cercano di lavorare su una matrice non impostata dato che la stringa non è ben formata.... risultato --> ERRORE FATALE!!
Qualcuno ha un suggerimento?! Dove è meglio gestire le eccezioni?! |
candy |
Originally posted by black.jack
per quanto riguarda la classe Ghost, qualcuno qui nel forum ha scritto che aveva chiesto al prof se si potevano creare le 4 sottoclassi di ghost, e la risposta è stata "NON C'è BISOGNO".
in effetti non serve creare quattro sottoclassi di ghost.. basta creare 4 istanze di ghost ognuna con un diverso comportamento.. |
nasty121 |
AAASSSSSSS!
Io son tre giorno che cerco di far muovere PacMan, ma non riesco!!!
Qualcuno gentilmente sa dirmi come fare il PacManBehavior?
:sad: |
Lorux |
Originally posted by candy
Ciao a tutti! vorrei chiedervi un consiglio.. siccome non è prevista la creazione di una classe contenente un main e che quando il prof controllerà i nostri programmi avrà un proprio main con cui eseguire le varie classi, come facciamo ad intercettare delle eccezioni che potrebbero essere sollevate proprio nel momento in cui viene controllata l'effettiva correttezza della stringa di configurazione?!
Mi spiego meglio.. io dal main creo un'istanza di Maze passando la stringa contenente il nome del file dove è contenuta la configurazione da utilizzare. Nel momento in cui chiamo setMaze() controllo se la stringa è corretta. Se non lo è, sollevo un'eccezione. Questa verrà rimandata a su su nella gerarchia fino al blocco try-catch che la gestisce.
A questo punto la mia esecuzione dovrebbe bloccarsi (se potessi gestire l'eccezione direttamente nel main) ma siccome non è così, l'esecuzione torna al main che invoca altri metodi che cercano di lavorare su una matrice non impostata dato che la stringa non è ben formata.... risultato --> ERRORE FATALE!!
Qualcuno ha un suggerimento?! Dove è meglio gestire le eccezioni?!
io le eccezioni riguardanti i file le ho gestite,anche l'arrayindexoutofbounds nel move,quelle che ho creato io le ho fatte lanciare e basta,penso sarà il prof a doverle gestire(ma probabilmente farà solo un main con throws exception) |
|
|
|
|