Simulatore di città
Authors/Creators
Description
Simulatore di Città 2D Dinamico con PyQt5 e OOP in Python
Autore/Creatore:
-
Usai, Luigi (Ricercatore)
-
Affiliazione: Ricercatore Indipendente
-
ORCID: 0009-0003-3001-717X
Data di Pubblicazione:
-
6 Giugno 2025
Data di Creazione del Software:
-
5 Giugno 2025
Versione:
-
11
Descrizione/Abstract: Questo software è un simulatore di ambiente urbano bidimensionale (2D) sviluppato interamente in Python, aderendo ai principi della programmazione orientata agli oggetti (OOP). L'interfaccia grafica (GUI) è realizzata utilizzando il framework PyQt5. Il simulatore modella una città con una griglia stradale, edifici generici a scopo estetico, e una varietà di "Punti di Interesse" (PI) specifici (es. negozi, bar, parchi, uffici, case, scuole, ospedali) che fungono da destinazioni. La popolazione della città è composta da oggetti Persona, ulteriormente specializzati in Autista e Ciclista quando associati a un veicolo, e "Pedoni" concettuali che contribuiscono alle dinamiche demografiche e alle statistiche. Una caratteristica centrale è la gestione del tempo simulato: un orologio interno avanza e le Persona (sia quelle alla guida di veicoli sia i pedoni) prendono decisioni dinamiche sulle loro attività e destinazioni in base all'ora del giorno. Questo introduce cicli di attività realistici come recarsi al lavoro/scuola, pause pranzo, shopping, attività ricreative serali e ritorno a casa. Una varietà di veicoli (Automobili, Camion, Jeep, Autotreni, Biciclette, Scooter, Motorini), ciascuno con un Autista o Ciclista dedicato, popola la città. I veicoli navigano la rete stradale per raggiungere la destinazione corrente della persona alla guida, utilizzando un'euristica di pathfinding. Una volta raggiunta la destinazione, il veicolo (e la persona) sostano per un periodo simulato. L'interfaccia utente è stata arricchita con la possibilità di cliccare direttamente su Edifici e Punti di Interesse sulla mappa per aprire una finestra di dialogo modale che visualizza statistiche specifiche per l'elemento selezionato (es. tipo, nome, persone dirette o in sosta). Il software include funzionalità per la serializzazione dell'intero stato della città (oggetti, tempo, stato delle funzionalità) su un file esterno (formato .citta tramite pickle), e la successiva deserializzazione. Un pannello laterale mostra statistiche aggregate in tempo reale (ora, popolazione, distribuzione veicoli/PI, attività). È presente anche un menu "Funzionalità Avanzate" che elenca potenziali sviluppi futuri, con la possibilità di attivarne/disattivarne lo stato (attualmente segnaposto).
Parole Chiave (Keywords):
-
Simulazione Urbana
-
City Simulator
-
Python
-
PyQt5
-
Programmazione Orientata agli Oggetti (OOP)
-
Modello Basato su Agenti (Agent-Based Model)
-
Simulazione Traffico
-
Simulazione Comportamentale
-
Simulazione Basata sul Tempo
-
Dinamiche Urbane
-
Visualizzazione 2D
-
Interazione GUI
-
Software Educativo
-
Codice Sorgente
Lingua del Software:
-
Python 3.x
Dipendenze Principali:
-
PyQt5
-
Modulo
pickle(standard Python) -
Modulo
math(standard Python) -
Modulo
random(standard Python) -
Modulo
sys(standard Python) -
Modulo
traceback(standard Python, per debugging)
Licenza:
-
MIT License
Note Aggiuntive:
-
Il codice sorgente è commentato in lingua italiana.
-
L'applicazione è stata sviluppata con un focus sulla chiarezza del codice OOP e sulla dimostrazione di concetti di simulazione dinamica, interazione GUI e gestione dello stato.
-
La città di default è strutturata su una griglia di 6x5 incroci, formando 20 isolati principali, con una varietà di Punti di Interesse pre-posizionati.
-
L'implementazione delle "Funzionalità Avanzate" indicate nel menu è prevalentemente segnaposto e rappresenta direzioni per futuri sviluppi.
Contatti:
-
Luigi Usai, Quartucciu (CA), Italy
Istruzioni per l'Uso/Installazione (breve):
-
Assicurarsi di avere Python 3 installato.
-
Installare la libreria PyQt5:
pip install PyQt5. -
Eseguire lo script principale (es.
citta11.pyo il nome del file attuale) con Python:python nome_file.py. -
Utilizzare il menu "File" per salvare/caricare le simulazioni. Cliccare sugli edifici/PI per dettagli. Esplorare il menu "Funzionalità Avanzate".
Files
Files
(357.5 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:c8bb77753b099287d2699359f097e421
|
7.3 kB | Download |
|
md5:22c45c85fba1f82c5165e95a36f3a065
|
16.1 kB | Download |
|
md5:f588ce66b5fd714f88bda33cfe7b01dc
|
33.9 kB | Download |
|
md5:f10732602f9f5c3203f1b8ac72c08f37
|
39.1 kB | Download |
|
md5:5615f5ad41d1ba9bb8cec6570ccd7c7f
|
28.9 kB | Download |
|
md5:4eecfe8fbff4cb617e5ade65977b29e6
|
27.9 kB | Download |
|
md5:b4f50b9281d99256e0027548274c57e6
|
30.5 kB | Download |
|
md5:5df7b318264376079fef5d4611a4c743
|
34.6 kB | Download |
|
md5:7501a4d0894042bd8d2648f7c5241462
|
25.7 kB | Download |
|
md5:79cc0f41bfff4985687aa734b9ef2164
|
27.6 kB | Download |
|
md5:05eb97ff11ad2c125c94a8c87c860173
|
25.8 kB | Download |
|
md5:73be9df5a6e8613d4724621cd71a0cf7
|
25.4 kB | Download |
|
md5:9e648c4119a6d6d301538457b1d8eb33
|
34.9 kB | Download |
Additional details
Software
- Development Status
- Active