Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-08-2006, 18:08   #1
:.Blizzard.:
Senior Member
 
L'Avatar di :.Blizzard.:
 
Iscritto dal: Jan 2006
Città: Perugia - San Benedetto del Tronto
Messaggi: 348
[Java]Game Of Life, aiutatemi a progettarlo

Ciao a tutti
Vi espongo subito il mio problema: il 14 Settembre devo presentare un progetto-esame in Java e io ho scelto di fare Game of Life ( http://www.bitstorm.org/gameoflife/ ). C'è solo un problemone ... ovvero io non ho frequentato il corso per motivi che non stò qui a spiegarvi. Ho letto un pò le linee guida del Java, ma visto che il tempo stringe ho deciso di aprire questo topic nella speranza di ricevere un vostro aiuto. Non vi chiedo assolutamente di scrivermi le righe di codice, al massimo di correggere quelle che farò io e di darmi alcuni consigli.
Detto questo, partiamo con la descrizione del progetto. La consegna è la seguente:



Life applet: scrivere un'applet che rappresenti l'andamento della vita di una popolazione di individui monocellulari su una matrice in un universo toroidale, (rappresentato da una matrice A di dimensione m x n in cui gli elementi della prima riga si considerano adiacenti a quelli dell'ultima riga, e quelli della prima colonna adiacenti all'ultima) vivono microorganismi cellulari booleani (A[i,j]=true rappresenta che "esiste una cellula nella posizione i,j"). Inizialmente gli organismi possono essere casualmente inseriti dall'utente tramite mouse.
La vita della matrice si evolve di istante in istante secondo le seguenti regole:

1- Sesso ternario. Le cellule si riproducono attraverso una sessualità ternaria: se una casella vuota all'istante i è circondata ESATTAMENTE da 3 cellule, all'istante i+1 verrà generata una nuova cellula in tale casella.

2- Morte per isolamento. Se una cellula non è circondata da alcuna altra cellula, all'istante successivo essa muore per isolamento e quindi la corrispondente casella sarà vuota in tale istante.

3- Morte per sovrappopolazione. Se una cellula è circondata da 4 o più cellule essa muore per sovrappopolazione all'istante successivo.

Si considerino adiacenti alla casella le 8 caselle confinanti, anche in diagonale.
L'utente deve poter scegliere tramite un menu la dimensione della matrice.



Ora, se avete guardato il link postato a inizio topic potete notare che quel progetto rispecchia in gran parte quella che dovrà essere la mia consegna. Ovviamente NON ho intenzione di copiare alcuna riga di sorgente, anche perchè dovrò discutere in sede di esame come ho costruito il tutto.

Detto questo e fatte le dovute considerazioni nonchè ringraziamenti per essere arrivati a leggere fin quà, direi che posso iniziare con la prima domanda: come organizzare il tutto?


Io avevo pensato di dividere il progetto in due package, uno per la gestione della parte grafica e uno riguardante il motore del programma. Quindi, a grandi linee:

1) Package Motore

La logica del gioco suggerisce l'utilizzo di due matrici booleane (lasciando per adesso da parte la loro grandezza). Inizialmente l'oggetto matrice A conterrà solo 0 (ovvero il campo sarà privo di cellule) e posso scrivere una procedura che riempia a random le caselle. Una volta che ho una matrice con delle cellule posso scrivere una procedura che legga casella per casella e tramite alcuni if mi scriva in una seconda matrice B quali sarà lo stato successivo. La matrice A poi verrà azzerata e il ruolo da essa svolto precedentemente sarà ricoperto dalla matrice B.

2) Package Grafica

Il risvolto grafico sarà rappresentato da un pannello contenente m x n rettangolini che verranno riempiti o meno a seconda degli 0 e degli 1.


Per ora ho pensato a queste cose. Conto sul vostro aiuto e sulle vostre idee e vi chiedo un attimo di pazienza e del vostro tempo nell'aiutarmi.
Un grazie in anticipo a tutti colore replyeranno (vi stò facendo abbastanza pena? ).

Betto.
:.Blizzard.: è offline   Rispondi citando il messaggio o parte di esso
Old 19-08-2006, 22:11   #2
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
potresti risparmiarti una matrice in questa maniera:

1)la matrice non la fai di booleani, ma la fai di oggetti. Ad esempio l'oggetto cellula. L'oggetto conterrà il booleano.


2)usi il pattern command sull'oggetto cellula. Praticamente ti scorri una volta la matrice, analizzi ogni cellula e assegni a ogni cellula l'azione da fare(rappresentata da una classe)(cancellare/rimanere/nascere).
Poi ti riscorri la matrice e esegui le varie azioni(resettandole).

Questo vuol dire scorrere 2 volte la matrice, ma guadagni spazio.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 19-08-2006, 22:24   #3
:.Blizzard.:
Senior Member
 
L'Avatar di :.Blizzard.:
 
Iscritto dal: Jan 2006
Città: Perugia - San Benedetto del Tronto
Messaggi: 348
Quote:
Originariamente inviato da thebol
potresti risparmiarti una matrice in questa maniera:

1)la matrice non la fai di booleani, ma la fai di oggetti. Ad esempio l'oggetto cellula. L'oggetto conterrà il booleano.


2)usi il pattern command sull'oggetto cellula. Praticamente ti scorri una volta la matrice, analizzi ogni cellula e assegni a ogni cellula l'azione da fare(rappresentata da una classe)(cancellare/rimanere/nascere).
Poi ti riscorri la matrice e esegui le varie azioni(resettandole).

