Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 14-11-2005, 15:03   #1
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
[CICLO 5] Storia 2

Storia 2: Creazione di una nuova gemma quando la precedente tocca il fondo o una gemma sottostante (emissione del bip in entrambi i casi), con rilevamento delle collisioni tra le gemme presenti nell’area di gioco (non sarà possibile spostare la gemma in una casella già occupata da un'altra). Introduzione di un contatore per il punteggio del giocatore, inizializzato a zero, capace di assumere valori validi di 8 cifre e mostrato su schermo mediante una png contenente le cifre nelle 10 caselle che la compongono.
Ogni volta che un diamante collide con il fondo (o con una gemma al di sotto di esso) il contatore del punteggio viene incrementato di 1.

Punti cardine da tenere a mente durante i lavori:
  • Mai fare a gara a chi finisce il task per primo, meglio procedere con calma, altrimenti perderemo molto più tempo in seguito
  • Evitiamo di complicarci la vita, esiste di certo una soluzione più semplice di quella che abbiamo pensato di implementare
  • MAI aggiungere elementi non richiesti esplicitamente dai task: se mai serviranno, se ne parlerà nelle prossime storie
  • Comunichiamo il più possibile, se qualcosa non è chiaro discutiamone tutti i dettagli fino ad eliminare ogni dubbio, anche il più insignificante
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.

Ultima modifica di Jocchan : 14-11-2005 alle 21:22.
Jocchan è offline  
Old 14-11-2005, 20:52   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Task:
5.2.1: Cionci: completato
Quando la gemma collide con il bordo inferiore dell'area di gioco ne deve essere creata una nuova nella parte superiore che diventa quella gestita tramite input da tastiera.
5.2.2: Cover + TigerShark: completato
Modificare Grid in modo che lo spostamento verticale della gemma sia fermato se la casella della riga sottostante è gia occupata. (solo pair programming)
5.2.3: DanieleC88: completato
Impedire lo spostamento laterale della gemma se la casella nella colonna di destinazione è occupata. (solo pair programming)
5.2.4: 71104: completato
Aggiungere la possibilità di disegnare un numero intero di massimo 8 cifre usando la clase Sprite e come base una texture.
5.2.5: Vifani: completato
Visualizzare nella casella dello score presente alle coordinate 219x421 il numero di diamanti presenti all'interno della griglia. Ogni cifra deve essere distanziata dall'altra 11 pixel.

ciao

Ultima modifica di VICIUS : 23-11-2005 alle 13:49.
VICIUS è offline  
Old 14-11-2005, 21:16   #3
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
5.2.2 va svolto in Pair Programming.
fek è offline  
Old 14-11-2005, 22:36   #4
cover
Senior Member
 
L'Avatar di cover
 
Iscritto dal: May 2002
Città: Milan
Messaggi: 572
Io sarei tentato per il 5.2.2 per provare pair programming...se c'è qualcuno disposto, e con tanta pazienza
chi si offre volontario ? fek ?

Sperando di non aver scelto il task più difficile / con più complicazioni ^^
__________________
.:. NEONISI .:. a new island for online auctions. It's worldwide, safe, simple and free. Join Us!

Ultima modifica di cover : 14-11-2005 alle 22:43.
cover è offline  
Old 15-11-2005, 00:10   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
La mia prossima vittima programmata sara' cionci

Ora preferisco che proviata a fare Pair Programming fra di voi.
fek è offline  
Old 15-11-2005, 00:57   #6
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
ci proviamo insieme cover???
x me andrebbe bene domani e dopodomani dopo le 19.00.....
certo ke se magari ci seguono gli altri mentre scriviamo è pure meglio!

EDIT: ma non dovremmo aspettare che il task 1 sia implementato prima???
__________________

Ultima modifica di ^TiGeRShArK^ : 15-11-2005 alle 00:59.
^TiGeRShArK^ è offline  
Old 15-11-2005, 09:43   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da fek
La mia prossima vittima programmata sara' cionci
Purtroppo nemmeno questa settimana lo posso fare... Sono occupato praticamente tutte le sere

Avrei una domanda sul 5.2.3: supponendo che la gemma si trovi nella cella [Y, X]...e la cella [Y+1, X+1] contenga una gemma... La gemma in [Y,X] si trova all'inizio della cella (ricordiamoci che l'hot spot è in alto a destra)... Vengono svolti diversi update in cui al gemma si sposta verso il basso, ma rimane ancora in [Y, X]... Viene premuto il tasto sx, la gemma in questo caso non si deve spostare nella casella [Y, X+1] perchè andrebbe a collidere lateralmente, ma solo dal punto di vista grafico, non dal punto di vista della cella, con la gemma in [Y+1, X+1]...
E' giusto questo comportamento ? Quindi non solo bisogna controllare che non ci siano collisioni con le gemme nelle caselle adiacenti lateralmente, ma che non ci siano anche nelle diagonali inferiori se la gemma non si trova all'inzio della cella...

Direi che se si aggiunge anche questo punto di vista il task 5.2.3 diventa più complesso del 5.2.2...e quindi direi che sarebbe meglio fare questo in pair programming...

Quindi per motivi di tempo io prenderei quello dei due che non si svolge in pair programming...
Quali sono le priorità fra i task ?

Ultima modifica di cionci : 15-11-2005 alle 09:46.
cionci è offline  
Old 15-11-2005, 09:44   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ^TiGeRShArK^
ci proviamo insieme cover???
x me andrebbe bene domani e dopodomani dopo le 19.00.....
certo ke se magari ci seguono gli altri mentre scriviamo è pure meglio!

EDIT: ma non dovremmo aspettare che il task 1 sia implementato prima???
Non importa perchè le gemme le potete inserire voi a mano (insertGemAt)
cionci è offline  
Old 15-11-2005, 09:50   #9
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
Purtroppo nemmeno questa settimana lo posso fare... Sono occupato praticamente tutte le sere

Avrei una domanda sul 5.2.3: supponendo che la gemma si trovi nella cella [Y, X]...e la cella [Y+1, X+1] contenga una gemma... La gemma in [Y,X] si trova all'inizio della cella (ricordiamoci che l'hot spot è in alto a destra)... Vengono svolti diversi update in cui al gemma si sposta verso il basso, ma rimane ancora in [Y, X]... Viene premuto il tasto sx, la gemma in questo caso non si deve spostare nella casella [Y, X+1] perchè andrebbe a collidere lateralmente, ma solo dal punto di vista grafico, non dal punto di vista della cella, con la gemma in [Y+1, X+1]...
E' giusto questo comportamento ? Quindi non solo bisogna controllare che non ci siano collisioni con le gemme nelle caselle adiacenti lateralmente, ma che non ci siano anche nelle diagonali inferiori se la gemma non si trova all'inzio della cella...
Direi che per ora ignoriamo il problema e vediamo come si comporta il gioco. Poi Jocchan ci dira' esattamente come comportarci in questa situazione, quando potra' provarla direttamente.

Quote:
Quindi per motivi di tempo io prenderei quello dei due che non si svolge in pair programming...
Quali sono le priorità fra i task ?
Le priorita' sono in ordine di numerazione dei task.
fek è offline  
Old 15-11-2005, 09:56   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Allora mi prenoto per il 5.2.3, potrei fare anche il 5.2.1, ma fino a mercoledì pomeriggio/giovedì non ho un briciolo di tempo Quindi se nessuno se lo accolla entro domani sera magari ci posso pensare io, lasciando il 5.2.3 ovviamente...
cionci è offline  
Old 15-11-2005, 09:58   #11
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
Allora mi prenoto per il 5.2.3, potrei fare anche il 5.2.1, ma fino a mercoledì pomeriggio/giovedì non ho un briciolo di tempo Quindi se nessuno se lo accolla entro domani sera magari ci posso pensare io, lasciando il 5.2.3 ovviamente...
Ottimo
fek è offline  
Old 15-11-2005, 11:46   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
il 5.2.4 sembra carino, mi prenoto
dubbi: va disegnato uno sprite per ogni cifra o tutto il numero va in un unico sprite? (propongo la prima...)
stima, be', bu, boh, facciamo 1 giorno a partire dal termine del task per cui mi sono prenotato alla Storia 1.

PS: per non scrivere valori costanti nel codice direi di inserire il valore degli 11 pixel in config come "digitSpacing".
71104 è offline  
Old 15-11-2005, 12:14   #13
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da 71104
il 5.2.4 sembra carino, mi prenoto
dubbi: va disegnato uno sprite per ogni cifra o tutto il numero va in un unico sprite? (propongo la prima...)
stima, be', bu, boh, facciamo 1 giorno a partire dal termine del task per cui mi sono prenotato alla Storia 1.

PS: per non scrivere valori costanti nel codice direi di inserire il valore degli 11 pixel in config come "digitSpacing".
Tutto tuo.

ciao
VICIUS è offline  
Old 15-11-2005, 12:45   #14
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
il 5.2.4 sembra carino, mi prenoto
dubbi: va disegnato uno sprite per ogni cifra o tutto il numero va in un unico sprite? (propongo la prima...)
stima, be', bu, boh, facciamo 1 giorno a partire dal termine del task per cui mi sono prenotato alla Storia 1.
L'idea e' che le cifre da 0 a 9 sono conservate in una texture in posizioni che Jocchan ti comunichera'. Tu crei 10 sprite (uno per ogni cifra) che prendono le informazioni dalla texture e disegni gli sprite corretti a seconda del numero da visualizzare nella posizione corretta.

Tutto testato ovviamente. Mi raccomando la test list prima di iniziare.

Quote:
PS: per non scrivere valori costanti nel codice direi di inserire il valore degli 11 pixel in config come "digitSpacing".
Per ora attieniti al task
fek è offline  
Old 15-11-2005, 12:57   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Per il 5.2.1, caso mai lo facessi io: dal punto di vista della metodologia di sviluppo, è più coerente sviluppare una nuova classe che gestisce l'inseriemnto e l'arrivo in fondo della gemma controllata oppure ampliare Grid ?
cionci è offline  
Old 15-11-2005, 13:11   #16
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
Per il 5.2.1, caso mai lo facessi io: dal punto di vista della metodologia di sviluppo, è più coerente sviluppare una nuova classe che gestisce l'inseriemnto e l'arrivo in fondo della gemma controllata oppure ampliare Grid ?
E' una decisione tua questa e dipende dalla tua sensibilita'.