Questo vuol dire scorrere 2 volte la matrice, ma guadagni spazio.
Quella della matrice di oggetti era un'idea che avevo inizialmente. Il problema è: conviene? Non sarebbe meno costoso creare una semplice matrice di booleani?
:.Blizzard.: è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2006, 09:34   #4
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da :.Blizzard.:
Quella della matrice di oggetti era un'idea che avevo inizialmente. Il problema è: conviene? Non sarebbe meno costoso creare una semplice matrice di booleani?
da un punto di vista "minimalista" conviene lavorare con oggetti primitivo. Ma è meno maleabile, e il costo per realizzare un oggetto e quasi insignificante.

In piu creando un oggetto, puoi modificarlo.

Ad esempio a un oggetto puoi assegnare uno stato(ce o non cè la cellula e delle azioni), o un comportamento(il pattern command di prima).

In questa maniera riescia a separare le varie azioni che puoi fare su una cella in diverse classi
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2006, 12:29   #5
:.Blizzard.:
Senior Member
 
L'Avatar di :.Blizzard.:
 
Iscritto dal: Jan 2006
Città: Perugia - San Benedetto del Tronto
Messaggi: 348
Ok ... cmq ... per ora stò seguendo un'altra strada e ho un problema:

Data una matrice A[][] di tipo boolean, devo riempirla a random con valori true e false. Tralasciando il discorso dell'usare due cicli annidati, esiste nella libreria java qualche procedura che esegua una simile operazione?
:.Blizzard.: è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2006, 14:13   #6
Barbalbero
Registered User
 
Iscritto dal: Aug 2006
Messaggi: 305
Quote:
Originariamente inviato da thebol
Questo vuol dire scorrere 2 volte la matrice, ma guadagni spazio.
In ogni caso dovresti scorrere una volta entrambe le matrici, quindi l'idea di thebol, a mio avviso, è molto valida, ed è più elegante.
Barbalbero è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2006, 14:16   #7
Barbalbero
Registered User
 
Iscritto dal: Aug 2006
Messaggi: 305
Quote:
Originariamente inviato da :.Blizzard.:
Data una matrice A[][] di tipo boolean, devo riempirla a random con valori true e false. Tralasciando il discorso dell'usare due cicli annidati, esiste nella libreria java qualche procedura che esegua una simile operazione?
Secondo me nel tempo che cerchi questa fantomatica procedura, hai già scritto dieci volte i due cicli for annidati!!!
Barbalbero è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2006, 18:10   #8
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
se vi serve uno spunto ho trovato il codice
Spoiler:
http://www.bitstorm.org/gameoflife/code/
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2006, 18:41   #9
:.Blizzard.:
Senior Member
 
L'Avatar di :.Blizzard.:
 
Iscritto dal: Jan 2006
Città: Perugia - San Benedetto del Tronto
Messaggi: 348
Quote:
Originariamente inviato da AngeL)
se vi serve uno spunto ho trovato il codice
Spoiler:
http://www.bitstorm.org/gameoflife/code/

Ti ringrazio, l'ho osservato attentamente ed è troppo complicato per i miei gusti e per le kmie capacità. Ad ogni modo ho appena terminato la classe Griglia. Il gioco è perfettamente funzionante su carta ... nel senso che su console stampo prima una matrice A con valori random, poi un'altra matrice che rappresenta la sua evoluzione secondo le regole del gioco e ... funziona!
Devo ancora aggiustare alcune cosette e poi inizio a progettare la gui.
:.Blizzard.: è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2006, 18:44   #10
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
complimenti!
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2006, 19:40   #11
:.Blizzard.:
Senior Member
 
L'Avatar di :.Blizzard.:
 
Iscritto dal: Jan 2006
Città: Perugia - San Benedetto del Tronto
Messaggi: 348
Eccomi di nuovo qua. Il progetto ormai volge verso l'ultima fase di completamento ... solo che ho bisogno di un aiuto adesso.
Mancano tre cose da completare.

1- Possibilità di creare nuove cellule cliccando con il mouse sulla relativa casella.
2- Creare un tasto "Start/Stop" che una volta cliccato crei la nuova generazione di cellule a ciclo infinito fino a quando non lo riclikko.
3- Creare una slide bar che regoli la velocità con cui viene rappresentata la nuova generazione

Ora come ora l'unica cosa che sono riuscito a fare è il tasto "Step" che mi calcola direttamente una nuova generazione ogni volta che clikko (dopo aver generato con un tasto "Casuale" una colonia di cellule random visto che per ora nn è possibile inserirla tramite mouse).
Avete qualche dritta da darmi?
:.Blizzard.: è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2006, 17:20   #12
:.Blizzard.:
Senior Member
 
L'Avatar di :.Blizzard.:
 
Iscritto dal: Jan 2006
Città: Perugia - San Benedetto del Tronto
Messaggi: 348
nessuno nessuno?
:.Blizzard.: è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
CD Projekt vende GOG: il co-fondatore Mi...
Il meglio di Amazon in 26 prodotti, aggi...
L'Europa fa retromarcia sulle pompe di c...
Google investe 4,75 miliardi per i data ...
Meta accelera sullintelligenza artificia...
Il TV QLED TCL da 65'' costa solo 399€ s...
La rivoluzione delle batterie 4680 di Te...
Mini aspiratore a batteria per auto e no...
Konami punta a pubblicare un nuovo gioco...
Stranger Things 5 divide i fan: l'episod...
Nuovo Amazfit Active Max: lo smartwatch ...
Tutti i repeater Wi-Fi Fritz! in sconto,...
La Cina sta esaurendo le materie prime p...
Non chiamateli entry-level: due smartwat...
Scende a 113€ la migliore scopa elettric...
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: 11:29.


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