Ti posso dire quello che farei io. Io scriverei la cosa piu' semplice che mi viene in mente, quindi scriverei subito dentro Grid. Una volta finito il task guarderei Grid e e come il codice si e' evoluto e cercherei di capire come vuole essere strutturato meglio. Quindi cercherei possibilita' di refactoring ed un refactoring possibile e' quello di estrarre comportamenti comuni in una nuova classe.

Grid sta crescendo e prima o poi dovremo prenderne atto e alzare il suo livello di astrazione, quindi estrarre delle classi e definire il comportamento di Grid in termini di composizione di queste classi.

Da fare subito? Dopo? Non saprei dirtelo, anche qui sta alla vostra sensibilita'.

Tutto sto discorso per dirti: decidi tu
fek è offline  
Old 15-11-2005, 14:14   #17
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
In realtà noi dobbiamo considerare ogni gemma come un quadrato 32x32, indipendentemente dalla forma che poi avrà.
Questo significa che, se è nota la coordinata (x, y) dello spigolo in alto a sinistra, possiamo ricavare quelle degli altri tre semplicemente aggiungendo il valore 32 alle coordinate:
- spigolo in alto a destra -> (x+32, y)
- spigolo in basso a sinistra -> (x, y+32)
- spigolo in basso a destra -> (x+32, y+32)
Sia chiaro che mi riferisco ad uno schema con l'origine degli assi in alto a sinistra, che dovrebbe essere unico per tutto il nostro progetto (così come il posizionamento dell'hot spot che, per quanto ne so, si trova anch'esso in alto a sinistra di ogni oggetto).

Il rilevamento delle collisioni implica che questi quadrati in movimento non vengano mai sovrapposti, nemmeno di un pixel. Avendo a disposizione le coordinate di tutti e quattro gli spigoli, comunque, non dovrebbe essere troppo complesso.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 15-11-2005, 14:52   #18
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Jocchan
Il rilevamento delle collisioni implica che questi quadrati in movimento non vengano mai sovrapposti, nemmeno di un pixel. Avendo a disposizione le coordinate di tutti e quattro gli spigoli, comunque, non dovrebbe essere troppo complesso.
In realta' per ora il discorso e' ancora piu' semplice perche' abbiamo una rappresentazione ad alto livello che e' la Griglia. Non abbiamo bisogno di controllare la sovrapposizione degli sprite, ci basta controllare che la cella sotto o al nostro lato non sia gia' occupata e impedire il movimento o bloccare la caduta.
fek è offline  
Old 15-11-2005, 15:04   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Jocchan
Sia chiaro che mi riferisco ad uno schema con l'origine degli assi in alto a sinistra, che dovrebbe essere unico per tutto il nostro progetto (così come il posizionamento dell'hot spot che, per quanto ne so, si trova anch'esso in alto a sinistra di ogni oggetto).
Sì...ho scritto male.. Intendevo in alto a sinistra
cionci è offline  
Old 15-11-2005, 15:14   #20
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da fek
In realta' per ora il discorso e' ancora piu' semplice perche' abbiamo una rappresentazione ad alto livello che e' la Griglia. Non abbiamo bisogno di controllare la sovrapposizione degli sprite, ci basta controllare che la cella sotto o al nostro lato non sia gia' occupata e impedire il movimento o bloccare la caduta.
Benissimo, meglio ancora
Ovviamente se abbiamo una gemma in (x, y) ed una casella (x+1, y+1) occupata, potremo liberamente muoverci in (x+1, y) nella sua interezza: la collisione verticale verrà valutata solo quando fisicamente le due gemme andranno a toccarsi (cioè sarò ancora in grado di spostare la gemma un istante prima del contatto, per incastrarla da qualche altra parte).
Per le collisioni orizzontali, visto che si salta istantaneamente da una casella all'altra, e non bisogna considerare caselle riempite solo parzialmente dalla gemma in caduta, il concetto è ancora più semplice
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
 Discussione Chiusa


Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Rubati 6 pallet di hardware NVIDIA da 11...
Addio ai limiti del silicio? Ecco il dia...
Windows 11 27H2 sarà un 'cambio completo...
Hai mai notato che l'iPhone sbaglia semp...
Raffreddamento a liquido e schermo perso...
TSMC valuta la produzione di 3D DRAM su ...
Il Cybertruck ha i giorni contati? Musk ...
Meta porta la voce su Muse, e a sponsori...
Perché il disco principale di Win...
Quanta acqua consuma l'IA? Da cinque goc...
Airbnb lancerà un assistente AI per pian...
25 miliardi sul tavolo: i sauditi voglio...
TV Haier QLED da 65'' a meno di 400€ su ...
Il meglio degli sconti Amazon del weeken...
Il rumore degli aerei in sottofondo può ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v