# LLMs.txt - Sitemap for AI content discovery # Gedemy > Crea videogiochi e fumetti in modo professionale --- ## Pagine - [Termini e condizioni](https://www.gedemy.it/termini-e-condizioni/): Definizioni e riferimenti legali Questo Sito Web (o questa Applicazione) La proprietà che consente la fornitura del Servizio. Accordo Qualsiasi... - [Privacy Policy](https://www.gedemy.it/privacy-policy/): La presente Informativa sulla privacy descrive le nostre politiche e procedure sulla raccolta, l’uso e la divulgazione delle tue informazioni... - [Registrazione](https://www.gedemy.it/registrazione/): Accedi Hai perso la password? - [Documentazione](https://www.gedemy.it/documentazione/): Guide complete, tutorial, best practices, esempi pratici e approfondimenti dettagliati per ogni livello di esperienza. - [Connetti a Discord](https://www.gedemy.it/connetti-a-discord/): Descrizione del corso Dubbi? Suggerimenti? Unisciti al nostro server Discord! https://discord. com/invite/qCadkbgJCd - [Corsi iniziati](https://www.gedemy.it/corsi-iniziati/): Tutti i profili Principiante Intermedio Game Programmer Concept Artist 3D Artist 5% Completato Riprendi Corso ➔ 4% Completato Riprendi Corso... - [Corsi da iniziare](https://www.gedemy.it/corsi-da-iniziare/): Tutti i profili Principiante Intermedio Game Programmer Concept Artist 3D Artist 0% Completato Avvia Corso ➔ 0% Completato Avvia Corso... - [Pannello di controllo](https://www.gedemy.it/dashboard-del-cliente/): - [Chi Siamo](https://www.gedemy.it/chi-siamo/): Chi siamo Gedemy nasce per dimostrare che è possibile offrire, a chi desidera trasformare la propria passione per i videogiochi... - [Webinar Live](https://www.gedemy.it/webinar-live/): - [Referral](https://www.gedemy.it/invita-un-amico/): Copia link Facebook LinkedIn WhatsApp Come Funziona? Usa il tuo link per invitare quanti amici o colleghi vuoi a iscriversi... - [Cronologia Acquisti](https://www.gedemy.it/cronologia-acquisti/): - [Dashboard - Home](https://www.gedemy.it/dashboard-home/): 🆕Ultimi corsi usciti 🆕Ultimi corsi usciti 🆕In arrivo - [Dashboard - Membro](https://www.gedemy.it/dashboard-membro/): - [Dashboard - Crea nuovo Feedback](https://www.gedemy.it/dashboard-crea-nuovo-feedback/): Chiedi supporto - [I nostri corsi](https://www.gedemy.it/corsi/): Sogni di diventare uno sviluppatore di videogiochi o un illustratore professionista? Scopri i nostri corsi su Gedemy e inizia il tuo percorso verso la carriera dei tuoi sogni. - [F.A.Q.](https://www.gedemy.it/faq/): Scopri tutte le informazioni relative a Gedemy: devo essere diplomato? Quanto costano i corsi? Che preparazione otterrò? - [Homepage](https://www.gedemy.it/): Gedemy è la Game Academy italiana di corsi online dedicata allo sviluppo di videogiochi e all'arte digitale. ## Articoli - [Come scrivere un GDD efficace nel 2025 (e un template scaricabile)](https://www.gedemy.it/blog/come-scrivere-gdd-2025-template-gratis/): Scopri come scrivere un GDD efficace nel 2025. Guida completa + template scaricabile gratis in PDF/Word per i tuoi progetti di game design. - [Mercato globale dei videogiochi: il report 2023](https://www.gedemy.it/blog/mercato-globale-dei-videogiochi-il-report-2023/): Il settore dei videogiochi ha vissuto una crescita esponenziale negli ultimi anni, consolidandosi come una delle industrie più redditizie a... - [Unity 6 è qui: scopriamo le novità](https://www.gedemy.it/blog/unity-6-e-qui-scopriamo-le-novita/): Unity 6 è disponibile: scopriamo le novità. - [Come gli sviluppatori indipendenti stanno rivoluzionando l'industria](https://www.gedemy.it/blog/come-gli-sviluppatori-indie-stanno-rivoluzionando-il-settore/): Gli sviluppatori indipendenti stanno cambiando il mondo dei videogiochi. Scopri le nuove tendenze del gaming indie e supporta il loro lavoro. - [Generazione Millennial: tra nostalgia videoludica e carriera digitale](https://www.gedemy.it/blog/generazione-millennial-nostalgia-videoludica-e-carriera-digitale/): Generazione millennial, retrogaming e vecchie console: chi è nato negli anni Ottanta e Novanta e la nostalgia per i giochi vintage. - [Gamer e studio: un mix esplosivo da gestire con ironia](https://www.gedemy.it/blog/giovani-gamer-e-studio-mix-esplosivo-da-gestire-con-ironia/): Giovani gamers e studio: è possibile trovare un metodo di studio che concili il successo scolastico e il gaming? Leggi per saperne di più! - [Matthew Bromberg: Il nuovo CEO di Unity](https://www.gedemy.it/blog/matthew-bromberg-il-nuovo-ceo-di-unity/): Unity sotto una nuova leadership: Matthew Bromberg. Scopri come il suo arrivo potrebbe influenzare gli sviluppatori e i creatori che utilizzano la piattaforma. - [Unreal Engine 5.4: una nuova era per il gaming](https://www.gedemy.it/blog/unreal-engine-5-4-una-nuova-era-per-il-gaming/): Il tanto atteso Unreal Engine 5. 4 è finalmente disponibile, portando con sé una serie di nuove funzionalità e miglioramenti... - [Capcom aumenta gli stipendi](https://www.gedemy.it/blog/capcom-aumenta-gli-stipendi/): Mentre molte aziende di videogiochi in tutto il mondo continuano a tagliare posti di lavoro, Capcom ha annunciato la sua... - [Giocare ai videogiochi migliora la memoria e l'attenzione?](https://www.gedemy.it/blog/uno-studio-americano-attesta-che-giocare-ai-videogiochi-migliora-la-memoria/): Migliorare la tua memoria con i videogiochi? Scopri cosa dice uno studio americano nel nostro ultimo articolo. - [GDC 2024: uno sguardo approndito a Unity 6](https://www.gedemy.it/blog/unity-gdc-2024-novita/): Miglioramenti alle pipeline di rendering, ai tool di Shader e VFX Graph, nuovi strumenti di AI e tanto altro ancora. - [Il gaming come strumento di marketing: FEEXPO](https://www.gedemy.it/blog/feexpo-il-gaming-come-strumento-di-marketing/): La Fiera di Bergamo ha dato il via a FEEXPO, segnando l’inizio di un evento destinato a diventare un punto... - [Genie: l'IA di Google che crea videogiochi da zero](https://www.gedemy.it/blog/google-genie-ia-che-crea-videogiochi-da-zero/): La nuova intelligenza artificiale di Google, Genie, rappresenta un notevole progresso che potrebbe rivoluzionare il mondo dell'intrattenimento videoludico. - [Unity Muse ora genera texture migliori](https://www.gedemy.it/blog/unity-muse-ora-genera-texture-migliori/): Svariati tipi di materiali comuni generati da Unity Muse ora risultano molto più dettagliati. - [Sviluppo di videogiochi: come funziona il Game Development](https://www.gedemy.it/blog/sviluppo-videogiochi-come-funziona-il-game-development/): Sei Interessato a lavorare nell'industria dei videogiochi? Scopriamo insieme tutte le fasi necessarie per lo sviluppo di videogiochi. - [Unity Tuanjie in Cina ha Nanite e Lumen?](https://www.gedemy.it/blog/unity-tuanjie-cina/): La versione dell'engine Unity Tuanjie introduce innovazioni esclusive destinate al mercato cinese. - [Firmato accordo Niantic Amazon. Sarà possibile acquistare su Amazon dentro i videogiochi](https://www.gedemy.it/blog/accordo-niantic-amazon-sara-possibile-acquistare-su-amazon-dentro-i-videogiochi/): Con Amazon Anywhere i videogiocatori potranno cercare prodotti legati ai videogiochi, e non solo questo, e acquistare senza dover uscire dal videogioco. - [L'Unione Europea riconosce il valore culturale del settore dei videogiochi](https://www.gedemy.it/blog/unione-europea-riconosce-il-valore-culturale-del-settore-dei-videogiochi/): Storica decisione del Consiglio d'Europa e deciso invito ai paesi membri e alla Commissione per varare importanti misure di sostegno alle imprese. - [Videogame, la prossima rivoluzione si chiama Web3](https://www.gedemy.it/blog/videogame-la-prossima-rivoluzione-si-chiama-web3/): La creazione di videogiochi su blockchain cambia tutto, cominciando dal modello di business e dal ruolo dei giocatori. - [Disney ed Epic Games insieme per i videogiochi del futuro](https://www.gedemy.it/blog/disney-ed-epic-games-insieme-per-i-videogiochi-del-futuro/): Con questo accordo, Disney e Epic Games si incontrano e possono dare vita a veri e propri universi interattivi capaci di dare emozioni ed esperienze oggi ancora sconosciute. - [I videogiochi possono influenzare le capacità empatiche dei giocatori?](https://www.gedemy.it/blog/i-videogiochi-possono-influenzare-le-capacita-empatiche-dei-giocatori/): Secondo un nuovo studio no, non c'è relazione fra le due cose, ma il campione utilizzato è molto limitato e gli studi che affermano il contrario per ora sembrano meglio strutturati. - [Arrivano i robot capaci di competere ai videogiochi](https://www.gedemy.it/blog/arrivano-i-robot-capaci-di-competere-ai-videogiochi/): Potranno competere con gli esseri umani ma anche fare squadra con loro per migliorare le prestazioni di squadra. - [Gamindo e Booking portano i videogiochi in aeroporto](https://www.gedemy.it/blog/gamindo-e-booking-portano-i-videogiochi-in-aeroporto/): Una collaborazione fra le due celebri firme del gaming (Gamindo) e dell'accoglienza (Booking), consente di intrattenere i viaggiatori in modo semplice e rilassante. - [Fallout, arriva la serie!](https://www.gedemy.it/blog/fallout-arriva-la-serie/): La produrrà Amazon e sarà online da Aprile, con la regia di Jonathan Nolan. - [Gli appassionati di Blast hanno la loro Tv](https://www.gedemy.it/blog/gli-appassionati-di-blast-hanno-la-loro-tv/): Scopri Blast.TV, il canale dedicato agli appassionati di videogiochi come Counter Strike. Segui eventi esport, interviste esclusive e molto altro. - [Videogame di successo: Enshrouded](https://www.gedemy.it/blog/videogame-di-successo-enshrouded/): Sempre più apprezzato dai giocatori di tutto il mondo, continua il suo percorso di crescita grazie anche al rilancio continuo di nuove funzionalità. - [Mister Gadget Games, il podcast sul gaming che non devi perdere](https://www.gedemy.it/blog/mister-gadget-games-il-podcast-sul-gaming/): Nato poco meno di un anno fa è già diventato un appuntamento imperdibile per tutti coloro che amano i videogiochi o che lavorano in questo settore. - [Uno sguardo ai fumetti più attesi del 2024](https://www.gedemy.it/blog/uno-sguardo-ai-fumetti-piu-attesi-del-2024/): In Italia difficile scegliere fra Zerocalcare e il ritorno di Dylan Dog, all'estero Batman si appresta alla sua ultima battaglia. Due novità importanti anche per i manga. - [In libreria Ultima notte a Pechino, di Golo Zhao](https://www.gedemy.it/blog/in-libreria-ultima-notte-a-pechino-di-golo-zhao/): La graphic novel è pubblicata da Bao e segna una nuova tappa nel cammino dell'autore cinese più amato in Europa. - [Un hashtag contro gli abusi sulle videogiocatrici](https://www.gedemy.it/blog/un-hashtag-contro-gli-abusi-sulle-videogiocatrici/): Metà delle videogiocatrici denuncia di aver ricevuto forme di abuso, oltre il 40% mentre videogiocava. I risultati di una ricerca condotta da NNESAGA. - [Grand Theft Auto, l'annuncio della versione 6 scatena gli hacker](https://www.gedemy.it/blog/gta-6-annuncio-scatena-gli-hacker/): Secondo gli esperti, l'annuncio di Gta 6 ha offerto agli hacker l'occasione per scatenare una campagna di phishing di portata mondiale. - [eBook per apprendere a usare al meglio Unity: ecco la lista](https://www.gedemy.it/blog/ebook-per-apprendere-a-usare-al-meglio-unity/): Hanno il pregio di essere stati prodotti e distribuiti proprio dalla software house autrice del programma più usato dagli ideatori di videogiochi. - [Numeri tutti positivi per industria e appassionati di videogiochi nel 2023](https://www.gedemy.it/blog/numeri-tutti-positivi-per-industria-videogiochi-nel-2023/): Nonostante qualche chiusura che ha fatto rumore, il settore mostra il segno più in tutte le sue voci, all'estero e in Italia. - [GranBlue Fantasy: Versus Rising sarà il gioco del 2024?](https://www.gedemy.it/blog/granblue-fantasy-versus-rising-sara-il-gioco-del-2024/): Un picchiaduro che riesce ad andare oltre gli spari e le scazzottate regalando emozioni e costringendo a pensare molto. - [Falso allarme: i videogiochi non creano ansia, al contrario](https://www.gedemy.it/blog/falso-allarme-i-videogiochi-non-creano-ansia-al-contrario/): Però bisogna sapere scegliere i videogiochi adatti, altrimenti il rischio di accrescere i problemi esiste. - [PUBG Esports espande il suo programma di Esports](https://www.gedemy.it/blog/pubg-esports-espande-il-suo-programma-di-esports/): Saranno aggiunte nuove squadre e aumentano i benefici economici previsti per i partner. - [Dicembre nero per le software house: falliscono Fntastic e Free Radical](https://www.gedemy.it/blog/dicembre-nero-per-le-software-house-falliscono-fntastic-e-free-radical/): Curavano due delle serie più amate dai videogiocatori di tutto il mondo, The Day Before e Time Splitters. - [Twitch, annuncio a sorpresa: via dalla Corea del Sud](https://www.gedemy.it/blog/twitch-annuncio-a-sorpresa-via-dalla-corea-del-sud/): La decisione nonostante il paese asiatico sia uno dei mercati più promettenti nel settore dei videogiochi. - [Byte Dance lascia il settore dei videogiochi](https://www.gedemy.it/blog/byte-dance-lascia-il-settore-dei-videogiochi/): Certo che in ogni caso si tratta di una notizia bomba, vista la mole di investimenti che Byte Dance, l’azienda... - [La Lega Nazionale Dilettanti lancia Vinciamo Insieme](https://www.gedemy.it/blog/la-lega-nazionale-dilettanti-lancia-vinciamo-insieme/): Un programma che utilizza il calcio virtuale per promuovere l'inclusione . - [Akira, il manga che ha fatto la storia](https://www.gedemy.it/blog/akira-il-manga-che-ha-fatto-la-storia/): Fumetti, videogiochi, cinema, cultura cyberpunk, il celebre manga disegnato da Otomo ha segnato l'intera cultura di questi decenni. - [Gillette lancia un format creativo dedicato ai gamer](https://www.gedemy.it/blog/gillette-lancia-un-format-creativo-dedicato-ai-gamer/): Azzeratevi, Gillette ha l'idea giusta per sposare rasatura mattutina e videogiochi. Il format è già un successo. - [Baldur's Gate 3 vince e diventa Game of the Year 2023](https://www.gedemy.it/blog/baldurs-gate-3-vince-e-diventa-game-of-the-year-2023/): Con la vittoria di Baldur's Gate 3, il videogioco ha sbaragliato una nutrita concorrenza riuscendo comunque a portare a casa il riconoscimento. - [Dolce e Gabbana disegnano per Razer](https://www.gedemy.it/blog/dolce-e-gabbana-disegnano-per-razer/): La celebre maison di moda produrrà una linea di abbigliamento pensata appositamente per gamer. - [Videogame e community LGBTQ+, guadagna terreno l'inclusione](https://www.gedemy.it/blog/videogame-e-community-lgbtq-inclusione/): Se fino a qualche tempo fa la comunity LGBTQ+ non trovava spazio, oggi sono sempre più i personaggi che la rappresentano all'interno dei videogiochi più famosi. - [Con Valeverse i videogiochi irrompono nel Web3](https://www.gedemy.it/blog/con-valeverse-i-videogiochi-irrompono-nel-web3/): Mette insieme il meglio del Web3 il nuovo Valeverse prodotto da VR46 Metaverse, Animoca Groups e Gravitas Labs: blockchain, DeFi e NFT. - [Unity introduce una nuova tariffa basata sulle installazioni](https://www.gedemy.it/blog/unity-introduce-tariffa-basata-sulle-installazioni/): Unity ha introdotto quello che potremmo definire una “tassa sui download”. Cosa significa per gli sviluppatori? - [Epic MegaGrants: un investimento per il futuro dell'intrattenimento digitale](https://www.gedemy.it/blog/epic-megagrants-un-investimento-per-il-futuro/): Il fondo Epic Megagrants, da oltre 100 milioni di dollari, promette di cambiare il panorama tecnologico. - [Videogiochi: cinque nomi stanno facendo la storia](https://www.gedemy.it/blog/cinque-influenti-figure-del-mondo-dei-videogiochi/): Esplora la storia del mondo videoludico attraverso le vite e le opere di cinque figure influenti, tra cui Hideo Kojima e Shigeru Miyamoto. - [Il futuro è adesso: Unreal Engine 5](https://www.gedemy.it/blog/il-futuro-e-adesso-unreal-engine-5/): Scopri la potenza di Unreal Engine 5 e le sue nuove tecnologie. Un livello di realismo e funzionalità per la creazione di videogiochi mai visto prima. ## Documentazioni - [Funzioni Ricorsive in Python](https://www.gedemy.it/documentazione/python/funzioni-ricorsive-in-python/): Una funzione ricorsiva è una funzione che chiama se stessa per risolvere un problema. Questo concetto, molto potente, è alla... - [Funzioni e valori di ritorno in Python](https://www.gedemy.it/documentazione/python/funzioni-e-valori-di-ritorno-in-python/): In Python, una funzione è un blocco di codice che può essere eseguito ogni volta che viene richiamato. Per comunicare... - [Funzioni e Parametri In Python](https://www.gedemy.it/documentazione/python/funzioni-e-parametri-in-python/): Iniziare a programmare in Python significa anche comprendere come usare in modo efficace le funzioni e i parametri. Questi strumenti... - [Dizionari in Python](https://www.gedemy.it/documentazione/python/dizionari-in-python/): I dizionari in Python rappresentano strutture di dati fondamentali che permettono di memorizzare informazioni utilizzando coppie di elementi: una chiave... - [Set in Python](https://www.gedemy.it/documentazione/python/set-in-python/): I set in Python sono collezioni di elementi non ordinati e univoci. Questo significa che: Come creare un set in... - [Input e output in Python](https://www.gedemy.it/documentazione/python/input-e-output-in-python/): Scopri come gestire l'input e l'output in Python con la funzione print() e input(). - [Creazione di moduli personalizzati in Python](https://www.gedemy.it/documentazione/python/creazione-di-moduli-personalizzati-in-python/): I moduli in Python sono file che contengono codice, come funzioni e variabili, che può essere utilizzato in altri file.... - [Tuple in Python](https://www.gedemy.it/documentazione/python/tuple-in-python/): Le tuple in Python sono una struttura dati molto utile per memorizzare più valori insieme, in modo simile alle liste,... - [Liste in Python](https://www.gedemy.it/documentazione/python/liste-in-python/): In questa guida approfondiremo uno degli elementi fondamentali del linguaggio Python: le liste. Se stai muovendo i primi passi nella... - [Operatore ternario in Python](https://www.gedemy.it/documentazione/python/operatore-ternario-in-python/): In Python, l’operatore ternario permette di scrivere condizioni in una sola riga, rendendo il codice più compatto ed elegante. La... - [Funzioni in Python](https://www.gedemy.it/documentazione/python/funzioni-in-python/): Scopri cosa sono le funzioni in Python, come crearle e utilizzarle efficacemente. - [Break e continue in Python](https://www.gedemy.it/documentazione/python/break-e-continue-in-python/): Quando si inizia a programmare in Python, è essenziale conoscere le istruzioni break e continue per gestire il flusso di... - [Ciclo while in Python](https://www.gedemy.it/documentazione/python/ciclo-while-in-python/): In Python, il ciclo while è uno degli strumenti più importanti per creare dei cicli all’interno di un programma. Con... - [Ciclo for in Python](https://www.gedemy.it/documentazione/python/ciclo-for-in-python/): Il ciclo for è uno degli strumenti più potenti e utilizzati in Python per ripetere un’azione più volte. Se stai... - [Casting in Python](https://www.gedemy.it/documentazione/python/casting-in-python/): Scopri come funziona il casting in Python, dalle conversioni implicite alle funzioni di casting esplicite. - [Condizionali IF in Python](https://www.gedemy.it/documentazione/python/condizionali-if-python/): In Python, le condizioni permettono di eseguire diverse azioni a seconda che una data condizione sia vera o falsa. Uno... - [Commenti in Python](https://www.gedemy.it/documentazione/python/commenti-in-python/): I commenti sono una parte essenziale della scrittura di codice in Python. Consentono agli sviluppatori di spiegare cosa fa il... - [Tipi di dati in Python](https://www.gedemy.it/documentazione/python/tipi-di-dati-in-python/): Comprendere i tipi di dati in Python è uno dei primi passi fondamentali per chi desidera imparare a programmare in... - [Costanti in Python](https://www.gedemy.it/documentazione/python/costanti-in-python/): In Python, le costanti sono valori che non cambiano durante l’esecuzione del programma. Anche se Python non ha un vero... - [Variabili in Python](https://www.gedemy.it/documentazione/python/variabili-python/): Le variabili sono uno degli elementi fondamentali in qualsiasi linguaggio di programmazione, inclusa Python. Le variabili ci permettono di memorizzare... - [Introduzione a Python](https://www.gedemy.it/documentazione/python/introduzione-a-python/): Scopri cos'è Python, la sua storia, i motivi della sua popolarità e i principali ambiti di utilizzo. - [Operatori di Incremento e Decremento in C#](https://www.gedemy.it/documentazione/csharp/operatori-di-incremento-e-decremento/): Gli operatori di incremento e decremento in C# sono strumenti utilizzati per aumentare o diminuire il valore di una variabile... - [Operatori di assegnazione in C#](https://www.gedemy.it/documentazione/csharp/operatori-di-assegnazione/): Gli operatori di assegnazione in C# sono strumenti fondamentali che permettono di assegnare valori a variabili. Conoscere e saper utilizzare... - [Operatori bitwise in C#](https://www.gedemy.it/documentazione/csharp/operatori-bitwise/): Gli operatori bitwise in C# permettono di eseguire operazioni direttamente sui bit di numeri interi. Questi operatori sono molto utili... - [Operatori aritmetici in C#](https://www.gedemy.it/documentazione/csharp/operatori-aritmetici/): Gli operatori aritmetici in C# sono strumenti fondamentali per eseguire operazioni matematiche. In questo articolo, esploreremo come utilizzare questi operatori... - [Operatori Logici in C#](https://www.gedemy.it/documentazione/csharp/operatori-logici/): Nel linguaggio di programmazione C#, gli operatori logici sono fondamentali per eseguire operazioni basate su condizioni. Questi operatori permettono di... - [Metodi di Estensione in C#](https://www.gedemy.it/documentazione/csharp/metodi-di-estensione/): I metodi di estensione in C# sono un modo efficace per aggiungere nuove funzionalità a classi, strutture o interfacce già... - [Ricorsione in C#](https://www.gedemy.it/documentazione/csharp/ricorsione/): Scopri la ricorsione in C# in questa guida facile da seguire, con esempi pratici come il fattoriale, la sequenza di Fibonacci e molto altro. - [Generic in C#](https://www.gedemy.it/documentazione/csharp/generic/): I generici sono una funzionalità potente di C# che consente di scrivere codice riutilizzabile e flessibile. In questa guida esploreremo... - [Classi annidate in C#](https://www.gedemy.it/documentazione/csharp/classi-annidate/): Le classi annidate in C# sono uno strumento utile per organizzare meglio il codice, fornendo una struttura logica che permette... - [Classi Parziali in C#](https://www.gedemy.it/documentazione/csharp/classi-parziali/): Le classi parziali in C# sono un modo pratico per suddividere una singola classe in più file. Questa funzionalità permette... - [Ereditarietà multipla in C#: alternative e pattern](https://www.gedemy.it/documentazione/csharp/ereditarieta-multipla/): Nel mondo della programmazione orientata agli oggetti, l’ereditarietà è uno dei concetti fondamentali. Tuttavia, C# non supporta l’ereditarietà multipla come... - [Classi sealed e statiche in C#](https://www.gedemy.it/documentazione/csharp/classi-sealed-e-statiche/): Le classi sealed in C# sono quelle che non possono essere ereditate. Questo significa che una volta definita una classe... - [Interfacce in C#](https://www.gedemy.it/documentazione/csharp/interfacce/): Scopri cosa sono le interfacce in C#, come definirle e implementarle, con esempi pratici per principianti. Esplora i vantaggi e le differenze con le classi astratte. - [Classi astratte in C#](https://www.gedemy.it/documentazione/csharp/classi-astratte/): In quest'articolo scopriremo come funzionano le classi astratte all'interno del linguaggio C#. - [Polimorfismo in C#](https://www.gedemy.it/documentazione/csharp/polimorfismo/): In questa guida scopriremo il concetto di polimorfismo in C# con esempi pratici e spiegazioni semplici. - [Ereditarietà in C#](https://www.gedemy.it/documentazione/csharp/ereditarieta/): Scopri cos'è l'ereditarietà in C#. Questa guida ti spiega come definire una classe derivata, utilizzare metodi e proprietà, e i vantaggi dell'ereditarietà. - [Costruttori e distruttori in C#](https://www.gedemy.it/documentazione/csharp/costruttori-e-distruttori/): Quando si inizia a programmare in C#, uno dei concetti fondamentali che si incontra è quello dei costruttori e dei... - [Modificatori d'accesso in C#](https://www.gedemy.it/documentazione/csharp/modificatori-daccesso/): I modificatori di accesso in C# sono fondamentali per la gestione della visibilità delle variabili e metodi all’interno del codice.... - [Classi e oggetti in C#](https://www.gedemy.it/documentazione/csharp/classi-e-oggetti/): Scopri le basi della programmazione orientata agli oggetti in C# con esempi pratici e semplici. Perfetto per chi è alle prime armi! - [Storia ed evoluzione di C#](https://www.gedemy.it/documentazione/csharp/storia-ed-evoluzione-di-c/): C# è stato sviluppato da **Microsoft** nei primi anni 2000 come parte della piattaforma **. NET**. Il linguaggio è stato... - [Metodi statici in C#](https://www.gedemy.it/documentazione/csharp/metodi-statici/): Scopri cosa sono i metodi statici in C#, come utilizzarli e quando preferirli rispetto ai metodi di istanza. Una guida semplice e completa per principianti. - [Overloading dei metodi in C#](https://www.gedemy.it/documentazione/csharp/overloading/): C# è un linguaggio di programmazione molto versatile che permette ai programmatori di creare codice riutilizzabile e ben organizzato. Una... - [Metodi in C#](https://www.gedemy.it/documentazione/csharp/metodi/): In questo articolo parleremo dei metodi in C#, una parte fondamentale della programmazione. I metodi permettono di organizzare e riutilizzare... - [Il Comando goto e le etichette in C#: guida completa](https://www.gedemy.it/documentazione/csharp/il-comando-goto/): Il comando goto è uno degli elementi più discussi nei linguaggi di programmazione, incluso C#. È considerato da molti sviluppatori... - [Break e Continue in C#](https://www.gedemy.it/documentazione/csharp/break-e-continue/): Quando si inizia a programmare in C#, si incontrano spesso delle situazioni in cui è necessario interrompere o saltare un... - [Il Ciclo foreach in C#](https://www.gedemy.it/documentazione/csharp/il-ciclo-foreach/): Quando lavori con collezioni in C#, come array o liste, uno dei modi più semplici per iterare sugli elementi è... - [Ciclo For in C#](https://www.gedemy.it/documentazione/csharp/ciclo-for/): Il costrutto C# for ti aiuta ad eseguire lo stesso codice su molti oggetti di una struttura dati, effettuando così un ciclo. Vediamo cos'è e come usarlo. - [Operatore Ternario in C#](https://www.gedemy.it/documentazione/csharp/operatore-ternario/): L’operatore ternario in C# è un costrutto che permette di scrivere una condizione in modo più compatto, simile a un’istruzione... - [Ciclo while in C#](https://www.gedemy.it/documentazione/csharp/ciclo-while/): Loop while e do while in C#: come utilizzarli per ripetere blocchi di codice. - [Condizionali IF in C#](https://www.gedemy.it/documentazione/csharp/condizionali-if/): Impara a utilizzare l'istruzione if in C# con la nostra guida dettagliata. Esempi pratici e consigli per gestire condizioni complesse nel tuo codice. - [Valori Nullable in C#](https://www.gedemy.it/documentazione/csharp/valori-nullable/): I valori nullable in C# sono una caratteristica molto utile, specialmente quando si lavora con tipi di dati che, in... - [Strutture in C#](https://www.gedemy.it/documentazione/csharp/strutture/): Questo articolo offre una panoramica completa delle strutture in C#, dalla definizione fino alla creazione di un'istanza. - [Array in C#](https://www.gedemy.it/documentazione/csharp/array/): Scopriamo come sfruttare gli array in C# per organizzare ed elaborare i tuoi dati in modo efficiente. - [Operatori di Confronto in C#](https://www.gedemy.it/documentazione/csharp/operatori-di-confronto/): Scopri gli operatori di confronto in C#. Questa guida per principianti spiega in modo semplice e con esempi pratici come utilizzare gli operatori di confronto nel linguaggio di programmazione C#. - [Stringhe in C#](https://www.gedemy.it/documentazione/csharp/stringhe/): Le stringhe sono uno dei tipi di dati più utilizzati in C#. In questo articolo impareremo a conoscere le stringhe,... - [Differenze tra C# e altri linguaggi di programmazione](https://www.gedemy.it/documentazione/csharp/differenze-tra-c-sharp-e-altri-linguaggi-di-programmazione/): C# è uno dei linguaggi di programmazione più popolari, particolarmente apprezzato per la sua versatilità e potenza nello sviluppo di... - [Caratteri in C#](https://www.gedemy.it/documentazione/csharp/caratteri/): In questo articolo, esploreremo i caratteri in C#, partendo dalla loro rappresentazione fino a come utilizzarli e gestirli. Questo argomento... - [Input e Output in C#](https://www.gedemy.it/documentazione/csharp/input-e-output/): Quando si inizia a programmare in C#, una delle prime cose da imparare è come gestire l’input e l’output. Questo... - [Casting in C#](https://www.gedemy.it/documentazione/csharp/casting/): Utilizza il casting implicito e esplicito in C# per convertire i dati da un formato all'altro in modo preciso ed efficiente. - [Enumeratori in C#](https://www.gedemy.it/documentazione/csharp/enumeratori/): Gli enumeratori, conosciuti anche come enumerazioni o enum, sono una funzionalità molto utile in C#. Permettono di definire un gruppo... - [Lavorare con i numeri in C#](https://www.gedemy.it/documentazione/csharp/lavorare-con-numeri/): Quando si inizia a programmare in C#, una delle prime cose che impariamo è come lavorare con i numeri. In... - [Tipi di dati in C#](https://www.gedemy.it/documentazione/csharp/tipi-di-dati/): Un tipo di dato è una caratteristica fondamentale di ogni linguaggio di programmazione, inclusa C#. In parole semplici, un tipo... - [Commenti in C#](https://www.gedemy.it/documentazione/csharp/commenti/): Scopri l'importanza dei commenti in C# e come utilizzarli per semplificare la manutenzione del tuo codice. - [Costanti in C#](https://www.gedemy.it/documentazione/csharp/costanti/): Scopri cosa sono le costanti in C# e come utilizzarle nel tuo codice per migliorare leggibilità e prestazioni. - [Variabili in C#](https://www.gedemy.it/documentazione/csharp/variabili/): Scopri come dominare le variabili in C# con la nostra guida esauriente. Impara a dichiarare, inizializzare e utilizzare variabili efficacemente per ottimizzare i tuoi progetti. - [Sintassi di C#](https://www.gedemy.it/documentazione/csharp/sintassi/): Scopri la sintassi C# con la nostra guida introduttiva, scrivi il tuo primo programma ‘Hello, World!’ e preparati a eseguire il debugging del tuo primo programma. - [Guida completa all'installazione di C# su Windows, macOS e Linux](https://www.gedemy.it/documentazione/csharp/installazione/): In questo articolo, ti spiegheremo passo dopo passo come installare C# su Windows, MacOS e Linux. Non importa quale sistema... - [Introduzione a C#](https://www.gedemy.it/documentazione/csharp/introduzione/): Introduzione a C#, il linguaggio di programmazione di Microsoft, ideale per creare applicazioni desktop, web e giochi. Perfetto per principianti e sviluppatori esperti. ## Corsi - [Design Pattern per videogiochi](https://www.gedemy.it/corsi/design-pattern-per-videogiochi/): Architettura di giochi avanzata: Esplora i design pattern per migliorare l’ottimizzazione e la scalabilità dei tuoi videogiochi. - [Corso Fondamenti di Python](https://www.gedemy.it/corsi/corso-fondamenti-di-python/): Scopri i fondamenti di Python, uno dei linguaggi più popolari del mondo, con il nostro corso. Iscriviti e provalo gratis. - [Blender Masterclass 2](https://www.gedemy.it/corsi/corso-online-blender-avanzato-masterclass-2/): Unisciti alla nostra Masterclass avanzata di Blender su Gedemy e impara a creare paesaggi alieni dettagliati con tecniche professionali di modellazione, texturing, e rendering. Perfetto per artisti 3D intermedi e avanzati. - [Blender Masterclass 1](https://www.gedemy.it/corsi/corso-blender-online-masterclass-1/): Scopri le tecniche di modellazione 3D con il nostro Corso Blender Online. Iscriviti ora e inizia a trasformare la tua visione in realtà! - [Corso di programmazione in C++](https://www.gedemy.it/corsi/corso-c-plus-plus/): Iscriviti al nostro corso di programmazione C++ online e diventa esperto in C++. Scopri le basi e le tecniche avanzate con Gedemy. - [Corso introduttivo al Game Design](https://www.gedemy.it/corsi/introduzione-al-game-design/): Esplora il mondo del game design con il nostro corso introduttivo. Impara i pilastri del game design e crea esperienze di gioco significative su Gedemy. - [Corso di Disegno Manga Online](https://www.gedemy.it/corsi/corso-di-disegno-manga/): Adori il manga, gli anime e il fumetto giapponese? Impara le tecniche fondamentali e crea il tuo stile unico con il nostro Corso Online di Disegno Manga. - [Corso Tecnico di ZBrush](https://www.gedemy.it/corsi/corso-tecnico-zbrush/): Impara Zbrush da zero con il nostro corso completo. Dalle basi alle tecniche avanzate, diventa un maestro della modellazione 3D. - [Gestione degli input con Unity](https://www.gedemy.it/corsi/il-nuovo-sistema-di-input-di-unity/): Scopri come sfruttare al meglio il nuovo Input System di Unity in questo corso online tenuto da Mirko R. Aiello all'interno di Gedemy. - [Corso di Disegno Cartoon per fumetti](https://www.gedemy.it/corsi/corso-di-disegno-cartoon/): Iscriviti al nostro corso di disegno cartoon e porta la tua creatività a un nuovo livello. - [Corso completo Unity 2D](https://www.gedemy.it/corsi/corso-unity-2d-creazione-videogiochi/): Partecipa al nostro corso Unity 2D su Gedemy e impara a creare il tuo primo videogioco 2D. Guida completa da zero per aspiranti sviluppatori. - [Corso di Disegno Digitale](https://www.gedemy.it/corsi/introduzione-al-disegno-digitale/): Il corso di disegno digitale è la risorsa perfetta per chi vuole migliorare le proprie abilità artistiche. Impara a creare illustrazioni e disegni sorprendenti. - [Corso di Programmazione C#](https://www.gedemy.it/corsi/corso-completo-c-sharp/): Vuoi imparare a realizzare programmi in C# complessi utilizzando la Programmazione ad Oggetti? Inizia adesso a meno di un euro al giorno. - [Ruoli e fasi dello sviluppo di videogiochi](https://www.gedemy.it/corsi/introduzione-allo-sviluppo-di-videogiochi/): Immergiti nel mondo dello sviluppo di videogiochi con il nostro corso introduttivo. Esplora i ruoli chiave, i processi di produzione e le fasi dalla pre-produzione alla post-produzione per trasformare un'idea in un gioco di successo. --- # # Detailed Content ## Pagine ### Termini e condizioni - Published: 2025-02-02 - Modified: 2025-02-02 - URL: https://www.gedemy.it/termini-e-condizioni/ Definizioni e riferimenti legali Questo Sito Web (o questa Applicazione) La proprietà che consente la fornitura del Servizio. Accordo Qualsiasi rapporto giuridicamente vincolante o contrattuale tra il Titolare e l'Utente, regolato dalle presenti Condizioni. Proprietario (o Noi) Gedemy - The natural person(s) or legal entity that provides this Website and/or the Service to Users. Servizio Il servizio fornito da questo sito web come descritto nelle presenti Condizioni e su questo sito web. Termini Disposizioni applicabili all'uso di questo sito Web e dei servizi in questo o in altri documenti correlati, soggette a modifiche di volta in volta, senza preavviso. Utente (o Tu) La persona fisica o giuridica che utilizza questo sito Web. Questo documento è un accordo tra te e Gedemy . L'utente riconosce e accetta che accedendo o utilizzando questo sito Web o utilizzando qualsiasi servizio di proprietà o gestito da questo sito Web, ha accettato di essere vincolato e rispettare i presenti termini di servizio ("Termini di servizio"), la nostra informativa sulla privacy ("Informativa sulla privacy") e qualsiasi termine aggiuntivo applicabile. I presenti Termini regolano le condizioni per consentire l'uso di questo sito web, e, qualsiasi altro Accordo correlato o rapporto giuridico con il Titolare in modo giuridicamente vincolante. Le parole in maiuscolo sono definite nelle sezioni appropriate di questo documento. L'Utente deve leggere attentamente questo documento. Se non si accettano tutti i presenti Termini di servizio e tutti i termini aggiuntivi che si applicano a voi, non utilizzare questo sito web. Questo sito Web è fornito da: Gedemy Via Ammiraglio Caracciolo 108 Catania, Italia, 108 Italia Indirizzo email del Titolare: info@gedemy. it Riepilogo di ciò che l'Utente dovrebbe sapere Si prega di notare che alcune disposizioni dei presenti Termini possono essere applicabili solo a determinate categorie di Utenti. In particolare, alcune disposizioni possono applicarsi solo ai Consumatori o a quegli Utenti che non si qualificano come Consumatori. Tali limitazioni sono sempre esplicitamente menzionate all'interno di ciascuna sezione applicabile. In assenza di tale menzione, le sezioni si applicano a tutti gli Utenti. Termini di utilizzo Condizioni di utilizzo o di accesso singole o aggiuntive possono essere applicate in casi specifici e sono inoltre indicate all'interno di questo documento. Utilizzando questo sito Web, gli utenti confermano di soddisfare i seguenti requisiti: Non ci sono restrizioni per gli Utenti in termini di utenti aziendali / commerciali o consumatori. Contenuto di questo sito web Se non diversamente specificato, tutti i Contenuti del Sito Web sono forniti o di proprietà del Proprietario o dei suoi licenziatari. Il Titolare si è impegnato a garantire che il Contenuto del Sito Web non violi le disposizioni legali o i diritti di terzi. Tuttavia, non è sempre possibile ottenere un tale risultato. In tali casi, l'Utente è tenuto a segnalare i reclami utilizzando i recapiti specificati in questo documento. Diritti relativi ai contenuti di questo sito Web - Tutti i diritti riservati Il Proprietario si riserva e detiene tutti i diritti di proprietà intellettuale per tali contenuti. Gli utenti non possono pertanto utilizzare tali contenuti, in... --- ### Privacy Policy - Published: 2025-02-01 - Modified: 2025-02-02 - URL: https://www.gedemy.it/privacy-policy/ La presente Informativa sulla privacy descrive le nostre politiche e procedure sulla raccolta, l'uso e la divulgazione delle tue informazioni quando utilizzi il Servizio e ti informa sui tuoi diritti alla privacy e su come la legge ti protegge. Interpretazione, definizioni e riferimenti legali Interpretazione Le parole con le lettere iniziali maiuscole hanno il significato specificato nelle seguenti condizioni. Le definizioni fornite mantengono lo stesso significato sia se presentate in forma singolare che plurale. Definizioni e riferimenti legali Nel contesto della presente Informativa sulla privacy: Questo sito web (o questa applicazione):La proprietà che consente la fornitura del Servizio. Proprietario (o Noi): Gedemy-La persona fisica o giuridica che fornisce questo Sito Web e/o il Servizio agli Utenti. Tu :La persona che accede o utilizza il Servizio, o l'organizzazione o l'entità legale che la persona rappresenta durante l'accesso o l'utilizzo del Servizio, a seconda dei casi. Nel contesto del Regolamento generale sulla protezione dei dati (GDPR), l'Utente può essere indicato come Soggetto dei dati o come Utente, a significare che è la persona fisica che utilizza il Servizio. " Azienda:L'entità (indicata come "la Società", "Noi", "Ci" o "Nostro" nel presente Contratto) è identificata comeGedemysituato a Via Ammiraglio Caracciolo 108 . Nel contesto del GDPR, la Società funge da Titolare del trattamento dei dati. Affiliato :Un'entità che ha il controllo, è controllata da, o è sotto controllo comune con un'altra parte. In questo contesto, il "controllo" implica il possesso del 50 % o più delle azioni, delle partecipazioni o di altri titoli che conferiscono diritti di voto per l'elezione degli amministratori o di altre autorità di gestione. Conto :Un account utente distinto stabilito per l'accesso al nostro Servizio o a sezioni specifiche del nostro Servizio. Servizio :Il servizio fornito da questo sito web come descritto nelle presenti Condizioni e su questo sito web. Nazione :Delaware, Stati Uniti Fornitore di servizi :Qualsiasi persona fisica o giuridica che elabora i dati per conto della Società. Questo termine comprende entità o individui di terze parti ingaggiati dalla Società per supportare, fornire o eseguire servizi relativi al Servizio, o aiutare la Società nell'analisi dell'utilizzo del Servizio. Nel contesto del GDPR, i Fornitori di servizi sono classificati come Responsabili del trattamento dei dati. Servizio di social media di terze parti:È definito come qualsiasi sito web o piattaforma di social network in cui un Utente può effettuare il login o creare un account per accedere al Servizio. La pagina fan di Facebook:L'Azienda ha creato un profilo pubblico unico sul social network Facebook, accessibile all'indirizzo Dati personali :Qualsiasi informazione che si riferisce a un individuo identificato o identificabile. Ai fini del GDPR, per Dati personali si intendono tutte le informazioni relative all'Utente quali nome, numero di identificazione, dati relativi all'ubicazione, identificativo online o a uno o più fattori specifici dell'identità fisica, fisiologica, genetica, mentale, economica, culturale o sociale. Ai fini del CCPA, per Dati personali si intende qualsiasi informazione che identifica, si riferisce a, descrive o può essere associata a, o potrebbe ragionevolmente essere collegata, direttamente o indirettamente, con l'Utente.... --- ### Registrazione - Published: 2025-01-23 - Modified: 2025-01-23 - URL: https://www.gedemy.it/registrazione/ Accedi Hai perso la password? --- ### Documentazione > Guide complete, tutorial, best practices, esempi pratici e approfondimenti dettagliati per ogni livello di esperienza. - Published: 2025-01-07 - Modified: 2025-03-18 - URL: https://www.gedemy.it/documentazione/ Documentazione bla bla bla Linguaggi di programmazione Python Linguaggio Microsoft moderno utilizzato per lo sviluppo Windows, web e videogiochi con . NET e Unity. C# Linguaggio Microsoft moderno utilizzato per lo sviluppo Windows, web e videogiochi con . NET e Unity. C# Linguaggio Microsoft moderno utilizzato per lo sviluppo Windows, web e videogiochi con . NET e Unity. --- ### Connetti a Discord - Published: 2024-03-07 - Modified: 2024-11-08 - URL: https://www.gedemy.it/connetti-a-discord/ Descrizione del corso Dubbi? Suggerimenti? Unisciti al nostro server Discord! https://discord. com/invite/qCadkbgJCd --- ### Corsi iniziati - Published: 2024-01-02 - Modified: 2024-02-28 - URL: https://www.gedemy.it/corsi-iniziati/ Tutti i profili Principiante Intermedio Game Programmer Concept Artist 3D Artist 5% Completato Riprendi Corso ➔ 4% Completato Riprendi Corso ➔ 27% Completato Riprendi Corso ➔ 4% Completato Riprendi Corso ➔ 27% Completato Riprendi Corso ➔ 5% Completato Riprendi Corso ➔ 4% Completato Riprendi Corso ➔ 27% Completato Riprendi Corso ➔ 5% Completato Riprendi Corso ➔ --- ### Corsi da iniziare - Published: 2024-01-02 - Modified: 2024-01-03 - URL: https://www.gedemy.it/corsi-da-iniziare/ Tutti i profili Principiante Intermedio Game Programmer Concept Artist 3D Artist 0% Completato Avvia Corso ➔ 0% Completato Avvia Corso ➔ 0% Completato Avvia Corso ➔ 0% Completato Avvia Corso ➔ 0% Completato Avvia Corso ➔ 0% Completato Avvia Corso ➔ --- ### Pannello di controllo - Published: 2023-12-09 - Modified: 2023-12-09 - URL: https://www.gedemy.it/dashboard-del-cliente/ --- ### Chi Siamo - Published: 2023-11-26 - Modified: 2023-11-26 - URL: https://www.gedemy.it/chi-siamo/ Chi siamo Gedemy nasce per dimostrare che è possibile offrire, a chi desidera trasformare la propria passione per i videogiochi in un lavoro, percorsi formativi a costi contenuti ma altrettanto validi di quelli proposti da università e scuole professionali in presenza. Non solo, lavorando per questo obiettivo, Gedemy è riuscita a costruire un'offerta formativa a prezzi concorrenziali anche rispetto a tutti gli altri competitor on line. Per ottenere questo risultato Gedemy si è avvalsa della collaborazione di professionisti molto quotati nel mondo dei videogiochi. Insieme a loro, e con l'esperienza del founder, Mirko Raimondo Aiello, Gedemy ha svolto un lavoro di scrematura e sintesi, costruendo corsi agili, facili da maneggiare e fruire, corsi capaci di mettere in condizioni, chi li frequenta, di diventare padrone del profilo professionale scelto e di poter operare da subito nel mondo dei videogiochi, approfittando delle offerte di lavoro disponibili o producendo videogiochi in proprio. Come hanno fatto numerosi talenti, all'estero: la maggior parte dei videogiochi da cellulare, quelli che utilizziamo quando ci spostiamo su mezzi di trasporto pubblici o al bar, sono nati dall'idea e dal lavoro di una sola persona o di team estremamente ristretti. In omaggio alla sua vocazione, Gedemy ha deciso di dotarsi anche di un social interamente dedicato ai videogiochi, un social pensato per permettere agli appassionati di incontrarsi, parlarsi, scambiarsi conoscenze, notizie e occasioni di lavoro. TITOLO TIPO UNISCITI A NOI Oggi Gedemy è una realtà molto solida, continua ad ampliare la sua offerta formativa, approfondendola sempre più. Sempre più seguito e scelto da chi vede i videogiochi non solo come un divertimento ma anche come una possibilità di lavoro. Fai clic qui --- ### Webinar Live - Published: 2023-11-23 - Modified: 2023-11-30 - URL: https://www.gedemy.it/webinar-live/ --- ### Referral - Published: 2023-11-19 - Modified: 2023-11-21 - URL: https://www.gedemy.it/invita-un-amico/ Copia link Facebook LinkedIn WhatsApp Come Funziona? Usa il tuo link per invitare quanti amici o colleghi vuoi a iscriversi al piano gratuito Learnn. Quando creano il loro account avranno uno sconto di 20€ per passare al piano annuale Learnn PRO. Per ogni amico che diventa PRO tu otterrai il 25% di quello che spendono (IVA esclusa) in crediti che verranno scalati in automatico dal tuo abbonamento. In pratica ti basta condividere il tuo link per ottenere fino a 20€ per ogni amico che passa a PRO. --- ### Cronologia Acquisti - Published: 2023-06-05 - Modified: 2023-10-25 - URL: https://www.gedemy.it/cronologia-acquisti/ --- ### Dashboard - Home - Published: 2023-05-07 - Modified: 2023-11-21 - URL: https://www.gedemy.it/dashboard-home/ 🆕Ultimi corsi usciti 🆕Ultimi corsi usciti 🆕In arrivo --- ### Dashboard - Membro - Published: 2023-05-07 - Modified: 2023-05-07 - URL: https://www.gedemy.it/dashboard-membro/ --- ### Dashboard - Crea nuovo Feedback - Published: 2023-04-17 - Modified: 2023-04-17 - URL: https://www.gedemy.it/dashboard-crea-nuovo-feedback/ Chiedi supporto --- ### I nostri corsi > Sogni di diventare uno sviluppatore di videogiochi o un illustratore professionista? Scopri i nostri corsi su Gedemy e inizia il tuo percorso verso la carriera dei tuoi sogni. - Published: 2021-04-02 - Modified: 2025-01-29 - URL: https://www.gedemy.it/corsi/ I nostri corsi Inizia il corso che preferisci, gratuitamente, e poi passa a Pro per avere accesso a tutti i corsi, percorsi e tool di Gedemy. Tutti i profili Game Programmer Game Designer Concept Artist 3D Artist Corso di programmazione in C++ Impara le basi della programmazione di videogiochi e inizia a creare piccoli programmi con il C++, uno dei linguaggi più diffusi al mondo. Il C++ rappresenta un linguaggio completamente autonomo rispetto al C, pur utilizzandone sostanzialmente la sintassi. In particolare, l’introduzione di costrutti quali i template e le classi rende il C++ un linguaggio multi paradigma, principalmente quello a oggetti. Corso introduttivo al Game Design Progettare un videogioco è un lavoro affascinante e complesso. In questo corso esploreremo argomenti come la definizione di "gioco", il ruolo dei giocatori, i pilastri del Game Design e la chiave per creare esperienze di gioco significative. Avremo modo di vedere i modelli più usati dai progettisti, fra cui l'MDA, il DDE e il 4 Actions. Corso di Disegno Manga Online Il manga e gli anime: non solo semplici disegni ma stili di narrazione, di messa in scena e di vita che caratterizzano il disegno giapponese. In questo Corso Online di Manga partirai proprio dalla storia del genere: dall'onda di Hokusai fino ai giorni d'oggi, dalle tecniche di disegno base alle tecniche avanzate di ombreggiatura e colorazione, anatomia, retini e reference, con l'obiettivo di ottenere le basi per iniziare a mettere su carta la tua storia. Corso Tecnico di ZBrush ZBrush è il software di scultura digitale e di modellazione 3D più utilizzato nel mondo dell’industria degli effetti visivi, animazione e videogiochi. La recente, accresciuta accessibilità della tecnologia di stampa 3D, ha reso necessario a tutti i professionisti del settore di adeguare le proprie competenze imparando a usarla. Sempre più artisti, oggi usano ZBrush come strumento di progettazione 3D. Gestione degli input con Unity La gestione dei comandi è fondamentale in ogni videogame che si rispetti. A differenza del più classico Input Manager, il pacchetto denominato Input System implementa un nuovo sistema per utilizzare qualsiasi tipo di dispositivo e gestirne il controllo all’interno di Unity. Permette agli sviluppatori di creare delle associazioni tra le azioni e i dispositivi di input, eliminando la necessità di controllare il dispositivo che utilizza l’utente, o il tasto che effettivamente preme. Nel corso partirai da una descrizione di entrambi i sistemi per arrivare a studiare e comprendere i punti di forza di ognuno. Corso di Disegno Cartoon per fumetti Il disegno cartoon è uno stile tanto semplice alla vista ma che si rivela denso di storia e soprattutto molto complesso da realizzare. Dai primissimi fumetti come Topolino fino ai più moderni Steven Universe, Over the Garden Wall e I Due Fantagenitori, due elementi legano con un unico filo conduttore il genere: l’espressività dei personaggi e il colore. Oggi i cartoni animati e cartoon sono anche largamente impiegati in campo pubblicitario. In questo corso vi aiuteremo passo passo a sviluppare il vostro stile partendo dalle basi dei grandi maestri.... --- ### F.A.Q. > Scopri tutte le informazioni relative a Gedemy: devo essere diplomato? Quanto costano i corsi? Che preparazione otterrò? - Published: 2019-12-21 - Modified: 2025-03-03 - URL: https://www.gedemy.it/faq/ F. A. Q. Se non trovi la risposta che cerchi contattaci. --- ### Homepage > Gedemy è la Game Academy italiana di corsi online dedicata allo sviluppo di videogiochi e all'arte digitale. - Published: 2019-12-17 - Modified: 2025-04-07 - URL: https://www.gedemy.it/ --- ## Articoli ### Come scrivere un GDD efficace nel 2025 (e un template scaricabile) > Scopri come scrivere un GDD efficace nel 2025. Guida completa + template scaricabile gratis in PDF/Word per i tuoi progetti di game design. - Published: 2025-04-22 - Modified: 2025-04-22 - URL: https://www.gedemy.it/blog/come-scrivere-gdd-2025-template-gratis/ - Categorie: Game Design Nel mondo dello sviluppo di videogiochi, avere una documentazione solida e chiara non è mai stato così importante. Nel 2025, tra progetti indie, produzioni AA e team ibridi da remoto, un GDD (Game Design Document) efficace rappresenta la colonna portante di qualsiasi videogioco ben progettato. In questo articolo scoprirai: Cosa è un GDD e perché è ancora fondamentale nel 2025 Cosa deve contenere un GDD moderno Come scriverlo in modo professionale Dove scaricare un template gratuito e aggiornato Cos'è un GDD e perché è fondamentale nel 2025 Il GDD (Game Design Document) è il documento che raccoglie tutte le informazioni essenziali per lo sviluppo di un videogioco. Serve come guida per il team di sviluppo, fornendo una visione chiara e condivisa del progetto. Nel 2025, con il moltiplicarsi di progetti collaborativi da remoto e l’uso di piattaforme digitali, un GDD ben strutturato è diventato più che mai una necessità. Non solo aiuta a mantenere allineato il team, ma rappresenta anche un ottimo strumento per presentare il gioco a publisher, investitori o incubatori. Cosa deve contenere un Game Design Document completo Un GDD efficace è completo, chiaro e modulare. Ecco le sezioni fondamentali da includere: Titolo del gioco e pitch Obiettivi e USP (Unique Selling Proposition) Genere e target di riferimento Gameplay core loop Meccaniche principali Narrativa e ambientazione Personaggi e lore Level design e progressione Interfaccia utente (UI/UX) Monetizzazione e business model Tecnologie e piattaforme Roadmap e milestone di sviluppo Glossario e riferimenti visivi Ogni sezione dovrebbe essere concisa, ma sufficientemente dettagliata per poter essere compresa anche da un esterno al team. Template gratuito di GDD: scarica il modello aggiornato Per aiutarti a partire subito con il piede giusto, abbiamo creato un template scaricabile gratuitamente in formato PDF e Word. ✉️ Clicca qui per scaricare il Template GDD 2025 Il file è pensato per adattarsi sia a progetti indie sia a team più strutturati, ed è compatibile con Google Docs, Notion e Microsoft Word. Nel template troverai: Struttura modulare e intuitiva Esempi di sezioni già compilate Spazi per immagini, schemi e diagrammi Note con consigli pratici Strumenti e tool per scrivere un GDD professionale Oltre ai classici software di videoscrittura, ci sono strumenti che rendono la gestione e condivisione del GDD più fluida: Notion – ideale per team agili, permette una gestione modulare e collaborativa. Google Docs – perfetto per lavorare in cloud e in tempo reale. Microsoft Word / OneNote – ottimo per chi preferisce il classico ambiente offline. Milanote / ClickUp – per aggiungere elementi visuali e task di progetto. Conclusione: un GDD ben scritto è la base del tuo successo Un GDD non è solo burocrazia. È una bussola. Aiuta a evitare costosi errori, a coordinare il lavoro e a trasmettere professionalità. Inizia oggi stesso con il nostro template GDD gratuito, personalizzalo, e porta il tuo progetto al livello successivo. ✉️ Scarica il template GDD 2025🔗 Hai trovato utile questa guida? Condividila con il tuo team o con altri dev indie. --- ### Mercato globale dei videogiochi: il report 2023 - Published: 2025-01-20 - Modified: 2025-02-17 - URL: https://www.gedemy.it/blog/mercato-globale-dei-videogiochi-il-report-2023/ - Categorie: Studi Il settore dei videogiochi ha vissuto una crescita esponenziale negli ultimi anni, consolidandosi come una delle industrie più redditizie a livello globale. Nel 2023, questo mercato ha raggiunto nuove vette, influenzato da innovazioni tecnologiche, cambiamenti nel comportamento dei consumatori e nuovi modelli di business. Questo report esplora i principali fattori che hanno caratterizzato l’anno, analizzando come si sono evolute le quote di mercato, il tempo di gioco, i nuovi trend e molto altro. Il report nella sua versione integrale è scaricabile gratuitamente sul loro sito. Distribuzione del mercato: PC vs Console Uno degli aspetti chiave del mercato videoludico riguarda la distribuzione tra le piattaforme PC e Console. Mentre il settore PC continua a crescere, le console mantengono una quota importante grazie al loro vasto pubblico e alla popolarità di alcuni titoli esclusivi. Il 2023 ha visto un aumento delle vendite di hardware console con l'arrivo di nuove versioni migliorate di sistemi già noti. Nel frattempo, il mercato PC ha registrato una crescita significativa nelle vendite di giochi digitali, complice l’accesso a un numero sempre maggiore di piattaforme di distribuzione. L'evoluzione del tempo dedicato ai videogiochi Nel 2023, il tempo medio di gioco è aumentato, grazie a una maggiore offerta di contenuti e alla presenza di piattaforme di streaming come Twitch e YouTube, che hanno incentivato gli utenti a trascorrere più tempo nell'ecosistema videoludico. I giocatori trascorrono una media di 7-8 ore settimanali giocando, con picchi durante i fine settimana. Questo aumento si riflette soprattutto nei giochi multiplayer online, che offrono esperienze più sociali e competitive. Gli eventi eSport e le nuove tecnologie di realtà virtuale hanno contribuito ulteriormente all’espansione di questo tempo di gioco. Rilascio di nuovi giochi e impatto sul settore Il processo di sviluppo e rilascio dei videogiochi ha avuto un grande impatto sul mercato globale nel 2023. Molti titoli attesi hanno generato un'enorme attenzione, portando a preordini massicci e guadagni record già nelle prime settimane di lancio. Tuttavia, si è notato che la qualità del gioco al rilascio è diventata un fattore determinante per il successo a lungo termine. Il 2023 è stato un anno in cui i giocatori si sono dimostrati sempre più esigenti, richiedendo un’esperienza di alta qualità sin dal primo giorno, evitando prodotti incompleti o buggy. Le case di produzione hanno dovuto adattarsi e migliorare i loro processi di sviluppo, specialmente per quanto riguarda le patch e gli aggiornamenti post-lancio. Trend emergenti e modelli di business innovativi Nel corso del 2023 sono emersi nuovi trend che hanno ridefinito il panorama videoludico. Il modello free-to-play continua a dominare, ma con delle varianti sempre più sofisticate, come le microtransazioni e i battle pass, che offrono contenuti esclusivi a chi è disposto a pagare. Inoltre, il concetto di abbonamenti come Xbox Game Pass e PlayStation Plus si è consolidato, offrendo ai giocatori accesso illimitato a una vasta libreria di titoli a fronte di una quota mensile. Questa tendenza ha ampliato notevolmente l’accessibilità dei giochi e ha permesso ai giocatori di provare più titoli senza l'impegno di acquisto.... --- ### Unity 6 è qui: scopriamo le novità > Unity 6 è disponibile: scopriamo le novità. - Published: 2024-10-17 - Modified: 2024-10-25 - URL: https://www.gedemy.it/blog/unity-6-e-qui-scopriamo-le-novita/ - Categorie: Engine Unity 6 è disponibile: scopriamo le novità. Unity 6 è stato ufficialmente rilasciato! Questa è una notizia piuttosto importante, dato che Unity ha recentemente discusso del suo nuovo schema di rilascio e di come ci saranno intervalli più lunghi tra le versioni principali (non più una versione ogni anno). Quali novità presenta Unity 6? Molteplici miglioramenti alla grafica, sia in termini di qualità che di prestazioni. GPU Resident Drawer, GPU Occlusion Culling e Spatial Temporal Post-Processing (STP) contribuiscono tutti insieme a un enorme boost delle prestazioni semplicemente abilitando un'impostazione all'interno dell'Editor. Gli Adaptive Probe Volumes semplificano l'illuminazione indiretta insieme a un sistema denominato Scenario Blending (Time of Day) e a vari miglioramenti del VFX Graph e dello Shader Graph. Adaptive Probe Volumes in azione. Il Multiplayer è in continua evoluzione. L'introduzione del Multiplayer Center permette l'accesso a tutta una serie di tool e servizi disponibili per i propri progetti, con la possibilità di selezionare solo quelli che servono realmente. I Multiplayer Widgets sono dei piccoli pacchetti UI pre-assemblati (leggeri, configurabili e personalizzabili) che permetteranno agli sviluppatori l'inserimento di feature multiplayer quali lobby, connessioni a specifiche sessioni, o voice-chat. Il Multiplayer Play Mode permette di testare il gameplay in maniera immediata, lanciando fino a 4 istanze indipendenti dello stesso videogioco, direttamente all'interno dell'Editor, mentre la Distributed Authority aiuta gli sviluppatori a realizzare dei giochi multigiocatore senza utilizzare un server di riferimento, evitando però disconnessioni e fenomeni di lag. Multiplayer Center in Unity 6. Lato Web abbiamo, anche qui, dei miglioramenti alle performance, aumentando il limite di memoria a 4GB, e portando finalmente il Web ai devices mobile. L'intelligenza artificiale Muse (e tutti i tool derivati) continua a crescere insieme ai pacchetti Sentis, UI Toolkit, Memory Profiler, e altro. Con la nuova versione sono stati anche rilasciati diversi nuovi progetti sample! Puoi scaricare la demo gratuita di Fantasy Kingdom, che include anche il Synty pack. La demo dimostrativa Megacity Metro è stata aggiornata a Unity 6, e l'eccellente demo tecnica Time Ghost è anch'essa disponibile e scaricabile (Character, Environment). https://www. youtube. com/watch? v=o1JIK5W3DRU Unity inoltre ospiterà l'evento Office Hours (in precedenza chiamato Dev Blitz Days) per rispondere a tutte le domande, il primo dei quali focalizzato sulla parte grafica in arrivo il 23 Ottobre. Senza dubbio una release che porta delle novità molto corpose! --- ### Come gli sviluppatori indipendenti stanno rivoluzionando l'industria > Gli sviluppatori indipendenti stanno cambiando il mondo dei videogiochi. Scopri le nuove tendenze del gaming indie e supporta il loro lavoro. - Published: 2024-06-22 - Modified: 2024-11-07 - URL: https://www.gedemy.it/blog/come-gli-sviluppatori-indie-stanno-rivoluzionando-il-settore/ - Categorie: Studi Il mondo dei videogiochi si evolve e rinnova molto rapidamente, e al centro di questa rivoluzione ci sono gli sviluppatori indipendenti (indie). Lontani dai budget milionari delle grandi case di produzione, questi creativi stanno plasmando il futuro del gaming con idee innovative, storie coinvolgenti e un'energia contagiosa. Per chi non lo sapesse, il termine "indie" è l'abbreviazione di "indipendente" e si riferisce a sviluppatori di videogiochi che lavorano al di fuori delle grandi aziende di produzione. Questi sviluppatori spesso operano in piccoli team o addirittura da soli, con budget limitati e una grande passione per i videogiochi. L'indipendenza creativa è uno dei tratti distintivi degli sviluppatori indie, che non sono vincolati dalle pressioni commerciali dei grandi publisher e possono sperimentare liberamente con i generi. Premesso questo, vediamo adesso di concentrarci sul come gli sviluppatori indie stanno cambiando le regole del gioco e quali sono le tendenze più interessanti che stanno emergendo. L'ascesa degli sviluppatori indipendenti Negli ultimi anni, abbiamo assistito a un'esplosione di giochi indie di successo. Titoli come "Stardew Valley", "Hollow Knight" e "Undertale" hanno conquistato milioni di giocatori in tutto il mondo, dimostrando che non servono grandi team e budget stratosferici per creare esperienze memorabili. Ma cosa rende gli sviluppatori indie così speciali? Creatività senza limiti Una delle caratteristiche peculiari degli sviluppatori indie è la loro libertà creativa. Non essendo vincolati dalle pressioni commerciali dei big del settore, possono sperimentare con generi, meccaniche di gioco e storie originali, dando vita a mondi unici e sorprendenti. Storie che toccano il cuore Molti giochi indie si distinguono per le loro storie profonde e toccanti. Spesso affrontano temi complessi come la perdita, l'amore, la malattia mentale e l'identità, offrendo ai giocatori esperienze emotivamente coinvolgenti e riflessioni significative. Un legame diretto con la community Gli sviluppatori indie hanno un rapporto privilegiato con la loro community di giocatori. Ascoltano i feedback, interagiscono sui social media e coinvolgono i fan nello sviluppo dei loro giochi, creando un senso di appartenenza e partecipazione che è difficile da trovare nelle grandi produzioni. Sostieni gli sviluppatori indipendenti Se ami i videogiochi e vuoi supportare la creatività e l'innovazione, acquista giochi indie, lascia recensioni positive, parla dei tuoi titoli preferiti sui social media e partecipa alle community online. Se hai un negozio di videogiochi potresti proporre ai tuoi clienti anche i migliori titoli indipendenti del momento (se invece sei interessato ad aprire un negozio di videogiochi, a questo link trovi info e consigli utili), offrendo loro la possibilità di scegliere. In ogni caso il tuo supporto può fare la differenza e aiutare gli sviluppatori indie a continuare a creare esperienze straordinarie! Nuove tendenze nel gaming indie Il mondo dei giochi indie è un terreno fertile per l'innovazione. Ecco alcune delle tendenze più interessanti che stanno emergendo: Giochi con un forte impatto sociale: molti sviluppatori indie utilizzano i videogiochi per affrontare temi importanti come il cambiamento climatico, la disuguaglianza sociale e la discriminazione. Esperienze narrative immersive: sempre più giochi indie puntano su storie coinvolgenti e personaggi memorabili, offrendo ai... --- ### Generazione Millennial: tra nostalgia videoludica e carriera digitale > Generazione millennial, retrogaming e vecchie console: chi è nato negli anni Ottanta e Novanta e la nostalgia per i giochi vintage. - Published: 2024-05-20 - Modified: 2024-05-20 - URL: https://www.gedemy.it/blog/generazione-millennial-nostalgia-videoludica-e-carriera-digitale/ - Categorie: Studi I Millennial, cresciuti tra gli affascinanti scenari dei videogiochi di fine anni Ottanta, Novanta e Anni zero, hanno sviluppato una profonda affezione per i classici del mondo videoludico. Titoli intramontabili come Street Fighter, Tekken 3, Mario Bros, Resident Evil, Sonic e Mortal Kombat hanno plasmato l'infanzia e l'adolescenza di questa generazione, diventando vere e proprie icone di un'era d'oro del gaming. La nostalgia per le vecchie console, i vecchi giochi e le avventure epiche vissute virtualmente è inconfondibile, motivo per cui molti Millennial si trovano a ricercare quei momenti magici, spesso tramite le moderne piattaforme vintage che permettono di rigiocare ai capolavori del passato. Il mercato dell’usato nel Retrogaming: cimeli di una generazione connessa Oggi più che mai, esiste un vero e proprio mercato dell'usato nel mondo del retrogaming, dove le vecchie console e i giochi vintage hanno un valore affettivo e collezionistico non indifferente. Le piattaforme online specializzate offrono la possibilità di acquistare e vendere reliquie videoludiche, permettendo ai Millennial di riportare in vita quei ricordi indelebili e di condividere con altri appassionati la passione per la storia del gaming. L’inganno della nostalgia: "ciofeche" e surrogati videoludici Tuttavia, in mezzo a questa rinnovata ondata di nostalgia, c'è da fare i conti con un fenomeno spesso sottovalutato: l'ascesa dei surrogati videoludici, veri e propri “falsi amici” del retrogaming. Si tratta di dispositivi che promettono di riportare in vita i gloriosi giorni delle vecchie console, offrendo centinaia di giochi caricati ma spesso di dubbia qualità e funzionalità. I surrogati di Game Boy con migliaia di giochi “amarcord” possono facilmente rivelarsi una delusione amara per gli appassionati, portando più frustrazione che piacere di gioco. Scegliere con accortezza: il giusto equilibrio tra passato e presente Per i Millennials appassionati di retrogaming, è fondamentale saper discernere tra autentici gioielli vintage e ciofeche digitali senza valore. Prima di incantarsi di fronte a una console “vintage” con migliaia di giochi pre-caricati, è importante effettuare una ricerca minuziosa e accertarsi della qualità e delle prestazioni del dispositivo. L'esperienza di gioco, la fedeltà ai titoli originali e la longevità della console sono elementi cruciali da considerare prima di acquistare un prodotto che promette emozioni del passato. Il lato positivo della nostalgia: una fonte d'ispirazione per il futuro Nonostante le insidie legate alla mercificazione della nostalgia, la passione dei Millennials per i videogiochi vintage può rivelarsi una risorsa preziosa anche in ambito professionale. Molti appartenenti a questa generazione hanno trasformato la loro passione per il gaming in una vera e propria carriera digitale, specializzandosi come SEO strategist o content manager, o altri professionisti del settore. La capacità di apprezzare il passato, reinterpretandolo in chiave moderna e creativa, è un valore aggiunto che contribuisce a rendere unico il lavoro dei Millennials nel mondo digitale. Concludendo: nostalgia come motore di innovazione In definitiva, la generazione Millennial porta con sé un bagaglio di ricordi e emozioni legati ai videogiochi del passato, che rappresentano non solo una fonte di divertimento, ma anche di ispirazione e creatività. Navigando tra le tentazioni del retrogaming e... --- ### Gamer e studio: un mix esplosivo da gestire con ironia > Giovani gamers e studio: è possibile trovare un metodo di studio che concili il successo scolastico e il gaming? Leggi per saperne di più! - Published: 2024-05-11 - Modified: 2024-05-16 - URL: https://www.gedemy.it/blog/giovani-gamer-e-studio-mix-esplosivo-da-gestire-con-ironia/ - Categorie: Studi Lunghe sessioni di gaming che si protraggono fino alle prime luci dell'alba, momenti di studio compressi tra combattimenti epici e scorribande virtuali... il rapporto tra i giovani gamer e lo studio è spesso oggetto di dibattiti accesi. Ma è davvero impossibile conciliare il mondo dei videogiochi con il percorso accademico? Scopriamo insieme le potenzialità insospettate di questa insolita combinazione che, gestita con intelligenza, potrebbe rivelarsi un valido alleato nello sfidare gli esami più impegnativi, come il test d'ingresso universitario TOLC I nel campo dell'ingegneria. L'attrattiva magnetica dei videogiochi I videogiochi esercitano un fascino irresistibile sui giovani, trascinandoli in mondi virtuali avvincenti dove il tempo sembra dilatarsi fino a non avere più alcuna importanza. Le ore trascorse di fronte allo schermo possono sembrare un lusso inaccessibile per chi si trova a preparare un esame cruciale, come un test d’ingresso. Sarebbe infatti forse il caso di affidarsi a un corso di preparazione per il test d’ingegneria TOLC I e farsi consigliare anche relativamente al metodo di studio: quanto tempo destinare al giorno all’allenamento sui quiz e quanto al gaming? Saper dosare il tempo tra lo studio e il gaming potrebbe rivelarsi un'arte da maestro. Gamer eccellenti in ambito accademico Contrariamente ai pregiudizi diffusi, numerosi giovani gamer si sono rivelati studenti eccellenti, brillando in percorsi universitari come l'ingegneria e l'informatica. La capacità di risolvere enigmi complessi in un videogioco potrebbe trasformarsi in un'abile strategia per affrontare gli ostacoli accademici con determinazione e intelligenza. Il Gaming come valvola di sfogo Il gaming non è solo un intrattenimento, ma può fungere da valvola di sfogo in momenti di stress e tensione legati agli esami di maturità, ai test d'ingresso universitari o agli esami universitari. La decompressione offerta dallo scendere in campo con un controller virtuale potrebbe risultare un toccasana per rilassarsi e ricaricare le energie, preparandosi al meglio per la sfida successiva. Gestire con saggezza il mix gaming e studio La chiave per conciliare gaming e studio risiede nella gestione oculata del tempo e delle priorità. Creare una routine equilibrata che preveda spazi dedicati allo studio, momenti di svago con i videogiochi e pause rigenerative è fondamentale per evitare che il gaming diventi un'insormontabile distrazione. L'Importanza del metodo di studio Non sono i videogiochi in sé a minare la produttività degli studenti, bensì la mancanza di un metodo di studio efficace. Impostare obiettivi chiari, suddividere il materiale da studiare in piccole unità, alternare fasi di concentrazione con pause attive e, perché no, concedersi qualche partita tra un capitolo e l'altro potrebbe rivelarsi una strategia vincente. Sicuramente se si frequenta un corso di preparazione test d’ingresso o si ha un tutor che prepara per l’esame di maturità o per gli esami universitari potrebbe essere lui o lei ad aiutarci a trovare questo metodo di studio virtuoso. Il ruolo dello sfogo e del riposo Gestire con saggezza il tempo dedicato al gaming permette di sfruttarne appieno i benefici come valvola di sfogo, senza trascurare l'importanza del riposo e del relax nella preparazione agli esami. Un'evasione controllata e... --- ### Matthew Bromberg: Il nuovo CEO di Unity > Unity sotto una nuova leadership: Matthew Bromberg. Scopri come il suo arrivo potrebbe influenzare gli sviluppatori e i creatori che utilizzano la piattaforma. - Published: 2024-05-07 - Modified: 2024-05-07 - URL: https://www.gedemy.it/blog/matthew-bromberg-il-nuovo-ceo-di-unity/ - Categorie: Engine Matthew Bromberg, precedentemente COO di Zynga e SVP di EA per la strategia e le operazioni, è stato nominato nuovo CEO di Unity. Bromberg si unisce a Unity per prendere il posto dell’ex John Riccitiello, dimesso nell’ottobre 2023. Con l’arrivo di Bromberg, Jim Whitehurst, che era stato nominato CEO ad interim, entra nel consiglio di amministrazione di Unity come presidente esecutivo. Roelof Botha, invece, passerà dal ruolo di presidente del consiglio di amministrazione a quello di direttore indipendente del consiglio. Botha ha espresso grande soddisfazione per l’ingresso di Bromberg in Unity. Ha affermato che sia il consiglio di amministrazione che l’intero team dirigenziale sono convinti che la leadership dimostrata da Matt, la sua mentalità focalizzata sul cliente e la sua vasta conoscenza del settore dei giochi dinamico lo rendano il leader ideale per guidare Unity nel futuro. Whitehurst, che ha discusso i piani a lungo termine di Unity alla GDC 2024, ha detto che è stato un “grande onore” essere alla guida dell’azienda ad interim. Ha espresso entusiasmo all’idea di lavorare a stretto contatto con Matt per sostenere l’impegno continuo dell’azienda verso il successo dei creatori e l’innovazione. “Sono entusiasta di unirmi a Unity mentre abbraccia il suo prossimo capitolo”, ha detto Matthew Bromberg.  "Non vedo l’ora di lavorare con Jim, il Consiglio e le incredibili persone di Unity per fornire la migliore piattaforma integrata per i creatori per portare grandi giochi ed esperienze al loro pubblico a livello globale, mentre aiuto anche ad accelerare la crescita dei ricavi e la redditività dell’azienda". --- ### Unreal Engine 5.4: una nuova era per il gaming - Published: 2024-04-29 - Modified: 2024-04-29 - URL: https://www.gedemy.it/blog/unreal-engine-5-4-una-nuova-era-per-il-gaming/ - Categorie: Engine Il tanto atteso Unreal Engine 5. 4 è finalmente disponibile, portando con sé una serie di nuove funzionalità e miglioramenti che promettono di rivoluzionare l’industria del gaming. Questo aggiornamento, annunciato alcune settimane fa, si prefigge l’obiettivo di migliorare la qualità dell’immagine, aumentare le prestazioni e ottimizzare una serie di funzionalità. Questa versione include gli strumenti che sono stati utilizzati internamente per costruire e spedire titoli di successo come Fortnite Chapter 5, Rocket Racing, Fortnite Festival e LEGO Fortnite. Il miglioramento del TSR (Temporal Super Resolution) di Unreal Engine è uno degli aspetti chiave di questo aggiornamento. Questa tecnologia, che rappresenta un’alternativa a soluzioni come NVIDIA DLSS, AMD FSR e Intel XeSS, ha un vantaggio unico: è incorporata direttamente in Unreal Engine, eliminando la necessità di plugin esterni. Nonostante in passato il TSR abbia mostrato alcuni problemi di qualità rispetto a tecnologie simili, è evidente che gli sviluppatori di Unreal Engine hanno dedicato molte risorse per affrontare questa questione, come illustrato nel video del recente lancio di Unreal Engine 5. 4. https://www. youtube. com/watch? v=ltQfA5Wqdik Nanite e Tessellation Nanite, la tecnologia di Epic Games per la grafica di alta qualità, continua a ricevere miglioramenti. Una nuova funzionalità sperimentale di Tessellation consente di aggiungere dettagli fini quali crepe e pretuberanze, direttamente durante la fase di rendering, evitando di modificare la mesh originale. Inoltre, l’aggiunta del Variable Rate Shading (VRS) software tramite i materiali di calcolo Nanite porta a notevoli guadagni di performance. Strumenti di animazione Novità anche per quanto riguarda il rigging e l'animazione, con l'introduzione del nuovo Modular Rigging, ossia la possibilità, una volta importato il vostro personaggio, di identificare le varie parti che le compongono (come ad esempio mani, piedi, braccia, testa) e quindi effettuare il rigging direttamente all'interno del software, tramite l'utilizzo di alcuni moduli. Diventa inoltre production-ready, uscendo quindi dalla fase sperimentale, il Motion Matching, ovvero il sistema di interpolazione, tramite Machine Learning, delle varie animazioni e azioni che un personaggio esegue in fase di gioco. In conclusione, Unreal Engine 5. 4 rappresenta un passo avanti significativo per l’industria del gaming, portando con sé una serie di miglioramenti e nuove funzionalità. Tuttavia, queste sono solo alcune delle novità introdotte. Per una panoramica completa di tutte le funzionalità e i miglioramenti di Unreal Engine 5. 4, ti invitiamo a visitare il sito ufficiale. Continua a seguire le ultime novità per rimanere aggiornato sulle future innovazioni di Unreal Engine. Buon gaming! --- ### Capcom aumenta gli stipendi - Published: 2024-04-18 - Modified: 2024-04-18 - URL: https://www.gedemy.it/blog/capcom-aumenta-gli-stipendi/ - Categorie: News Mentre molte aziende di videogiochi in tutto il mondo continuano a tagliare posti di lavoro, Capcom ha annunciato la sua decisione di aumentare gli stipendi dei suoi dipendenti giapponesi. La mossa avrà impatto sia sui lavoratori attuali che sulle nuove assunzioni di laureati. Secondo un comunicato stampa, Capcom aumenterà gli stipendi di tutti i suoi attuali dipendenti di oltre il 5% in media nel FY24 a partire dal 1 aprile 2024. Riceveranno anche un pagamento speciale una tantum come "investimento nelle persone che supportano il futuro dell'azienda". Per quanto riguarda le nuove assunzioni di laureati, il loro stipendio mensile iniziale aumenterà del 27,6% — da ¥235. 000 ($1. 569) a ¥300. 000 ($2. 003). Le modifiche entreranno in vigore nel FY25, che va dal 1 aprile 2025 al 31 marzo 2026. L'ultima volta che Capcom ha aumentato gli stipendi per i suoi lavoratori giapponesi è stato nell'aprile 2022, aumentando lo stipendio base del 30% e introducendo un sistema di bonus legato alle prestazioni aziendali. Questo fa parte della strategia di investimento HR dell'azienda volta a migliorare "il suo valore aziendale e a stabilire un rapporto di fiducia con i dipendenti e gli stakeholder". Secondo il rapporto HR di Capcom, lo stipendio annuo medio in tutta l'azienda è aumentato da ¥5,88 milioni ($39,3k) nel FY19 a ¥7,66 milioni ($51,1k) nel FY23. L'editore assume anche circa 150 laureati ogni anno, e l'età media dei suoi dipendenti è di 37,6 anni. Nonostante le notizie positive da Capcom, molte aziende di videogiochi — dai grandi editori AAA ai piccoli studi indie — stanno ora tagliando i costi, colpendo migliaia di sviluppatori di videogiochi in tutto il mondo. Circa 8. 000 professionisti dell'industria dei giochi hanno già perso il lavoro nei primi due mesi del 2024, con oltre 2. 000 licenziamenti solo a febbraio. --- ### Giocare ai videogiochi migliora la memoria e l'attenzione? > Migliorare la tua memoria con i videogiochi? Scopri cosa dice uno studio americano nel nostro ultimo articolo. - Published: 2024-04-08 - Modified: 2024-11-07 - URL: https://www.gedemy.it/blog/uno-studio-americano-attesta-che-giocare-ai-videogiochi-migliora-la-memoria/ - Categorie: Studi Una recente ricerca pubblicata su JAMA Network Open ha portato alla luce potenziali benefici dei videogiochi per la mente, contrariamente a precedenti preoccupazioni sugli effetti dannosi che questi potrebbero avere sullo sviluppo cerebrale dei giovani. Questo ampio studio, condotto nell'ambito del progetto Adolescent Brain Cognitive Development (ABCD) negli Stati Uniti, ha coinvolto più di 2000 bambini di età 9-10 anni provenienti da 21 diverse località. I partecipanti sono stati suddivisi in gruppi di videogiocatori e non, e i risultati hanno evidenziato come i primi abbiano superato i secondi in test che misuravano la concentrazione. Gli esercizi includevano il reagire a segnali di stop e la memorizzazione di espressioni facciali, con i videogiocatori che hanno mostrato migliori capacità di autocontrollo e memorizzazione a breve termine. Differenze nell'attività cerebrale tra i due gruppi sono state anche osservate dagli scienziati durante i test. Bader Chaarani, neuroscienziato all'Università del Vermont e uno degli autori dello studio, ha sottolineato l'importanza dei risultati, pur ricordando che sono necessarie ulteriori ricerche per confermare definitivamente gli effetti dei videogiochi sullo sviluppo cerebrale. Sebbene studi passati abbiano presentato conclusioni variegate sull'argomento, questa ricerca contribuisce a una comprensione più articolata del rapporto tra il gaming e le capacità cognitive. Gli esperti, tuttavia, avvertono contro conclusioni precipitose e enfatizzano la necessità di approfondire gli studi per esplorare le implicazioni a lungo termine del gioco sui giovani. Chaarani ha anche evidenziato che, nonostante i benefici cognitivi che possono derivare dal gaming, ci potrebbero essere effetti negativi o compromessi in altre funzioni cerebrali, rimarcando l'importanza di monitorare attentamente e continuare la ricerca sull'impatto dei videogiochi sulla salute mentale e cognitiva dei bambini. --- ### GDC 2024: uno sguardo approndito a Unity 6 > Miglioramenti alle pipeline di rendering, ai tool di Shader e VFX Graph, nuovi strumenti di AI e tanto altro ancora. - Published: 2024-03-23 - Modified: 2024-03-23 - URL: https://www.gedemy.it/blog/unity-gdc-2024-novita/ - Categorie: Engine Durante l'attuale Game Developers Conference 2024, Unity Technologies ha condiviso una presentazione completa che mostra gli ultimi sviluppi e offre uno sguardo più da vicino a Unity 6, la prossima LTS dell'engine. Dapprima annunciato durante l'evento annuale denominato Unite 2023, Unity 6 è destinato a introdurre miglioramenti delle prestazioni, del multiplayer, supporto alla tecnologia WebGPU e supporto più profondo per i dispositivi XR. Con questa release, Unity mira a ottimizzare l'uso di CPU e GPU, accelerare la creazione di giochi multiplayer e introdurre nuovi strumenti di AI, soprattutto Unity Muse. Alla GDC, il team ha spiegato come i miglioramenti alle render pipeline e i nuovi tool e strumenti di AI possono aiutare gli sviluppatori a ottenere una fedeltà grafica e flessibilità impressionati. Inoltre, sono stati presentati nuovi strumenti come il Multiplayer Center e il Multiplayer Playmode, nuovi strumenti di collaborazione come Unity Cloud (in collaborazione con Azure), e un nuovo sguardo agli Adaptive Probe Volumes (APV), che permettono di migliorare l'illuminazione rendendola più naturale ed espressiva. https://www. youtube. com/watch? v=o9AGkB9nnkc&ab_channel=Unity In precedenza, Unity Technologies ha anche pubblicato il suo rapporto annuale sui giochi, delineando lo stato attuale del settore e fornendo una panoramica sui principali eventi della scorsa annata. Nel report, il team ha discusso delle sfide economiche in corso e ha spiegato come gli sviluppatori si stanno adattando a queste problematiche, sperimentando, effettuando investimenti strategici e assumendosi rischi calcolati, per ottimizzare le risorse in diminuzione e trarne il massimo. --- ### Il gaming come strumento di marketing: FEEXPO - Published: 2024-03-18 - Modified: 2024-03-18 - URL: https://www.gedemy.it/blog/feexpo-il-gaming-come-strumento-di-marketing/ - Categorie: Eventi La Fiera di Bergamo ha dato il via a FEEXPO, segnando l'inizio di un evento destinato a diventare un punto di riferimento per gli operatori dell'amusement e del gaming. Dal 27 al 29 febbraio, FEEXPO si propone di esplorare le sinergie tra diversi ambiti dell'intrattenimento e dell'innovazione tecnologica, trasformandosi in un vivace hub di idee, prodotti e soluzioni all'avanguardia. All'interno di questo contesto, il format EspoGame dell'Osservatorio Italiano Esports (OIES) ospita una vasta gamma di esponenti dell'industria dei videogiochi oltre agli innovatori dell'intrattenimento, arricchito soprattutto da un fitto programma di convegni, workshop e panel, dove esperti del settore discutono temi caldi e offrono approfondimenti sul futuro dell'intrattenimento digitale e fisico. Con l'apertura di FEEXPO, l'attenzione si è immediatamente concentrata sul primo panel dedicato al ruolo del gaming come strumento di marketing per attrarre le giovani generazioni. A prendervi parte sono stati alcuni tra i maggiori esperti del settore, tra cui Luca Bonaiti, Marketing Manager di MSI, Carlo Alessandri, President & co-Founder di CMA (Creative Management Association), Luca Vajani, CEO di ARIES TECH, e Tommaso Zeppetella, Sales director Azerion, che hanno offerto una panoramica dettagliata sul potenziale inesplorato del gaming su diversi livelli. Luca Bonaiti ha evidenziato come l'hardware gaming abbia assunto un ruolo centrale nella vita quotidiana della Generazione Z, non solo come mezzo per il divertimento ma anche come strumento vitale per la connessione sociale. La produzione di hardware dedicata al gaming, secondo Bonaiti, va oltre la semplice offerta di prodotti di qualità; si tratta di creare ponti tra le nuove generazioni, sfruttando la tecnologia per facilitare interazioni significative. Sulla stessa lunghezza d'onda, Carlo Alessandri ha sottolineato l'importanza di una maggiore sinergia all'interno del settore Esports, oltre alla necessità di esplorare integrazioni tra il mondo retail e quello del gaming. Alessandri è convinto che l'unione di questi spazi possa aprire le porte a opportunità commerciali senza precedenti, enfatizzando l'importanza di cogliere queste nuove possibilità per il settore. Luca Vajani ha portato un'interessante prospettiva sull'impatto dell'intelligenza artificiale nel mondo del gaming. Secondo Vajani, l'AI non soltanto è ormai presente in tutti i settori e nel quotidiano, ma ha soprattutto un ruolo cruciale nel mondo videoludico, dove contribuisce a migliorare le prestazioni e a personalizzare l'esperienza di gioco attraverso l'analisi delle abitudini degli utenti. Questa evoluzione promette di rivoluzionare il modo in cui interagiamo con i giochi, rendendoli sempre più immersivi e su misura per i giocatori. Queste osservazioni condivise durante il panel di apertura riflettono una visione del gaming come frontiera ricca di opportunità, capace di attrarre e coinvolgere le giovani generazioni in modi innovativi e significativi. L'industria del gaming, con il suo continuo evolversi, si posiziona dunque come un pilastro fondamentale per strategie di marketing orientate al futuro, promettendo nuove modalità di interazione tra marchi e consumatori nei prossimi anni. --- ### Genie: l'IA di Google che crea videogiochi da zero > La nuova intelligenza artificiale di Google, Genie, rappresenta un notevole progresso che potrebbe rivoluzionare il mondo dell'intrattenimento videoludico. - Published: 2024-03-13 - Modified: 2024-03-13 - URL: https://www.gedemy.it/blog/google-genie-ia-che-crea-videogiochi-da-zero/ - Categorie: Intelligenza Artificiale La nuova intelligenza artificiale di Google, Genie, rappresenta un notevole progresso che potrebbe rivoluzionare il mondo dell'intrattenimento videoludico. Genie è in grado di creare videogiochi giocabili a velocità straordinaria, partendo da un'immagine caricata dall'utente. La creazione di Genie è stata un'impresa congiunta tra Google e la University of British Columbia, con l'obiettivo di sviluppare un'intelligenza artificiale specializzata nella creazione di giochi in 2D. L'addestramento di Genie ha incluso l'analisi di un vasto dataset di video e immagini sotto il controllo di Google, raggiungendo le 200mila ore di materiale. L'intelligenza artificiale generativa si è dimostrata in grado di comprendere le formule, i meccanismi e la fisica alla base dei giochi analizzati e di replicarle seguendo prompt specifici. In questo momento, Genie è un progetto che rientra nel più vasto ramo delle attività di ricerca di Google. Non va quindi considerata un prodotto finito. Di conseguenza non deve sorprendere la bassa qualità dei videogiochi che finora è stata in grado di realizzare. Prodotti tecnicamente semplicissimi, con una risoluzione da appena 160x90 pixel e che durano massimo 16 secondi, con una velocità da circa 10 fotogrammi al secondo. Google Genie è solo uno dei modi in cui l'intelligenza artificiale può integrarsi con il mondo dei videogiochi. Titoli come Ghost of Tsushima, Cyberpunk 2077 e Read Read Redemption 2 hanno già beneficiato di Alystria AI, permettendo di elevare dei semplici NPC a personaggi completi, garantendo ore e ore di dialoghi di altissima qualità. L'introduzione di Genie nel settore dei videogiochi solleva interrogativi sull'impatto che potrebbe avere sull'occupazione degli sviluppatori e creativi, specie in un periodo economicamente difficile. L'uso dell'intelligenza artificiale per accelerare lo sviluppo di giochi non è nuovo, ma potrebbe intensificare le tendenze verso l'efficienza e la riduzione del personale. È prematuro predire le ripercussioni complete dell'AI sui diversi settori lavorativi. Recentemente, anche OpenAI, un concorrente di Google, ha lanciato Sora, una tecnologia capace di generare videoclip realistici a partire da testi, sottolineando l'avanzamento e l'espansione dell'AI nel campo creativo. --- ### Unity Muse ora genera texture migliori > Svariati tipi di materiali comuni generati da Unity Muse ora risultano molto più dettagliati. - Published: 2024-03-09 - Modified: 2025-04-21 - URL: https://www.gedemy.it/blog/unity-muse-ora-genera-texture-migliori/ - Categorie: Intelligenza Artificiale Unity Technologies ha pubblicato un nuovo post sul blog, annunciando che Unity Muse, la piattaforma basata sull'IA progettata per aiutare gli sviluppatori a creare applicazioni 3D e videogiochi, ha ricevuto un aggiornamento alle sue capacità di generazione di texture. Al momento del rilascio, una delle caratteristiche più note di Unity Muse era Photo-Real-Unity-Texture-1, un modello generativo per texture addestrato su dati concessi in licenza e di proprietà di Unity. Con l'ultimo aggiornamento, il team ha introdotto la nuova generazione di questo modello, Photo-Real-Unity-Texture-2, in grado di generare risultati più coerenti e dettagliati. https://www. youtube. com/watch? v=vDlsoMnt4sQ&ab_channel=Unity Secondo Unity, l'aggiornamento mira principalmente a migliorare la generazione di tipi di materiale comuni nei giochi, come legno, mattoni, cemento, pelle, metalli, ghiaia e suolo, che hanno tutti avuto miglioramenti significativi. Inoltre, la capacità del modello di generare heightmap è stata potenziata, con le mappe risultanti ora predefinite a 16 bit e con un aumento della credibilità. Di seguito sono riportate alcune schermate che confrontano i risultati delle texture generate da Photo-Real-Unity-Texture-2 con quelle realizzate dal suo predecessore: Grass Wood Rock Gravel Se vuoi conoscere altre informazioni puoi leggere il post sul blog di Unity Gedemy potrebbe essere il luogo perfetto per iniziare il tuo viaggio, offrendo le basi solide su cui costruire la tua futura carriera nel game development. --- ### Sviluppo di videogiochi: come funziona il Game Development > Sei Interessato a lavorare nell'industria dei videogiochi? Scopriamo insieme tutte le fasi necessarie per lo sviluppo di videogiochi. - Published: 2024-03-06 - Modified: 2024-03-11 - URL: https://www.gedemy.it/blog/sviluppo-videogiochi-come-funziona-il-game-development/ - Categorie: Programmazione Nel mondo digitale odierno, lo sviluppo di videogiochi rappresenta una frontiera affascinante e in costante evoluzione che combina creatività, tecnologia e narrativa in modi unici e coinvolgenti. Che tu sia un aspirante game developer o semplicemente curioso di sapere cosa si nasconde dietro le quinte dei tuoi giochi preferiti, entrare nel mondo dello sviluppo di videogiochi può sembrare un viaggio avventuroso, ricco di possibilità. I videogiochi esistono da oltre cinquant'anni, e in questo periodo il mondo dello sviluppo ha creato una vasta gamma di processi, ruoli e strumenti per consentire a grandi e piccoli progetti di essere portati a termine sottoforma di prodotti finiti. Il kit di strumenti a disposizione oggi è enorme: l'ascesa di motori come Unity, Concept Art di Aloy by Lois van Baarle Prototipo Una volta definito il concept, si passa alla fase di sviluppo tecnico. Qui entrano in gioco le competenze in programmazione, utilizzando linguaggi come C++, C#, o Python, e l'utilizzo di motori di gioco quali Unity o Unreal Engine. Questi strumenti permettono di implementare le meccaniche di gioco, gestire la fisica, e creare mondi virtuali. Molto spesso il Game Developer lavora a stretto contatto con il Game Designer, i Concept Artist e i 3D Artist, in modo da definire e portare a termine delle precise milestone. Vertical Slice Abbiamo finalmente un prototipo che funziona, e il design del nostro gioco ha guadagnato in profondità. Il passo che generalmente segue è concentrarsi sulla realizzazione di una Vertical Slice: un frammento limitato ma giocabile del gioco, che racchiude gran parte delle sue dinamiche e abbastanza contenuto per evidenziare tutte le funzionalità chiave. Una "vertical slice" rappresenta una porzione rappresentativa dell'intero progetto, contenente tutti gli elementi essenziali. In questo caso la torta non dice bugie, ma indica una porzione di gioco completa e giocabile. L'adozione di una "vertical slice" è una pratica comune nelle collaborazioni tra publisher e studi in regime di lavoro su commissione, poiché offre una dimostrazione concreta della validità del gioco ai potenziali investitori. Serve anche come test per determinate caratteristiche, oltre a essere un efficace strumento promozionale. Nonostante ciò, questa strategia è oggetto di dibattito, una tematica che esploreremo in un prossimo articolo. La versione alpha Con le funzionalità principali del gioco stabilite, è il momento di espandere i contenuti: dalla costruzione di livelli e creazione di asset grafici, alla narrazione e ogni altro elemento necessario per elevare il gameplay a un'esperienza completa e immersiva. Versione alpha di God of War La fase Alpha varia a seconda dello studio di sviluppo, ma l'intento è raggiungere una completa densità di contenuti. Questo stadio può includere elementi provvisori al posto di asset definitivi, funzionalità da affinare, un'interfaccia utente preliminare e alcuni errori da correggere. Tuttavia, tutti i livelli dovrebbero essere, in teoria, giocabili, con ogni mostro posizionato nel mondo di gioco e il personaggio capace di eseguire tutte le azioni progettate. Dalla fase di rifinitura alla beta Successivamente alla fase Alpha, inizia un periodo di rifinitura che porta alla versione Beta del gioco. Gli elementi... --- ### Unity Tuanjie in Cina ha Nanite e Lumen? > La versione dell'engine Unity Tuanjie introduce innovazioni esclusive destinate al mercato cinese. - Published: 2024-03-04 - Modified: 2024-03-04 - URL: https://www.gedemy.it/blog/unity-tuanjie-cina/ - Categorie: Engine L'engine Unity di Unity Technologies ha una versione cinese separata chiamata Tuanjie (che si traduce letteralmente in "Unity"), sviluppata da Unity China. Di recente, alcune feature esclusive di questa versione, come un sistema di virtual geometry simile a Nanite, hanno attirato l'attenzione delle community. Unity China è una joint venture regionale formata nel 2022 e finanziata da miHoYo, Alibaba, Douyin Group e altri investitori. Al momento del suo annuncio, fu menzionato che Unity China avrebbe iniziato lo sviluppo di versioni locali personalizzate dei suoi prodotti principali per soddisfare le esigenze degli sviluppatori di giochi cinesi, inclusa Tuanjie, una versione cinese del motore di gioco Unity. Tuanjie è stata ufficialmente rilasciata nel gennaio 2024. Tuanjie è diventata recentemente un argomento di discussione, dopo che l'utente laurentlavigne ha segnalato nei forum ufficiali di Unity che include feature non presenti nella versione globale. Un manuale per la versione cinese di Unity include riferimenti a una soluzione di virtual geometry, che non è stata implementata nella versione globale di Unity al momento della scrittura. Nanite è un sistema utilizzato dal motore di gioco Unreal Engine 5 per implementare la geometria virtuale. La geometria virtuale permette agli sviluppatori di migliorare le prestazioni pur ottenendo un risultato di alta qualità automatizzando o controllando dinamicamente tecniche convenzionali come il Level of Detail (LOD) e il normal mapping. Ad esempio, quando un gran numero di modelli 3D viene visualizzato contemporaneamente, la velocità di elaborazione rallenta e le prestazioni sono compromesse. LOD è una contromisura a questo problema. Le prestazioni possono essere migliorate preparando modelli con un conteggio poligonale ridotto e utilizzarli dinamicamente in base alla distanza dalla camera. Il normal mapping è una tecnica per esprimere irregolarità riducendo il numero di poligoni. Utilizzando le texture per esprimere la riflessione della luce, è possibile economizzare sul conteggio dei poligoni per i dettagli. La geometria virtuale è una tecnica che combina l'elaborazione LOD e il normal mapping per esprimere dettagli nella geometria, che viene eseguita automaticamente dalla GPU. In altre parole, è un modo semplice per gli sviluppatori di ottenere grafica di alta qualità con un carico minimo sulle performance. Il fatto che solo la versione cinese di Unity includa questa funzionalità ha causato controversie, poiché gli utenti esprimono disaccordo con l'espansione apparentemente limitata alla regione del motore. Inoltre, un rapporto di gamefromscratch menziona anche l'esistenza di una soluzione di global illumination dinamica in tempo reale simile a Lumen e il Ray Tracing mobile in Tuanjie. Genshin Impact di MiHoYo è uno dei videogiochi più famosi sviluppati in Unity. Secondo una presentazione di Zhenzhong Yi, direttore tecnico dello studio presso miHoYo, lo sviluppatore ha un team specializzato nella personalizzazione di Unity. Ad esempio, sono state aggiunte molte funzionalità per la versione PS4 del gioco. L'aggiunta di nuove funzionalità potrebbe essere stata il risultato del feedback, del finanziamento e della cooperazione da parte delle aziende locali. https://www. youtube. com/watch? v=GV9uNlEAtWE&ab_channel=Gamefromscratch Alla luce delle continue innovazioni e delle avanzate funzionalità esclusive introdotte nella versione cinese di Unity, è chiaro che Unity rimane... --- ### Firmato accordo Niantic Amazon. Sarà possibile acquistare su Amazon dentro i videogiochi > Con Amazon Anywhere i videogiocatori potranno cercare prodotti legati ai videogiochi, e non solo questo, e acquistare senza dover uscire dal videogioco. - Published: 2024-02-28 - Modified: 2024-11-07 - URL: https://www.gedemy.it/blog/accordo-niantic-amazon-sara-possibile-acquistare-su-amazon-dentro-i-videogiochi/ - Categorie: News Fino a qualche tempo fa l'accusa più grande che si rivolgeva ai colossi di Internet era di cercare di creare universi chiusi, dove rinchiudere gli utenti facendo in modo che non avessero più bisogno di abbandonare l'app a il sito. In altre parole, far loro trovare dentro l'app o il sito tutto quello che gli serviva. Amazon è stato uno dei primi colossi a puntare a questo obiettivo, ma oggi proprio Amazon sembra aver scelto un'altra linea strategica, cioè quella di andare a integrarsi con altre strutture diventare il primo partner commerciale di quelle aziende. E naturalmente il primo ambito nel quale collaudare questa nuova linea strategica non poteva che essere quello dove l'idea di portare gli utenti nella propria app era destinata al fallimento. Stiamo parlando del mondo dei videogiochi. I gamers sono fedeli ai loro ambienti di gioco, tendono a passarci delle ore. Inoltre il merchadising legato al mondo dei videogiochi e degli e-game vale una bel po' di soldi. Di qui l'idea alla base di Amazon Anywhere. Le aziende di videogiochi hanno oggi la possibilità di integrare una nuova funzione di Amazon nella loro produzione. Gli utenti possono così utilizzare Amazon per comprare tutto quello che gli passa per la testa, dal merchadising ai gadget, alle bibite o all'oggettistica. Per ora però Amazon Anywhere è stata scelta da una sola azienda produttrice di videogiochi, anche se si tratta di uno dei più player più grandi sul mercato. Stiamo parlando di Niantic, gli stessi di Pokemon Go. Niantic ha scelto di integrare Amazon Anywhere all'interno del suo nuovo prodotto, Peridot, un videogioco legato al mondo degli animali. Gli utenti possono creare il proprio animale domestico, curarlo e interagire con altri utenti per modificarne l'aspetto. Un solo cliente, quindi, per Amazon. Ma non c'è dubbio che l'interazione sarà seguita con grande attenzione da tutto il mondo dei vodeogiochi. E se ci saranno gli effetti positivi che si aspetta Amazon, altri imiteranno Niantic. D'altra parte la spesa media di un videogiocatore è di 80 euro al mese e il mercato cresce al ritmo del 3% annuo. In Italia si calcola che un terzo delle persone fra i 6 e i 64 anni sia un videogiocatore. E anche se non disponiamo di dati per capire quanto di questo budget finisce nei gadget, non è difficile immaginare che si tratti di una cifra importante e che non può che giustificare l'appetito di Amazon. --- ### L'Unione Europea riconosce il valore culturale del settore dei videogiochi > Storica decisione del Consiglio d'Europa e deciso invito ai paesi membri e alla Commissione per varare importanti misure di sostegno alle imprese. - Published: 2024-02-26 - Modified: 2024-03-06 - URL: https://www.gedemy.it/blog/unione-europea-riconosce-il-valore-culturale-del-settore-dei-videogiochi/ - Categorie: News Certo, per ora è ancora una decisione economica, ma ci sono fondate speranze che il futuro possa essere più roseo e i videogiochi smettano di essere visti come espressione di fancazzimo e diventare quello che sono, un momento fondamentale della formazione degli esseri umani.   È solo una decisione economica, dicevamo, perché la nota fa parte delle considerazioni del Piano di Lavoro per la Cultura 2023/2026 e si limita a prendere atto di qualcosa che è da tempo sotto gli occhi di tutti: che il settore dei videogiochi è uno dei comparti in attivo e lanciati della produzione europea.   Lo dicono le cifre: nel 2020 i ricavi del settore erano 4,3 volte superiori a quelli della musica e perfino 1,8 a quelli dello streaming. E riteniamo che non c'è bisogno di aggiungere altro. Nella sua nota il Consiglio invita i paesi membri e la Commissione a sviluppare sostegni adeguati a implementare il settore dei videogiochi e, nello stesso tempo a valorizzare il patrimonio culturale europeo e proteggere adeguatamente il diritto d'autore.   Non ha dimenticato, il Consiglio, il delicato problema dell'inclusione e della discriminazione di genere, presente sia nel ridotto numero di donne professioniste, sia nelle aggressioni che subiscono le videogiocatrici.   Il Consiglio ha invitato i soggetti regolatori a ideare azioni verticali ed efficaci, in grado di modificare questo stato di cose.   Di un utilizzo dei videogiochi in funzione formativa al momento non c'è ancora traccia. Ma ci sono fondare speranze che, mossi i primi passi, presto verrà tutto il resto. Accontentiamoci. Rispetto all'aura satanica che accompagnava il gaming, anche solo fino a qualche tempo fa, è un passo in avanti importante. Il resto, verrà. Con calma. Senza fretta. Speriamo. --- ### Videogame, la prossima rivoluzione si chiama Web3 > La creazione di videogiochi su blockchain cambia tutto, cominciando dal modello di business e dal ruolo dei giocatori. - Published: 2024-02-24 - Modified: 2024-03-08 - URL: https://www.gedemy.it/blog/videogame-la-prossima-rivoluzione-si-chiama-web3/ - Categorie: Web3 Web3 significa decentralizzazione, e se è vero che questo era anche il mantra del Web2. 0, poi ampiamente tradito nei fatti, è ancora più vero che la presenza di una tecnologia come la blockchain, questa volta, dovrebbe mettere al riparo da ogni rischio di fallimento. Ma vediamo quali possibilità offre il Web3, e la blockchain al mondo dei videogiochi.   La prima, e più importante, è che grazie alla blockchain gli utenti potrebbero diventare padroni di tutto quello che viene prodotto nell'ambito del videogioco. Compri un'arma, un vestito, un bene, utilizzando gli NFT quell'oggetto diventa di tua proprietà e in quanto tale puoi anche farne quello che vuoi, da modificarlo (sempre dentro le regole del gioco, parliamo di modifiche di design, essenzialmente) a venderlo.   Detto in altre, poche parole, i videogiochi potrebbero diventare una fonte importante di monetizzazione non solo attraverso le performance dei giocatori o per eventuali premi decisi dagli sviluppatori ma anche per la capacità degli utenti di far fruttare le proprietà che acquistano. Un altro ambito molto importante è la possibilità che gli stessi videogiochi siano di proprietà collettiva e che attraverso gli smart contract e i sistemi di gestione tipici del Web3 gli utenti possano proporre modifiche e decidere le regole del game. Non sappiamo se questo sarà necessariamente un bene, ma certamente è una novità importante.   Fra i tanti game costruiti in ambito Web3 ricordiamo: CryptoKitties nel quale i giocatori possono acquistare, allevare e vendere gatti NFT. Ogni gatto ha le sue caratteristiche e abilità. I giocatori possono guadagnare criptovaluta e questa criptovaluta può essere scambiata con valute reali o utilizzata per acquistare altri oggetti del gioco. Star Atlas è un gioco di ruolo online multiplayer di tipo "metaverse". I giocatori possono esplorare un universo virtuale, scambiarsi risorse e competere con altri giocatori. Ember Sword è un gioco di ruolo online multiplayer di tipo "sandbox". I giocatori possono esplorare un mondo aperto, creare oggetti e scambiarsi risorse. È basato sulla blockchain Ethereum e i giocatori possono possedere perfino dei terreni.   --- ### Disney ed Epic Games insieme per i videogiochi del futuro > Con questo accordo, Disney e Epic Games si incontrano e possono dare vita a veri e propri universi interattivi capaci di dare emozioni ed esperienze oggi ancora sconosciute. - Published: 2024-02-21 - Modified: 2024-02-21 - URL: https://www.gedemy.it/blog/disney-ed-epic-games-insieme-per-i-videogiochi-del-futuro/ - Categorie: News La reale portata dell'accordo firmato l'8 febbraio fra Disney ed Epic Games, super software house alla base di Fortnite, non è ancora chiara. Troppi particolari ancora non sono stati resi noti, e comunque il connubio fra una casa di produzione come Disney e una casa produttrice di videogiochi come Epic Games apre scenari oggi tutti da inventare.   Quello che si sa per certo è che Disney è entrata in Epic Games acquistando, per 1,5mld di dollari, il 5% della sofware house. Cifra che valuta Epic Games il 25% in meno del picco raggiunto nel 2021.   Altra cosa sicura, è che sarà una entrata soft, cioè che non scatenerà rivoluzioni di carattere manageriale, almeno per ora, visto che Tim Sweeney, CEO di Epic Games, resterà in sella.   Ma proviamo a vedere che cosa può comportare questo accordo per gli utenti. In parole semplici, una vera e propria rivoluzione. Con proposte sempre più immersive e phygital, con la possibilità di trovare videogiochi con protagonisti l'intera galleria di supereroi della Marvel, i personaggi di Star Wars, per non parlare delle possibilità offerte dai personaggi più celebri della Disney.   E se i picchiaduro si avvantaggeranno del fatto di poter usare i supereroi, accrescendo il valore delle CTA pubblicitarie, è ancora difficile immaginare che cosa potrebbe venir fuori da videogiochi che hanno Paperino, piuttosto che Qui Quo Qua o Topolino come protagonisti.   Il modello di sviluppo sarà quello della interattività, come sta avvenendo nel connubio fra Epic Games e Lego, connubio che segnato una nuova era in Fortnite.   In attesa di vedere praticamente che cosa accadrà, non sono mancate le critiche. La maggior parte delle quali concentrate su Disney, colpevole di aver stretto una alleanza con una azienda più volte criticata per azioni di concorrenza sleale e per aver sfruttato i giocatori.   Certo è che se l'accordo ha portato un importante flusso economico in Epic Games e permetterà alla software house di avvalersi di tecnologie avanzate come quelle in possesso oggi di Disney, anche per la casa di produzione 350ml di utenti, quanti sono i giocatori odierni di Fortnite, sono una vera e propria boccata d'ossigeno.   Staremo a vedere come le due aziende sfrutteranno l'occasione. --- ### I videogiochi possono influenzare le capacità empatiche dei giocatori? > Secondo un nuovo studio no, non c'è relazione fra le due cose, ma il campione utilizzato è molto limitato e gli studi che affermano il contrario per ora sembrano meglio strutturati. - Published: 2024-02-19 - Modified: 2024-11-07 - URL: https://www.gedemy.it/blog/i-videogiochi-possono-influenzare-le-capacita-empatiche-dei-giocatori/ - Categorie: Studi L'ultimo in ordine di tempo si intitola “Neuroimaging and behavioral evidence that violent video games exert no negative effect on human empathy for pain and emotional reactivity to violence”, ed è stato condotto da un nutrito e affermato gruppo di studiosi, Lukas Leopold Lengersdorff, Isabella C. Wagner, Gloria Mittmann, David Sastre-Yagüe, Andre Lüttig, Andreas Olsson, Pedrag Petrovic e Claus Lamm.   Il proposito era semplice: indagare la correlazione fra la capacità empatica e l'abitudine a utilizzare videogiochi.   Diciamo subito che il limite della ricerca è il ridotto numero di videogiocatori utilizzati, 89. Sappiamo che l'ampiezza del campione non è più significativa e può ugualmente essere rappresentativa di un universo, ma 89 sono veramente pochini.   Lo studio è stato articolato in tre momenti. Nel primo i partecipanti venivano, diciamo misurati utilizzando strumenti e software estremamente innovativi e precisi. Nella seconda, l'esperimento vero e proprio, hanno giocato per un periodo di due settimane, con sessioni di un'ora e uno scarto di 24/48 ore. Il primo gruppo ha utilizzato giochi sparatutto o picchiaduro, per capirci, uccidendo in media oltre 2800 avatar. Il secondo gruppo ha utilizzato una versione soft dello stesso videogioco, per sessioni con la stessa durata e gli stessi intervalli, solo che ha avuto il compito di fotografare i personaggi. Per la cronaca il secondo gruppo ha scattato mediamente poco più di 3000 foto a testa. Nella terza fase si è misurato il sentiment, verificando che non c'è stata nessuna modifica o differenza nei due gruppi. Chiaro, 89 soggetti e per di più per due sole settimane, pongono importanti interrogativi. Ma nessuno può negare la scientificità dell'esperimento.   Tuttavia non si può evitare di notare come il numero di studi che invece afferma l'esistenza di questa correlazione, con effetti negativi, è molto nutrita.   Riportiamo qui alcuni degli studi appartenenti a questa categoria:  Anderson e altri del 2003: ha rilevato che i giocatori abituali di videogiochi violenti mostravano una diminuzione dell'attivazione di aree cerebrali associate all'empatia durante l'osservazione di persone in situazioni dolorose Greitemeyer e Osswald del 2006: i giocatori di videogiochi violenti hanno mostrato minore reazione emotiva a scene di violenza reale rispetto ai non giocatori Carnagey e altri del 2007: bambini che giocavano a videogiochi violenti per 30 minuti al giorno per due settimane hanno mostrato un aumento dell'aggressività verbale e fisica rispetto a quelli che giocavano a videogiochi non violenti Kühn e altri del 2011: I giocatori abituali di videogiochi violenti mostravano minore attivazione di aree cerebrali associate all'inibizione dell'aggressività. --- ### Arrivano i robot capaci di competere ai videogiochi > Potranno competere con gli esseri umani ma anche fare squadra con loro per migliorare le prestazioni di squadra. - Published: 2024-02-17 - Modified: 2024-03-08 - URL: https://www.gedemy.it/blog/arrivano-i-robot-capaci-di-competere-ai-videogiochi/ - Categorie: Intelligenza Artificiale Potrebbe essere la nuova frontiera del gaming, lo strumento capace di inaugurare una nuova stagione di contenuti soprattutto a livello di fruizione.   Stiamo parlando dei robot giocatori attualmente in via di definizione a cura del Nara Institute of Science and Technology.   L'istituto ha lavorato su una lunga serie di ricerche condotte da Università giapponesi a proposito dell'utilizzo dei robot per assistere le persone anziane e con disabilità. Queste ricerche hanno permesso di approfondire sistemi di comunicazione fluidi fra esseri umani e macchine. Di qui a pensare che i videogiochi potevano essere un altro terreno nel quale implementare le conoscenze acquisite il passo è stato breve.   Al momento non esistono ancora dei prodotti che hanno recepito le nuove idee, ma il percorso per produrli è ormai iniziato e, riteniamo, inarrestabile.   Se poi aggiungiamo che un campione di 30 individui sottoposti a dei test con prototipi di robot ha comunque dichiarato di trovare molto più stimolante la presenza della macchina, anche come antagonista, è chiaro che l'arrivo dei robot giocatori è soltanto questione di tempo.   Nelle intenzioni, intanto le due strade, i robot come antagonisti o come compagni in squadre miste, saranno sperimentate alle pari, e sicuramente avremo robot di tutti e due i tipi. I robot, come tutte le macchine di questa generazione, saranno in grado di imparare tramite IAG e quindi di migliorare momento dopo momento le proprie prestazioni, accrescendo sia il livello di difficoltà dei videogiochi sia l'esperienza di gioco degli esseri umani. Per ora i risultati migliori gli esperimenti li stanno producendo nel settore dei videogiochi di combattimento, mentre sembrano essere più indietro in quelli di ruolo, nonostante le moderne tecnologie permettano di interagire anche con l'ambiente. Ma anche in questo caso è solo questione di tempo. Personalmente vediamo un solo rischio: quello della frustrazione che immancabilmente si prova, in ambito competitivo, a perdere sempre, risultato quasi certo nel caso si abbia come competitor una macchina. In altre parole, ottimo tutto, ma costruite dei robot che qualche volta perdono il loro match.   --- ### Gamindo e Booking portano i videogiochi in aeroporto > Una collaborazione fra le due celebri firme del gaming (Gamindo) e dell'accoglienza (Booking), consente di intrattenere i viaggiatori in modo semplice e rilassante. - Published: 2024-02-14 - Modified: 2024-02-14 - URL: https://www.gedemy.it/blog/gamindo-e-booking-portano-i-videogiochi-in-aeroporto/ - Categorie: News Utilizzarlo è facile, basta scannerizzare un QR code e si può subito entrare nel mondo visionario creato da Gamindo per Booking. com.   L'idea era semplicissima: utilizzare l'esperienza di Gamindo, azienda leader nella creazione di videogiochi per promuovere brand, per accogliere, e salutare, i viaggiatori ricordando i valori fondamentali di Booking. com, azienda che si pone come mission anche valori come l'inclusione e la sostenibilità.   Il gioco usa la tecnologia Digital Out-Of-Home (DOOH). Basta scaricare l'app, con il QR code, e si è già pronti a giocare. In solitaria sfidando altri giocatori o in squadra. Bisogna risolvere una serie di quiz, tutti centrati ovviamente su Booking. com e sui suoi valori. Più sono le risposte giuste, più il personaggio avanza. Si segue la gara grazie a un maxischermo 10X10.   Per ora non sono disponibili statistiche sul numero di utenti che ha utilizzato il gioco, ma calcolando la facilità d'uso e il numero di viaggiatori in transito non è difficile immaginare che nei tre mesi passati dal suo lancio, avvenuto a novembre 2023, siano stati decine di migliaia.   Certamente questa esperienza ha dimostrato quanto i videogiochi siano versatili e possano rappresentare un modello di condivisione e di divertimento anche in realtà in grande movimento come un aeroporto.   https://www. youtube. com/watch? v=iXaI_qJ-3nI&ab_channel=Gamindo --- ### Fallout, arriva la serie! > La produrrà Amazon e sarà online da Aprile, con la regia di Jonathan Nolan. - Published: 2024-02-12 - Modified: 2024-02-12 - URL: https://www.gedemy.it/blog/fallout-arriva-la-serie/ - Categorie: News Non è la prima volta, ma questa volta a trasformarsi in una serie televisiva è un altro videogioco di grandissimo successo, Fallout. Nel videogioco Lucy, la protagonista, dopo aver passato la vita in un rifugio sotterraneo esce allo scoperto trovando un mondo post apocalittico popolato di animali giganteschi e spaventosi. Lucy non è il solo essere umano sulla terra, ma chi ha vissuto all'aperto si è trasformato regredendo allo stato selvaggio.   Il concept del gioco e della serie è una riflessione sulla diversità, sulla separazione fra chi ha e chi non ha. Nel caso di Lucy, l'aver vissuto sottoterra ha rappresentato un vantaggio, perché non è stata esposta al degrado che ha colpito chi invece era all'aria aperta.   A questo punto siamo tutti curiosi di sapere in che modo il regista, non nuovo a questo tipo di esperienze, visto che ha anche contribuito alla sceneggiatura di film come Il cavaliere oscuro e Interstellar, diretti dal fratello, Christopher, interpreterà il concept.   Protagonista della serie, nella parte di Lucy, sarà Ella Purnell, attrice e modella, nota per essere stata protagonista di molti film d'azione e di una serie di grande successo, Sweetbitter. --- ### Gli appassionati di Blast hanno la loro Tv > Scopri Blast.TV, il canale dedicato agli appassionati di videogiochi come Counter Strike. Segui eventi esport, interviste esclusive e molto altro. - Published: 2024-02-10 - Modified: 2024-02-10 - URL: https://www.gedemy.it/blog/gli-appassionati-di-blast-hanno-la-loro-tv/ - Categorie: News Un canale televisivo interamente dedicato ai videogiochi, che cosa può sperare di meglio un amante del gaming? Niente, evidentemente.   Blast ha realizzato questo sogno, sia pure solo in parte.   In parte perché Blast. Tv, nonostante le assicurazioni dei suoi editori, alla fine è centrato soprattutto sui videogiochi made in Blast, in particolare a Counter Strike. Ma sembra che una maggiore apertura, perlomeno a tutte le forme di Esport, sarà una condizione di sviluppo assolutamente consequenziale.   Al momento comunque siamo solo agli inizi, ai primi passi. E certo, i risultati sono confortanti, perché il canale, sia pure in versione Beta, ha ottenuto in pochi giorni oltre 3. 500 download.   D'altra parte visto il battage che ne ha accompagnato il lancio sarebbe stato strano il contrario.   Presentato durante il BLAST Premier Spring Groups a Copenhagen, Blast. Tv ha subito mostrato una esperienza utente paragonabile a quella eccezionale di un videogioco.   Su Blast. Tv è possibile assistere a fasi di gioco, vedere statistiche e ascoltare e conoscere i protagonisti del mondo dell'Esport.   Per capire le reali possibilità di Blast. Tv, e forse anche le intenzioni reali dell'azienda che l'ha creata, bisognerà attendere il rilascio della versione definitiva. --- ### Videogame di successo: Enshrouded > Sempre più apprezzato dai giocatori di tutto il mondo, continua il suo percorso di crescita grazie anche al rilancio continuo di nuove funzionalità. - Published: 2024-02-07 - Modified: 2024-02-07 - URL: https://www.gedemy.it/blog/videogame-di-successo-enshrouded/ - Categorie: News Lento ma sicuro, si diceva, scherzando, una volta. E questo motto potrebbe essere adottato da Enshrouded, videogame rilasciato a gennaio 2023 per Microsoft Windows, PlayStation 4 e Xbox One, mentre la versione per Nintendo Switch è stata rilasciata ad agosto dello stesso anno. Ebbene in un anno di vita Enshrouded ha macinato numeri importanti, senza magari fare record, ma comunque dimostrando di essere molto gradito dai giocatori. Nel 2023 ha venduto oltre 2Ml di copie, raggiungendo il punteggio di 85/100 su Metacritic e il 95% di recensioni positive su Steam. Inoltre grazie al continuo rilascio di nuove funzioni ha portato la durata media del gioco da 20 ore a 25.   Enshrouded è un gioco di ruolo che può essere praticato sia da soli che in team, fino a un massimo di 16 giocatori per squadra.   L'idea è quella di un personaggio, costruibile e modellabile, che si trova a dover affrontare e scoprire un mondo fantasy completamente nuovo dopo che un virus ha distrutto quasi totalmente quello precedente.   Per contrastare i pericoli, il giocatore ha a sua disposizione una serie di armi, dalla spade alle asce, e poi martelli, archi e una particolare categoria di armi a distanza chiamate magie. Per controllare queste armi il giocatore deve avere e sviluppare particolari abilità.   Nonostante questo, si può dire che Enshrouded sia a tutti gli effetti un gioco di ruolo, ambientato in un mondo di fantasia, in altre parole perfettamente in sintonia con i videogiochi oggi più di successo.   Un altro dato importante, di Enshrouded, è che nonostante il videogioco sia stato pensato per privilegiare la modalità single, le statistiche dicono che nel 40% delle volte viene giocato da team, e questa statistica è certamente sorprendente.   Il successo di Enshrouded è ancora più sorprendente visto che il videogioco fin dal rilascio, e ancora oggi, ha avuto notevoli problemi. I giocatori hanno lamentato difficoltà di connessione, tendenza a essere sbattuti fuori dal game, impossibilità di coordinarsi quando si gioca in squadra.   Keen Games ha lavorato intensamente su questi problemi, e ha dichiarato che molti di essi sono stati risolti, ma sembra che tuttavia la maggior parte dei problemi sussistano ancora. Per questo prima di cominciare una partita vi consigliamo di controllare la presenza di aggiornamenti e, nel caso di guai, contattare subito l'assistenza clienti. --- ### Mister Gadget Games, il podcast sul gaming che non devi perdere > Nato poco meno di un anno fa è già diventato un appuntamento imperdibile per tutti coloro che amano i videogiochi o che lavorano in questo settore. - Published: 2024-02-05 - Modified: 2024-02-05 - URL: https://www.gedemy.it/blog/mister-gadget-games-il-podcast-sul-gaming/ - Categorie: News Condotto da Riccardo Ferrari e Brian Arnoldi e guidato da Luca Viscardi, Mister Gadget Games è diventato presto un caso, superando i 4. 000 download in poche settimane.   Molto del successo è dovuto alla formula interattiva, per cui gli spettatori hanno la possibilità di interagire con i conduttori, ma certamente la cura nella produzione, il podcast è firmato da Next Digital Publishing, ha la sua importanza. Una cura che portato ad affidare la parte musicale a Joe Schievano di Soundrivemotion e quella grafica a Giandomenico Puglisi, due nomi di grande esperienza.   Il podcast affronta il mondo dei videogiochi a 360 gradi, passando dalla parte ludica, con il racconto di tutto quello che accade nelle uscite e nella fruizione, alla parte professionali, senza dimenticare curiosità e gossip.   Il podcast ha cadenza settimanale e dura 60 minuti. Lo si trova su tutte le principali piattaforme di podcast, cominciando con Spotify e proseguendo con quelle di Apple, Google e Amazon, per finire a nomi meno noti come Audible e Spreaker.   --- ### Uno sguardo ai fumetti più attesi del 2024 > In Italia difficile scegliere fra Zerocalcare e il ritorno di Dylan Dog, all'estero Batman si appresta alla sua ultima battaglia. Due novità importanti anche per i manga. - Published: 2024-02-03 - Modified: 2024-03-02 - URL: https://www.gedemy.it/blog/uno-sguardo-ai-fumetti-piu-attesi-del-2024/ - Categorie: News Il 2024 si annuncia come un anno denso di novità in ambito fumetti, sono tante e di grandissimi prestigio le nuove uscite in calendario. Abbiamo scelto per voi le tre proposte più interessanti in Italia, nel mondo e vi proponiamo anche due manga di assoluto valore. In Italia è difficile scegliere fra due nomi titoli che promettono di fare grandi numeri, in termini di vendite. Stiamo parlando di Zerocalcare, lato autori, e di un nuovo titolo di Dylan Dog, lato personaggi famosi.   Per Dylan Dog in “Dylan Dog: Il ritorno del vampiro” Roberto Recchioni e Gigi Cavenago sono andati a recuperare un personaggio che appartiene alla storia del celebre cacciatore di vampiri, Mortimer. Dylan Dog incontrerà Mortimer dopo che Elena, un nuovo personaggio, lo contatta per indagare sulla morte di suo marito.   A marzo, invece, Zerocalcare ci propone una storia estremamente toccante, quella di Zero, un ragazzo che dopo aver perso il suo lavoro come fumettista cade in una profonda depressione. A salvare Zero sarà l'arrivo di un misterioso personaggio, persona profonda e in grado di ridare coraggio ed energie al ragazzo. Chiudiamo la trilogia italiana con un altro titolo firmato da Roberto Recchioni, questa volta però disegnato da Davide Fabbri. Si tratta della nuova puntata della saga Orfani e intitolato La città dei morti. Orfani racconta di un gruppo di ragazzi rimasti soli in un mondo post apocalittico.   All'estero invece il titolo più atteso è la nuova storia di Batman, Batman: The Last Knight on Earth, di Scott Snyder e Greg Capullo. Batman si risveglia in un mondo post apocalittico, è vecchio e stanco ma deve combattere una ennesima, durissima battaglia. Tanti i personaggi noti che accompagnano la storia, e se non poteva mancare The Jocker, ci sono anche Superman e Wonder Woman.   La seconda novità molto attesa che vi proponiamo è The Last of Us Part I: American Dreams, di Faith Erin Hicks, Sean Gordon Murphy e Neil Druckmann, un prequel del celebre videogioco The last of us. Il libro immagina un mondo distrutto dall'arrivo di un terribile virus che ha trasformato gli esseri umani in belve aggressive. Le protagoniste, Ellie e Riley, dovranno sostenere sfide durissime per riaffermare la loro voglia di libertà. Terzo e ultimo fumetto è The Sandman: The Dreaming, di Neil Gaiman, J. H. Williams III e Colleen Doran. Il fumetto inaugura una nuova serie di avventure del celebre personaggio, la terza dopo la prima, editata dal 1989 al 1996 e la seconda, editata dal 2018 al 2020. Nel campo dei manga promettono grandi cose due titolo molto attesi: Kindgergarten Wars, di Yu Chiba è l'edizione italiana, pubblicata da Panini, di una serie molto famosa in Giappone e che racconta di un mondo nel quale i bambini sono addestrati per diventare assassini, di un asilo frequentato dai figli dell'elite mondiale e di Rita, una giovane maestra, assassina pentita, e chiamata a difendere i bambini della sua scuola. Il secondo manga, e ultimo titolo di questa rassegna, è un nuovo volume... --- ### In libreria Ultima notte a Pechino, di Golo Zhao > La graphic novel è pubblicata da Bao e segna una nuova tappa nel cammino dell'autore cinese più amato in Europa. - Published: 2024-01-31 - Modified: 2024-03-02 - URL: https://www.gedemy.it/blog/in-libreria-ultima-notte-a-pechino-di-golo-zhao/ - Categorie: News Il successo di Golo Zhao in Europa, e in particolare in Italia, è ormai acquisito, una schiera di fan segue tutte le sue uscite. E i suoi lettori non potranno certamente lamentarsi, visto che Ultima notte a Pechino è un'opera delicata e particolarmente riuscita.   Racconto di formazione decisamente riuscito, Ultima notte a Pechino è la storia di un ragazzo di provincia, colto in uno dei passaggi più delicati della sua vita, alla vigilia della fine di un amore importante e nell'indecisione su come costruirsi un futuro.   Nel piccolo paese di provincia, le figure che il ragazzo ha intorno sembrerebbero non poter dare più di tanto, eppure una serie di accadimenti dimostreranno che la vita, in fondo, va affrontata con coraggio perché in questo modo prima o poi qualcosa di positivo accade.   Considerato uno degli autori più dotati anche tecnicamente della scena asiatica, Golo Zhao è nato a Guangzhou nel 1984 e si è fatto notare in Europa per aver realizzato, insieme all'autore francese Jean-Marie Omont la serie Yaya, che fra i tanti premi ottenuti vanta anche il Premio Scuole al Festival d'Angouleme nel 2012.   In tempo di strenne e regali natalizi, segnatevi questo titolo. Imperdibile.   --- ### Un hashtag contro gli abusi sulle videogiocatrici > Metà delle videogiocatrici denuncia di aver ricevuto forme di abuso, oltre il 40% mentre videogiocava. I risultati di una ricerca condotta da NNESAGA. - Published: 2024-01-29 - Modified: 2024-02-01 - URL: https://www.gedemy.it/blog/un-hashtag-contro-gli-abusi-sulle-videogiocatrici/ - Categorie: Inclusione Sempre più allarmante la situazione delle donne anche nel campo dei videogiochi. Anche tralasciando l'ambito lavorativo, dove i numeri sono disastrosi, una ricerca condotta da NNESAGA solleva un velo su una situazione che definire allarmante è poco.   Il 40% delle videogiocatrici dichiara di essere stata oggetto di abuso mentre videogiocava. Diversi i mezzi utilizzati, ma con dentro perfino  sexting attraverso messaggi di natura sessuale.   Per un uomo è molto difficile immaginare o comprendere l'effetto devastante che questo tipo di pratiche possono avere sulle donne, soprattutto quando ancora molto giovani. La ricerca di NNESAGA però ha il merito di aver indagato anche questo aspetto, le conseguenze. E anche qui il dato è pesante. Oltre un terzo delle donne che hanno ricevuto abusi ha dichiarato di essere entrata in depressione o, quanto meno, di aver avuto periodi psicologicamente molto difficili dopo episodi di questo tipo.   L'abuso nel gaming è una pratica così comune da aver spinto un terzo delle donne a giocare in modo anonimo e un altro terzo a scegliere nick o costruire profili maschili.   NNESAGA, autrice della ricerca effettuata intervistando un campione di 4000 donne, è una società che si occupa di gaming ma ha la particolarità di essere stata fondata da una donna, Danielle Udogaranya. Danielle Udogaranya, londinese, poco più che trentenne, artista e content creator, è diventata una delle maggiori esperte nel settore DE&I (Diversità, Equità & Inclusione), promuovendo una delle maggiori rivoluzioni nel settore dei videogiochi, contribuendo a inserire profili fisici e psicologici più legati alla inclusione di genere.   Come conseguenza della ricerca, Danielle ha creato un hastag, #NoRppmForAbuse, finalizzato a spingere le donne a denunciare gli abusi subiti e a far fronte comune per ottenere misure adeguate a combatterli.   --- ### Grand Theft Auto, l'annuncio della versione 6 scatena gli hacker > Secondo gli esperti, l'annuncio di Gta 6 ha offerto agli hacker l'occasione per scatenare una campagna di phishing di portata mondiale. - Published: 2024-01-22 - Modified: 2024-02-12 - URL: https://www.gedemy.it/blog/gta-6-annuncio-scatena-gli-hacker/ - Categorie: News Forse non è stata una mossa proprio azzeccata, quella di annunciare il rilascio della nuova versione di GTA, la sesta, con così tanto anticipo, oltre un anno, visto che avverrà nel 2025. O meglio, lo sarà stato sul piano pubblicitario, ma non su quello della sicurezza, perché la notizia ha scatenato l'interesse del pubblico, ma per molti utenti le cose non sono state chiare, visto che hanno provato a cercare se non proprio la nuova versione, almeno delle anticipazioni, rimanendo così vittime di una serie di link falsi abilmente fatti circolare da hacker senza scrupoli. https://www. youtube. com/watch? v=QdBZY2fkU-0&ab_channel=RockstarGames In tanti hanno consegnato i propri dati nelle mani di hacker, quando è andata bene, o hanno visto svuotarsi i propri conti correnti.   Intendiamoci, che gli hacker utilizzino i videogiochi per portare i loro attacchi non è una novità. E non c'è da stupirsi che Grand Theft Auto, uno dei videogame più amati, abbia scatenato questa corsa ad accaparrarsi qualsiasi tipo di anteprima. Caso mai stupisce che persone che dovrebbero essere esperte di questioni di sicurezza, i videogiocatori, siano caduti in trappola in numero così massiccio. Comunque anche dentro la versioni precedenti, e quella attuale, di GTA i tentativi di truffa sono all'ordine del giorno, così come, lo ripetiamo, in altri giochi. In particolare gli hacker in GTA, oltre al normale spam e phishing e ai furti di account, utilizzano sistemi molto sofisticati per rilasciare e diffondere ransomware. Addirittura a volte riescono a entrare profondamente nella struttura del videogioco proponendo estensioni illegali in grado di produrre effetti utili senza passare per la cassa o, in alcuni casi, veri e propri trucchi del gioco.   D'altra parte gli amanti del videogioco attendono la nuova versione di GTA da quasi 10 anni e non c'è da stupirsi se la notizia che la data del rilascio si avvicina, con il trailer che l'accompagnava, ha totalizzato oltre 100ml di visualizzazioni in 48 ore. Per dare un'idea, basti dire che il trailer della versione 5 ha totalizzato poco meno di 100ml ma in dodici anni.   L'interesse suscitato dal trailer è stato così grande da farlo diventare il video non musicale più visto nelle prime 24 ore della storia di Youtube. E scusate se è poco. A chi ci legge suggeriamo di avere pazienza. E non farsi abbindolare dalla promessa di poter ottenere chissà quali anteprime. --- ### eBook per apprendere a usare al meglio Unity: ecco la lista > Hanno il pregio di essere stati prodotti e distribuiti proprio dalla software house autrice del programma più usato dagli ideatori di videogiochi. - Published: 2024-01-07 - Modified: 2024-02-08 - URL: https://www.gedemy.it/blog/ebook-per-apprendere-a-usare-al-meglio-unity/ - Categorie: Tecnologia Unity, come ben sa chiunque si è avvicinato al mondo dei videogiochi con l'idea di provare a produrne uno, è il programma più usato nel mondo indie. La base imprescindibile per chiunque voglia provare a diventare un professionista dei videogiochi. Chiaro che imparare a usarlo è necessario, ma ancor più riuscire a padroneggiarne tutti gli angoli più reconditi nonché i segreti e le possibilità che il programma offre.   Certo, ci sono i tutor, Youtube ne è piena. E ci sono anche Unity game dev field guide --- ### Numeri tutti positivi per industria e appassionati di videogiochi nel 2023 > Nonostante qualche chiusura che ha fatto rumore, il settore mostra il segno più in tutte le sue voci, all'estero e in Italia. - Published: 2023-12-31 - Modified: 2024-03-15 - URL: https://www.gedemy.it/blog/numeri-tutti-positivi-per-industria-videogiochi-nel-2023/ - Categorie: Studi Come ogni anno, a Natale arriva puntuale il consueto report di GamesIndustry. biz sullo stato di salute del settore dei videogiochi, e al netto di qualche ombra, si può dire che si tratta di numeri altamente positivi. La crescita del mercato globale c’è stata, anche se in misura tale da essere considerata quasi una semplice stabilizzazione, +0. 6, corrispondenti a 184mld. Più interessanti le previsioni per il 2024, quando la crescita dovrebbe essere importante e raggiungere i 250mld. Ad accrescere le speranze di un futuro sempre più roseo c’è la crescita del numero dei videogiocatori, crescita che si deve soprattutto alla penetrazione mondiale nei mercati emergenti. Oggi i videogiocatori sono 3. 38mld, con una crescita superiore al 6%. Un dato importante da rilevare è il tramonto ormai definitivo dei giochi fisici rispetto al digitale, in qualsiasi settore e su qualsiasi piattaforma. I videogiochi fisici tengono ancora una quota di mercato significativa sulle console, dove raggiungono il 17%, ma crollano negli altri ambiti di vendita. Analizzando la distribuzione di fatturato e numero di videogiocatori, il report, conferma che il mercato più ampio è quello asiatico, con la Cina che, in ambito nazionale, si situa immediatamente dietro gli USA. GamesIndustry. biz descrive anche quali saranno i temi più caldi, nel prossimo futuro. In testa, c’è sicuramente quello della sostenibilità della produzione di videogiochi. Di fronte al grande dispendio di risorse che comporta oggi, vincere la scommessa sulla sostenibilità sarà fondamentale. E a tale proposito se il caso della produzione si Saltsea Chronicles fornisce importanti spunti di riflessione, il passaggio al cloud e la perdita di terreno dei videogiochi fisici dovrebbe far ben sperare per il futuro. Lusinghieri i numeri italiani, paese nel quale la crescita continua dei videogiocatori soprattutto in ambito mobile ha portato a un sempre maggiore interesse da parte degli investitori con la nascita di moltissime software house capaci di conquistare una importante visibilità internazionale. E se il settore è passato dai 1,5mld del 2022 ai 2,1 del 2023, lo si deve a software house come Milestone, produttrice di importanti giochi di sport, Stormind Games, produttrice del gioco indie “Remothered” e LKA, con il suo gioco horror “Layers of Fear”. --- ### GranBlue Fantasy: Versus Rising sarà il gioco del 2024? > Un picchiaduro che riesce ad andare oltre gli spari e le scazzottate regalando emozioni e costringendo a pensare molto. - Published: 2023-12-24 - Modified: 2024-02-12 - URL: https://www.gedemy.it/blog/granblue-fantasy-versus-rising-sara-il-gioco-del-2024/ - Categorie: News Hanno scelto una data assai significativa per il rilascio, Arc System Works e Cygames: la vigilia di Natale, festa di pace, per un gioco che resta pur sempre un picchiaduro. Però meritano di essere perdonati perché la nuova versione di GranBlue Fantasy: Versus Rising rappresenta una pietra miliare in questa categoria di videogiochi e, forse, dei videogiochi in genere.   Numerosi gli obiettivi raggiunti, e per di più nella non facile direzione di rendere il gioco accessibile ai nuovi utenti pur mantenendo inalterato il piacere dei giocatori più esperti. E anche l'aver saputo andare oltre i combattimenti per dare profondità narrativa e spingere i giocatori a pensare è un merito non da poco, un effetto ottenuto semplicemente permettendo di chiamare un altro giocatore in soccorso. Chiaro che se si è in due, è necessario pensare, coordinarsi.   Migliorati anche i già bellissimi effetti visivi, il gioco sorprende sempre di più man mano che si scende in profondità e si avanza nelle conoscenze delle meccaniche.   Il sistema di combattimento di Rising si basa su un sistema di combo a catena e permette ai giocatori di costruire attacchi combinati di grande effetto. Fra le nuove feature introdotte merita di essere ricordata quella del "Risveglio". Utilizzandola i giocatori possono potenziare i loro personaggi per periodi di tempo limitati.   La bellezza di GranBlue Fantasy: Versus Rising è comunque tale da garantire ancora la crescita della community che gli è sorta intorno per scambiare pareri, suggerimenti e, perché no, stringere amicizie basate sull'interesse per i videogiochi.  La nuova versione del videogioco è stata prodotta e distribuita da due colossi del settore, quali sono Arc System Works e Cygames, tutti e due attivi nel mondo dei giochi da combattimento. Arc System Works ha prodotto, fra gli altri, Guilty Gear, BlazBlue e Dragon Ball FighterZ. Cygames dal canto suo è conosciuto per Shadowverse. https://www. youtube. com/watch? v=SbI26Ehde3g&ab_channel=CygamesEN --- ### Falso allarme: i videogiochi non creano ansia, al contrario > Però bisogna sapere scegliere i videogiochi adatti, altrimenti il rischio di accrescere i problemi esiste. - Published: 2023-12-22 - Modified: 2024-03-15 - URL: https://www.gedemy.it/blog/falso-allarme-i-videogiochi-non-creano-ansia-al-contrario/ - Categorie: Studi Che i videogiochi siano un costante aiuto a combattere l'ansia, lo si sapeva da tempo, ma a ribadire il concetto è arrivata anche una ulteriore ricerca, The Power of Play. Naturalmente bisogna saper scegliere videogiochi adatti, quindi non competitivi e nemmeno che creano tensione. Possibilmente, meglio videogiochi di ruolo. The Power of Play ha coinvolto un campione di 13k giocatori dai 16 anni in su, di 12 paesi, Italia compresa. Ebbene le risposte hanno ribadito quello che in fondo già si sapeva. Quasi unanimità nel giudicare la funzione positiva dei videogiochi. Fra i vantaggi, il 70% ha parlato di stimolazione mentale, il 78% di permettere la connessione fra persone di diverso carattere. Ancora più interessante la risposta alle domande verticali proprio sullo stress. Il 69% ha affermato che la riduce, il 45% che riduce la solitudine, soprattutto le risposte sono state equilibrate anche rispetto al genere di appartenenza. The Power of Play è solo l'ultima di una serie di ricerche, sul tema dell'ansia. Già nel 2014 l'American Journal of Play non si è limitato a chiedere ma ha condotto un esperimento su 300 giocatori, verificando che dopo due settimane di gioco per almeno 30mn al giorno i livelli di ansia erano scesi sensibilmente. Un altro studio molto interessante risale al 2017. Condotto dalla rivista Frontiers in Psychology ha dimostrato che i videogiochi di realtà virtuale (VR) possono essere efficaci nel ridurre l'ansia. Questo studio ha interessato 40 persone che avevano disturbi di inserimento sociale. Dopo aver utilizzato dei videogiochi di ruolo, i partecipanti hanno mostrato una riduzione dei sintomi di ansia. The Power of Play non si è limitato a studiare gli effetti dei videogiochi sull'ansia ma ha anche indagato altri aspetti, come l'utilità dei videogiochi per preparare ad affrontare le sfide quotidiane, migliorare il benessere emotivo e la valutazione della felicità. Ebbene anche in tutti questi casi i soggetti intervistati hanno mostrato chiari effetti benefici dall'uso dei videogiochi. --- ### PUBG Esports espande il suo programma di Esports > Saranno aggiunte nuove squadre e aumentano i benefici economici previsti per i partner. - Published: 2023-12-20 - Modified: 2024-01-18 - URL: https://www.gedemy.it/blog/pubg-esports-espande-il-suo-programma-di-esports/ - Categorie: News Aria di rinnovamento in casa PUBG Esports, la competizione ufficiale di eSport per PlayerUnknown's Battlegrounds, un gioco sparatutto battle royale sviluppato da PUBG Corporation. I tornei PUBG Esports sono organizzati da PUBG Corporation con partner di terze parti. Fra le novità previste, appunto, l'inserimento di due nuove squadre la americana "Complexity Gaming" e la brasiliana "paiN Gaming", portando così il totale dei team a 10.   Ma non finisce qui, la notizia più ghiotta è che il programma di reward economico sarà ulteriormente accresciuto e completato da investimenti di marketing in favore delle squadre del circuito.   PlayerUnknown's Battlegrounds è oggi seguito da oltre 75 milioni di utenti e distribuisce premi per milioni di dollari. I tornei PUBG Esports sono disponibili in molti formati: per squadra e individuali. I tornei per squadra sono i più comuni e vedono team di cinque giocatori competere l'uno contro l'altro.   --- ### Dicembre nero per le software house: falliscono Fntastic e Free Radical > Curavano due delle serie più amate dai videogiocatori di tutto il mondo, The Day Before e Time Splitters. - Published: 2023-12-16 - Modified: 2024-01-18 - URL: https://www.gedemy.it/blog/dicembre-nero-per-le-software-house-falliscono-fntastic-e-free-radical/ - Categorie: News Che Fntastic e Free Radical fossero in difficoltà lo si sapeva da molto tempo. Negarlo era impossibile, soprattutto per Fntastic, visto che il suo attesissimo The Day Before era stato già annunciato nel 2018, aveva raccolto una lista lunghissima di preordini, ma non ha ancora visto la luce. Tuttavia nessuno credeva che si potesse avere questo epilogo, per di più nel giro di poche ore. Eppure è esattamente così: le due software house sono state chiuse per fallimento. Ufficialmente Fntastic ha spiegato la decisione di chiudere con la mancanza di ulteriori fondi, necessari per arrivare finalmente a rilasciare The Day Before, Free Radical invece ha preferito non rilasciare dichiarazioni. Fatto sta che tutti gli analisti sono concordi nel ritenere che le cause del fallimento non vadano imputate a una crisi del settore dei videogiochi.   È semplicemente successo che il Covid ha portato a ridisegnare anche le aspettative e i desideri degli utenti. In questo cambiamento i giochi di sopravvivenza, The Day Before, non trovano più l'accoglienza di una volta. Forse perché dopo due anni di pandemia la persone avevano voglia di pensare ad altro, mentre giocavano.   Ha giocato un ruolo, nel fallimento delle due software house, la crescita di complessità, e quindi dei costi di produzione, dei videogiochi. Ormai proporre un prodotto all'altezza richiede investimenti miliardari, e tutti i più grandi produttori stanno tagliando i rami meno redditizi per trasferire le risorse su altri giochi più di successo.   Un altro elemento che sta giocando un ruolo, è il dilagare dei giochi gratuiti, prodotti che hanno come modello di business le revenues basate sulla pubblicità.   Comunque, tornando al fallimento delle due aziende, se la delusione di chi aspettava The Day Before è grande, è ancora niente rispetto a quella che provata dai fan di Time Splitters, preoccupati del futuro del loro videogioco preferito. --- ### Twitch, annuncio a sorpresa: via dalla Corea del Sud > La decisione nonostante il paese asiatico sia uno dei mercati più promettenti nel settore dei videogiochi. - Published: 2023-12-15 - Modified: 2024-01-18 - URL: https://www.gedemy.it/blog/twitch-annuncio-a-sorpresa-via-dalla-corea-del-sud/ - Categorie: News La ragione di questa scelta apparentemente incomprensibile è nell'altissimo, insostenibile secondo Twitch, costo delle connessioni. E questo nonostante recentemente Twitch sia stato comprato da Amazon, cosa che avrebbe dovuto garantire una liquidità quasi senza fine. E invece no, perfino Amazon ha dovuto ritirarsi. Il 27 febbraio il celebre sito per videogiocatori chiuderà i suoi servizi nel paese asiatico.   Per capire quanto deve essere costata questa decisione, ricordiamo che la Corea del Sud è il quarto mercato al mondo, nel settore dei videogiochi, con un fatturato di quasi 15mld di dollari nel 2023.   Il 61% dei coreani del sud videogioca, nella maggior parte dei casa da mobile, e lo stato ha un programma di investimenti apposito finalizzato a finanziare la crescita di aziende e software house locali.   La Corea del Sud è anche leader mondiale nel settore degli esport. Sono coreani la maggior parte dei migliori giocatori al mondo. I nomi che tutti gli appassionati conoscono sono quelli di Lee "Faker" Sang-hyeok, considerato da molti il miglior giocatore di League of Legends di tutti i tempi, Kim "BokJoong" Bo-kyung, tre volte campione del mondo di Starcraft II e Park "SungHyun" Sung-hyun, vincitore della Overwatch League 2018 con i Seoul Dynasty. Anche per i grandi campioni coreani la partenza di Twitch è un fatto gravissimo. Ma niente paura, Amazon ha fatto sapere che è pronta a sostenere quelli che accetteranno di spostarsi in altre parti del globo. E non è difficile immaginare che in un'epoca di nomadi digitali, non saranno pochi quelli che aderiranno all'offerta.   --- ### Byte Dance lascia il settore dei videogiochi - Published: 2023-12-14 - Modified: 2024-01-18 - URL: https://www.gedemy.it/blog/byte-dance-lascia-il-settore-dei-videogiochi/ - Categorie: News Certo che in ogni caso si tratta di una notizia bomba, vista la mole di investimenti che Byte Dance, l'azienda proprietaria, fra l'altro, di Tik Tok, ha fatto negli ultimi anni nel settore dei videogiochi. Per dare delle cifre possiamo dire che si parla di 6 miliardi di dollari, anche se la maggior parte, ben 4, sono stati spesi per l'acquisto di Moonton Technology, uno studio di sviluppo di videogiochi con sede a Shanghai, che è noto per il suo gioco Mobile Legends: Bang Bang. Altri 2 miliardi sono stati investiti nell'acquisto di sofware house indipendenti.   Ma a questo fiume di soldi, da qualche tempo sta facendo seguito una azione di dismissione e contrazione, passata proprio attraverso la chiusura degli studi di Moonton Technology e una recente nota emessa dalla società in data 27 novembre. Le ragioni di questo cambio di linea sarebbero da cercare nel crescente controllo che il governo cinese sta esercitando sul settore dei videogiochi. Tuttavia sembrerebbe che sia sbagliato parlare di ritiro dal mercato, per Byte Dance. Molto più preciso parlare di cambio di direzione degli investimenti.   Byte Dance starebbe concentrando la sua attività sui giochi da mobile, che sono facilmente monetizzabili con la pubblicità, e su alcune ricerche nel campo della realtà aumentata, considerata il futuro dei videogiochi. --- ### La Lega Nazionale Dilettanti lancia Vinciamo Insieme > Un programma che utilizza il calcio virtuale per promuovere l'inclusione . - Published: 2023-12-13 - Modified: 2023-12-13 - URL: https://www.gedemy.it/blog/la-lega-nazionale-dilettanti-lancia-vinciamo-insieme/ - Categorie: Inclusione Il progetto è stato presentato il 10 dicembre e si propone di utilizzare il calcio virtuale per promuovere l'inclusione facendo partecipare persone di ogni età, provenienza e condizione sociale. La Comunità Incontro Onlus, una struttura di riabilitazione per persone con problematiche di dipendenza, ospiterà la prima parte del programma. Per partecipare alle competizioni di calcio virtuale della LND, la Comunità Incontro costituirà un team interamente composto da ragazzi e ragazze impegnati nel percorso riabilitativo. La Comunità diventerà così la prima istituzione del Terzo Settore a partecipare a questo tipo di competizioni.  Uno degli obiettivi del progetto è dimostrare che il gaming può essere utilizzato in modo costruttivo, anche per tenere lontani i ragazzi da molte dipendenze che rischiano di distruggergli la vita.  Vinciamo insieme rientra nelle attività della LND volte a dare dimensione sociale al gioco del calcio. --- ### Akira, il manga che ha fatto la storia > Fumetti, videogiochi, cinema, cultura cyberpunk, il celebre manga disegnato da Otomo ha segnato l'intera cultura di questi decenni. - Published: 2023-12-12 - Modified: 2024-03-02 - URL: https://www.gedemy.it/blog/akira-il-manga-che-ha-fatto-la-storia/ - Categorie: News Akira compie quest'anno 41 anni, ma ancora non ha cessato di far battere il cuore di due intere generazioni. Disegnato da Katsuhiro Otomo, classe 1954, Akira comincia come un thriller ricco di azione, ma presto si dimostra in grado di scendere molto in profondità nell'animo umano e, soprattutto, negli sviluppi della cultura di questo periodo. Basato su tre personaggi centrali, Tetsuo Shima, un ribelle che lotta per affermarsi, Kaneda, leader carismatico e, appunto, Akira, capace di racchiudere in sé il bene e il male, questo manga è ambientato in una Neo Tokyo che ha saputo vedere da lontano i grandi cambiamenti intervenuti successivamente. È lunghissima la lista di chi è stato influenzato da questo bellissimo Manga. Influenzato ancora oggi, nonostante il suo ciclo di vita è stato tutto sommato breve, visto che si è concluso nel 1990. Dicevamo della cultura cyberpunk, introducendo elementi come la tecnologia avanzata, il design delle motociclette e perfino la telecinesi. Nel cinema riferimenti a Akira sono evidenti in Matrix, Minority Report e Blade Runner 2049, mentre nei fumetti possiamo ricordare Ghost in the Shell, Appleseed e Blame! Ma è certamente nel campo dei videogiochi che l'influenza di Akira si è fatta sentire più che altrove. Fra i videogiochi ispirati ad Akira ricordiamo Akira, Akira Psycho Ball e una seconda edizione di Akira. Otomo ha saputo rinnovarsi in continuazione, pur salvaguardando interamente il suo segno assai particolare. Fra i titoli che hanno fatto la storia di questi anni ricordiamo World Apartment Horror, Barefoot Gen e In This Corner of the World. Ha infine diretto diversi altri film d'animazione, tra cui Roujin Z (1991), Steamboy (2004) e Cop Craft (2021). --- ### Gillette lancia un format creativo dedicato ai gamer > Azzeratevi, Gillette ha l'idea giusta per sposare rasatura mattutina e videogiochi. Il format è già un successo. - Published: 2023-12-10 - Modified: 2023-12-11 - URL: https://www.gedemy.it/blog/gillette-lancia-un-format-creativo-dedicato-ai-gamer/ - Categorie: News Si chiama Hit Reset with Gillette il nuovo format creativo lanciato da Gillette sull'onda del successo ottenuto da diverse iniziative precedenti, tutte accolte molto bene dal mondo gaming.   In questo caso Gillette si propone anche delle finalità che non sono solo commerciali, visto che sono in sintonia con l'esigenza di arginare le dipendenze, anche nel campo dei videogiochi.   Nell'ottica Gillette, la rasatura è un fondamentale momento di relax, un momento in cui si stacca la spina, si resetta il proprio sistema cognitivo per poter prendere le giuste distanze. Evitare, per i videogiocatori, sempre più costretti a sessioni di gioco lunghissime, di cadere nella ludopatia.   Per di più la maggior parte delle sessioni di videogioco si svolgono proprio di notte, e prevedono, al risveglio, una bella rasatura. Comunque la maggior parte dei gamer svolge attività di reset, dopo sessioni particolarmente faticose. A volte si tratta di una seduta in un centro benessere, altre di yoga. Gillette suggerisce che fra tutte queste anche una rasatura ha senso. Se il concetto è chiaro, Gillette si è mossa bene anche sul lato delle collaborazioni, in particolare con gli Esport Awards, la più importante manifestazione che premia le eccellenze nel mondo del gaming.   Nel corso del prossimo Esport Awards, Gillette gestirà il preshow e offrirà una serie di riconoscimenti ai giocatori che più si prestano a rappresentare il brand.   Gillette dà così seguito a un rapporto cominciato l'anno scorso, quando ha collaborato con Razor, un'azienda produttrice di oggetti per gamer, realizzando un rasoio brandizzato Razor.   --- ### Baldur's Gate 3 vince e diventa Game of the Year 2023 > Con la vittoria di Baldur's Gate 3, il videogioco ha sbaragliato una nutrita concorrenza riuscendo comunque a portare a casa il riconoscimento. - Published: 2023-12-08 - Modified: 2023-12-28 - URL: https://www.gedemy.it/blog/baldurs-gate-3-vince-e-diventa-game-of-the-year-2023/ - Categorie: News La lista dei concorrenti era ampia e di tutto rilievo. C'erano tutti, Marvel's Spider-Man 2, Super Mario Bros, Wonder, Alan Wake 2, The Legend of Zelda: Tears of the Kingdom. Eppure a vincere è stato lui, Baldur's Gate 3, ottenendo il titolo di miglior videogioco per il 2023. Baldur's Gate non offre la stessa libertà di azione di altri videogiochi, ma l'universo che potete esplorare è comunque più che soddisfacente e in grado di darvi tanta adrenalina. Laddove il videogioco è veramente forte è nel numero di finali possibili. Sono ben 17. 000, cosa che garantisce, oltre alla varietà di gioco, una durata media superiore alle 5 ore. Ad onor del vero bisogna dire che alcuni utenti hanno lamentato cali di tensione, soprattutto nell'atto III, ma sembrano più un voler cercare il pelo nell'uovo che vere e proprie critiche. Per giocare, potete scegliere fra uno dei 6 personaggi di default o costruirne uno tutto vostro fin nei minimi particolari. Con la vittoria di quest'anno Larian Studios, la software house che ha progettato il videogioco, ottiene finalmente un riconoscimento di prestigio, capace di premiare i tanti progressi e successi marcati negli ultimi anni. La soddisfazione in casa Larian Studios si respira nell'aria ed è stata certificata dalle parole di Sven Vincke, il gran capo della software house, che ci ha tenuto a ringraziare tutti i componenti del team che ha sviluppato il videogioco. --- ### Dolce e Gabbana disegnano per Razer > La celebre maison di moda produrrà una linea di abbigliamento pensata appositamente per gamer. - Published: 2023-12-07 - Modified: 2023-12-10 - URL: https://www.gedemy.it/blog/dolce-e-gabbana-disegnano-per-razer/ - Categorie: News Dolce e Gabbana disegnano per Razer una collezione di capi, a produzione limitata, che mettono insieme il gusto sopra le righe della maison con la tecnologia all'avanguardia e le esigenze dei gamer. La collezione sarà composta da felpe, magliette oversize, pantaloni cargo e sarà completata da alcuni oggetti utilizzati dai videogiocatori, come per esempio cuffie, le Barracuda, e gaming chair, le Enki Pro.   Particolarità della collezione sarà quella di integrare in alcuni capi di abbigliamento delle tecnologie legate al mondo del gaming e, più in generale, dei programmatori.   Il design scelto da Dolce e Gabbana integra il nero e il verde, i due colori che contraddistinguono i due brand. E bisogna ammettere che l'effetto è di grande impatto. L'impressione è di trovarsi realmente proiettati in un futuro lontano ma sempre più vicino, se ci si consente l'ossimoro. La collezione, come detto a produzione limitata, sarà in vendita per tutto il periodo natalizio.   Quanto ai prezzi, sono all'altezza del connubio, visto che si parte dai 200 euro per una maglietta per arrivare agli oltre 3. 000 della Enki Pro.   --- ### Videogame e community LGBTQ+, guadagna terreno l'inclusione > Se fino a qualche tempo fa la comunity LGBTQ+ non trovava spazio, oggi sono sempre più i personaggi che la rappresentano all'interno dei videogiochi più famosi. - Published: 2023-12-04 - Modified: 2023-12-06 - URL: https://www.gedemy.it/blog/videogame-e-community-lgbtq-inclusione/ - Categorie: Inclusione Contrariamente a quello che si potrebbe pensare, personaggi appartenenti all'universo gay sono stati presenti fin dal primo momento, nella storia dei videogiochi. Solo che non hanno mai avuto un ruolo positivo. O, quando andava bene, non uscivano dagli stereotipi di genere.  Una donna lesbica è presente già nella prima versione di Moonmist, nel 1986, ma appartiene a quello che nel linguaggio degli sceneggiatori si chiama archetipo dell'ombra, in altre parole ha una connotazione decisamente negativa. Contrariamente a quello che si potrebbe pensare, personaggi appartenenti all'universo gay sono stati presenti fin dal primo momento, nella storia dei videogiochi. Solo che non hanno mai avuto un ruolo positivo. O, quando andava bene, non uscivano dagli stereotipi di genere.   Una donna lesbica è presente già nella prima versione di Moonmist, nel 1986, ma appartiene a quello che nel linguaggio degli sceneggiatori si chiama archetipo dell'ombra, in altre parole ha una connotazione decisamente negativa. Altri personaggi, identificabili con stereotipi gay, hanno preso presto a circolare in vari videogiochi, ma anche loro avevano facevano parte degli universi male.   I primi videogiochi a permettere ai personaggi di avere delle avventure sentimentali con persone dello stesso sesso sono arrivati solo nel 2000, e fra questi meritano di essere ricordati The Sims 2, Dragon Age e Mass Effect 2, ma si era ancora nella fase sperimentale, si faceva bene attenzione a non dare a questi ruoli profondità e possibilità di azione.   Per valutare l'importanza della presenza femminile in una storia di solito si usa il Bechdel Test, fatto di tre semplici domande: 1) ci sono più di due donne nella storia? 2) si parlano fra di loro? 3) parlano di qualcosa che non sia un uomo? Questo stesso test, leggermente modificato è stato poi applicato per valutare la presenza di personaggi LGBTQ+.   Ma per avere un protagonista transgender in un videogioco si è dovuto aspettare il 2020, con Tell Me Why, e soprattutto The Last of US II, che ha per protagoniste delle donne realmente capaci di andare oltre gli stereotipi e di essere rappresentative di temi molto presenti nel dibattito LGBTQ+.   Oggi, secondo una ricerca, il 10% dei personaggi, nei videogiochi, appartiene al mondo LGBTQ+, e a ciascuno il compito di valutare se si tratta di una percentuale congrua o che non rispetta la realtà. Certo è che progressi ne sono stati fatti, e ci si aspetta di vederne altri arrivare presto. Per chi poi volesse approfondire i temi legati al mondo LGBTQ+ nei videogiochi, c'è il blog di Luca De Santis, Geekqueer. De Santis è anche autore di un interessante libro, sul tema, “Videogaymes. Omosessualità nei videogiochi tra rappresentazione e simulazione, (Edizioni Unicopli).    --- ### Con Valeverse i videogiochi irrompono nel Web3 > Mette insieme il meglio del Web3 il nuovo Valeverse prodotto da VR46 Metaverse, Animoca Groups e Gravitas Labs: blockchain, DeFi e NFT. - Published: 2023-10-26 - Modified: 2024-03-08 - URL: https://www.gedemy.it/blog/con-valeverse-i-videogiochi-irrompono-nel-web3/ - Categorie: Web3 Il videogioco si chiama Valeverse ed è pensato appositamente per i fan di Valentino Rossi, visto che fra i vari possibili premi c'è anche la possibilità di incontrare personalmente il celebre campione.   Il sogno di Valentino: una nuova grande corsa disponibile dentro Valeverse. Disponibile su The Sandbox, un play to earn che combina le principali tecnologie alla base del Web3 in un metaverso 3D permettendo di creare e personalizzare videogiochi, Valeverse si compone di una serie di missioni di crescente difficoltà. La presenza di un Valeverse Pass permetterà ai tifosi più accesi di Valentino Rossi di ottenere merchandising personalizzato dal proprio idolo nonché biglietti per le gare più importanti del circuito motociclistico.   Inoltre Valeverse ha anche stretto un accordo con il SisalFunClub intenzionato a promozionare il lancio della versione 2024 della propria app. Il Fun Club, grazie ai suoi contenuti, contribuirà a permettere che i giocatori per le loro partite possano ritrovarsi in ambienti estremamente elettrizzanti, come per esempio l'iconico stadio che ospita l'app, nonché sfidarsi utilizzando alcune delle funzioni di Sisal, gareggiando in abilità nei pronostici.   Se siete fan di Valentino Rossi, è una occasione da non perdere. E, in fondo, anche se non lo siete ma i videogiochi fatti bene vi appassionano.   https://www. youtube. com/watch? v=QJdVfp9phf0&ab_channel=VR46Metaverse --- ### Unity introduce una nuova tariffa basata sulle installazioni > Unity ha introdotto quello che potremmo definire una “tassa sui download”. Cosa significa per gli sviluppatori? - Published: 2023-09-13 - Modified: 2024-03-27 - URL: https://www.gedemy.it/blog/unity-introduce-tariffa-basata-sulle-installazioni/ - Categorie: Engine Unity, uno dei motori grafici più diffusi nel settore dei videogiochi, ha recentemente annunciato un aumento dei prezzi e delle nuove condizioni. Questo cambiamento ha causato un certo scompiglio tra gli sviluppatori di videogiochi, portando molti a considerare azioni radicali. Unity Runtime Unity ha introdotto quello che potremmo definire una “tassa sui download”, denominata Unity Runtime Fee. Per capire appieno la nuova tariffazione di Unity, è essenziale capire il concetto di Unity Runtime. Parliamo del cuore pulsante dei videogiochi sviluppati con Unity. In altre parole, è il software che permette al gioco di essere avviato e fruito. In altre parole, ogni volta che un giocatore scarica e gioca a un gioco realizzato con Unity, sta utilizzando l'Unity Runtime. Oltre una certa soglia di download e ricavi, gli sviluppatori dovranno versare qualche centesimo ogni volta che un utente scarica il gioco. Questa clausola, che entrerà in vigore nel 2024, potrebbe essere considerata retroattiva, poiché Unity considererà i download e il fatturato complessivo dell’intera vita del gioco. Le soglie variano in base al tipo di abbonamento a Unity scelto e anche al mercato di riferimento. Per l’abbonamento base, Unity Personal, si parla di 200. 000 download totali e 200. 000 dollari di ricavi negli ultimi 12 mesi. Ogni download costerà 2 centesimi di dollaro. Uno sguardo alle nuove tariffe. Questo rappresenta un cambiamento significativo rispetto al modello di tariffazione precedente, che si basava principalmente sulle entrate generate dal gioco. Criteri di eleggibilità Non tutti i giochi saranno soggetti a questa tariffa. Unity infatti ha stabilito due criteri principali, che dovranno entrambi essere rispettati, per determinare se un gioco è soggetto alla Unity Runtime Fee: Revenue: Un gioco deve aver generato un certo livello di entrate nei 12 mesi precedenti per essere soggetto alla nuova tariffa. L'importo varia in base al tipo di abbonamento utilizzato. Installazioni: Un gioco deve aver raggiunto un certo quantitativo minimo di installazioni per essere soggetto alla tariffa. Anche in questo caso, i requisiti variano in funzione dell'abbonamento in possesso dallo sviluppatore. Unity Personal, Pro e Enterprise Con questa nuova politica, a partire dal 1° Gennaio 2024, Unity offrirà la versione Personal a tutti, indipendentemente dal livello di entrate. Quando un gioco supererà le soglie di installazione e revenue, lo sviluppatore dovrà pagare una piccola tariffa per ogni nuova installazione. Tutti gli abbonati a Unity Pro e Unity Enterprise potranno beneficiare di sconti sul volume di installazioni. Inoltre, la versione Plus verrà rititata dal mercato. Reazioni La reazione degli sviluppatori a queste modifiche è stata forte. Molti sviluppatori hanno espresso la loro preoccupazione per l’impatto che queste modifiche potrebbero avere sui loro progetti correnti e futuri. Alcuni sviluppatori hanno persino minacciato di passare ad altre piattaforme se Unity non cambierà la sua posizione. Questo cambiamento nelle tariffe di Unity rappresenta un punto di svolta significativo per gli sviluppatori di videogiochi. Mentre alcuni vedono queste modifiche come un ostacolo, altri le vedono come un’opportunità per esplorare nuove piattaforme e tecnologie. In ogni caso, sarà interessante vedere come Unity risponderà alle... --- ### Epic MegaGrants: un investimento per il futuro dell'intrattenimento digitale > Il fondo Epic Megagrants, da oltre 100 milioni di dollari, promette di cambiare il panorama tecnologico. - Published: 2023-04-10 - Modified: 2024-04-29 - URL: https://www.gedemy.it/blog/epic-megagrants-un-investimento-per-il-futuro/ - Categorie: Engine Epic MegaGrants è un programma di finanziamento creato da Epic Games, e in particolare dal sul presidente e fondatore Tim Sweeney, noto per il motore di gioco Unreal Engine. Questo fondo da oltre 100 milioni di dollari è stato progettato per sostenere tutti gli sviluppatori e creatori di contenuti legati all'intrattenimento digitale. Chi può beneficiare di Epic MegaGrants? Epic MegaGrants è destinato a team di sviluppo più piccoli, sviluppatori indipendenti e innovatori che utilizzano la tecnologia di Epic Games per realizzare progetti audaci. Questi possono includere giochi indie, esperienze Fortnite, progetti che prevedono il passaggio da un altro motore a Unreal Engine, e altri progetti che avanzano nello spazio 3D in tempo reale o migliorano la vita della comunità 3D. Successi di Epic MegaGrants Dopo quattro anni, il programma Epic MegaGrants ha avuto un impatto significativo sulla comunità di sviluppatori. Ha finanziato oltre 1. 800 progetti in sei continenti, permettendo a questi progetti di realizzare nuove tecnologie, nuove esperienze e sogni a lungo coltivati. Inoltre, Epic MegaGrants ha creato un programma di vantaggi Epic MegaGrants, che fornisce ai destinatari passati, presenti e futuri di MegaGrants l’accesso a una serie di partner ed ecosistemi di risorse Unreal Engine per aiutare a portare i loro progetti al livello successivo. Grazie ai profitti generati dall'iconico battle royale Fortnite, ma anche allo straordinario successo di Unreal Engine 4 e della nuova quinta versione, l'azienda della Carolina del Nord prova così a redistribuire questa immensa ricchezza tra coloro che vorranno sfruttare programma MegaGrants per realizzare film, videogiochi, progetti educativi e applicazioni. --- ### Videogiochi: cinque nomi stanno facendo la storia > Esplora la storia del mondo videoludico attraverso le vite e le opere di cinque figure influenti, tra cui Hideo Kojima e Shigeru Miyamoto. - Published: 2023-02-02 - Modified: 2023-12-10 - URL: https://www.gedemy.it/blog/cinque-influenti-figure-del-mondo-dei-videogiochi/ - Categorie: Tecnologia Il mondo dei videogiochi è un’industria molto giovane, ma ha visto molte figure importanti durante la sua storia. Sono numerosi i personaggi che hanno popolato la storia del videogioco, da Pac-Man, a Crash Bandicoot, dagli alieni di Space Invaders a Lara Croft, fino ai più recenti Kratos ed Atreus ed Ellie di The Last of Us. Dietro un personaggio virtuale, però, esistono delle menti brillanti che hanno dato vita ad alcune delle migliori produzioni di questo medium: Gedemy oggi ve ne svela cinque da conoscere assolutamente! Il mondo dei videogiochi è un’industria molto giovane, ma vanta già una bella galleria di personaggi che hanno contribuito in modo fondamentale alla sua crescita. Fra i tanti nomi che hanno fatto la storia dei videogiochi, possiamo citare, in ordine sparso, Pac-Man, Crash Bandicoot, gli Alieni di Space Invaders, Lara Croft, Kratos, Atreus, Ellie di The Last of Us. Però dietro ogni personaggio virtuale, esiste una mente brillante senza la quale quella saga non avrebbe mai avuto vita o successo. Oggi vi proponiamo cinque nomi da conoscere assolutamente! Shigeru Miyamoto Shigeru Miyamoto è un game designer e produttore giapponese noto per essere il creatore di alcuni dei giochi più iconici e di successo della storia videoludica, come Super Mario Bros, The Legend of Zelda e Donkey Kong. È considerato un pioniere del settore e ha contribuito a plasmare la cultura videoludica moderna. Miyamoto è attualmente senior fellow e direttore creativo presso Nintendo. Hideo Kojima Conosciuto per la serie di giochi Metal Gear, è considerato tra i più importanti autori del panorama videoludico. Kojima è stato un pioniere nel creare storie complesse e coinvolgenti all’interno dei videogiochi. Nella sua lunga carriera ha raccolto numerosi premi e riconoscimenti. Nel 2005 ha fondato Kojima Productions (una software house divenuta indipendente nel 2015), rilasciando, nel 2019, il celebre Death Stranding. Will Wright Will Wright è un designer di videogiochi americano noto per essere il creatore della serie “SimCity” e “The Sims”. Ha sviluppato un approccio unico alla creazione di giochi, perché ha incoraggiato le capacità di esplorazione e di improvvisazione da parte dei giocatori, invece di spingerli, come avveniva di solito, a seguire un percorso prestabilito. Questo approccio ha portato alla creazione di giochi altamente acclamati e di grande successo commerciale, diventati con il tempo fonte di ispirazioni per un intero settore del mercato. Oggi Wright continua a lavorare come creatore e designer di videogiochi indipendente. Sid Meier Conosciuto come il “padre” dei giochi di strategia, Sid Meier è un designer di videogiochi canadese famoso per essere stato il creatore di alcuni dei giochi di simulazione più iconici e di successo della storia videoludica, su tutti ricordiamo “Civilization”, “Pirates! ” e “Railroad Tycoon”. Meier ha sviluppato un approccio unico alla creazione di giochi, capace di combinare elementi di simulazione, strategia e avventura per creare esperienze di gioco coinvolgenti e appassionanti. Meier continua a lavorare come creatore e designer di videogiochi indipendente. Markus Persson Noto anche come Notch, Persson è un designer di videogiochi svedese nonché creatore del popolare gioco di sandbox Minecraft, sviluppato interamente durante il tempo libero. Il gioco è stato poi pubblicato da Mojang, società fondata, nel 2009, proprio da Persson. Minecraft è diventato un fenomeno mondiale, vendendo oltre 200 milioni di copie in tutto il mondo e diventando uno dei giochi più venduti di sempre. Nel 2014 Persson ha venduto Mojang a Microsoft e oggi lavora come creatore e designer di videogiochi indipendente. --- ### Il futuro è adesso: Unreal Engine 5 > Scopri la potenza di Unreal Engine 5 e le sue nuove tecnologie. Un livello di realismo e funzionalità per la creazione di videogiochi mai visto prima. - Published: 2023-01-30 - Modified: 2024-03-08 - URL: https://www.gedemy.it/blog/il-futuro-e-adesso-unreal-engine-5/ - Categorie: Engine L'Unreal Engine è uno dei motori di gioco più popolari e potenti del settore, utilizzato per creare una vasta gamma di giochi e applicazioni interattive. Sviluppato dalla software house Epic Games, il game engine deve il suo nome al videogioco Unreal, un first person shooter rilasciato, e sviluppato sempre da Epic Games, nel 1998. L’engine venne scritto quasi completamente da Tim Sweeney, sviluppatore nonché fondatore di Epic Games, e vantava un sistema di rendering adattato alle allora moderne schede grafiche dedicate. Il salto di qualità, però, avvenne con l’uscita di Unreal Tournament, pubblicato per Windows nel 1999. Nel titolo vennero integrate migliorie quali l’utilizzo dei colori a 16 bit ed effetti visivi come la nebbia. Con Unreal Tournament venne migliorata anche l’intelligenza artificiale dei bot, portandoli a collaborare nelle guerriglie in cooperativa. Nonostante Unreal fosse progettato come competitor di Id Software, John Carmack (creatore di Doom e sviluppatore della software house) fece i complimenti per i risultati raggiunti. La demo presentata insieme all'Unreal Engine 5 Oggi sempre più studi di produzione stanno passando dai motori grafici proprietari ai motori grafici di terze parti, tra cui Unity e Unreal Engine. La scorsa versione, la quarta, è stata utilizzata per videogiochi di successo come Final Fantasy VII Remake, Gears 5, Stray, Hellblade: Senua’s Sacrifice e Psychonauts 2. L'Unreal Engine 5 è stato rilasciato in preview nei primi mesi del 2021, e la versione finale è stata resa disponibile il 5 Aprile 2022. Non supporterà solamente PS5, ma anche Xbox Series X, le console dell'attuale generazione (PS4, Xbox, PS4 Pro), PC, Mac e i dispositivi mobili iOS e Android. Questa versione offre una serie di nuove caratteristiche e miglioramenti che promettono di rivoluzionare e semplificare la creazione di contenuti. Le tecnologie Lumen e Nanite Uno dei principali miglioramenti dell'Unreal Engine 5 è il nuovo sistema di global illumination denominato Lumen. Questo sistema utilizza una tecnologia di illuminazione globale dinamica che permette di creare ambienti realistici con una maggiore qualità e dettaglio. Inoltre, Lumen consente di creare effetti di luce dinamici, come l'illuminazione di un fuoco o di una lanterna, in modo più preciso e realistico rispetto alle versioni precedenti dell'Unreal Engine. Il sistema di Global Illumination Lumen Oltre a Lumen, l'Unreal Engine 5 introduce anche un nuovo sistema di rendering denominato Nanite. Questa tecnologia utilizza una nuova forma di rappresentazione della geometria basata su un sistema di particelle, che permette di gestire enormi quantità di dati in modo efficiente, offrendo la possibilità di utilizzare modelli molto dettagliati e complessi in tempo reale. Inoltre, Nanite gestisce automaticamente la riduzione della poligonalità, adattandola in base alle esigenze delle scene e delle condizioni di rendering. Questo significa che gli artisti possono lavorare con modelli molto dettagliati e complessi, senza doversi preoccupare delle limitazioni tecniche della piattaforma o delle prestazioni. Nanite offre anche un flusso di lavoro più veloce e più semplice per gli artisti, poiché non è necessario preoccuparsi di ottimizzare manualmente i modelli prima di utilizzarli in Unreal Engine. La complessità delle scene raggiunta con... --- ## Documentazioni ### Funzioni Ricorsive in Python - Published: 2025-04-22 - Modified: 2025-04-22 - URL: https://www.gedemy.it/documentazione/python/funzioni-ricorsive-in-python/ - Categorie: Python - Tag: Funzioni e metodi Una funzione ricorsiva è una funzione che chiama se stessa per risolvere un problema. Questo concetto, molto potente, è alla base di molte soluzioni eleganti in Python, soprattutto quando si ha a che fare con strutture dati complesse o problemi che possono essere suddivisi in sottoproblemi simili. Come si costruisce una funzione ricorsiva Una funzione ricorsiva deve sempre avere una condizione di terminazione, detta anche caso base, per evitare chiamate infinite. La struttura tipica è: def funzione(parametro): { if condizione_di_stop: { return risultato } else: { return funzione(nuovo_parametro) } } Output: Il risultato finale dipenderà dalla logica implementata nella funzione. Vediamolo con alcuni esempi concreti. Esempi semplici ma efficaci di funzioni ricorsive 1. Calcolo del fattoriale di un numero Il fattoriale di un numero (n! ) è il prodotto di tutti i numeri interi positivi minori o uguali a n. Ecco una funzione ricorsiva per calcolarlo: def fattoriale(n): { if n == 0: { return 1 } else: { return n * fattoriale(n - 1) } } Output: print(fattoriale(5)) # Output: 120 2. Generazione della sequenza di Fibonacci La sequenza di Fibonacci è una serie di numeri in cui ciascun numero è la somma dei due precedenti. Ecco un esempio ricorsivo: def fibonacci(n): { if n --- ### Funzioni e valori di ritorno in Python - Published: 2025-04-20 - Modified: 2025-04-20 - URL: https://www.gedemy.it/documentazione/python/funzioni-e-valori-di-ritorno-in-python/ - Categorie: Python - Tag: Funzioni e metodi In Python, una funzione è un blocco di codice che può essere eseguito ogni volta che viene richiamato. Per comunicare un risultato al termine dell'esecuzione, si utilizza la parola chiave return. Esempio di funzione con un valore di ritorno Questo esempio mostra una funzione che calcola la somma di due numeri e restituisce il risultato tramite return. def somma(a, b): { return a + b } Quando si richiama la funzione come somma(3, 5), essa restituirà 8. Funzioni senza valore di ritorno Non tutte le funzioni hanno bisogno di restituire un valore. Alcune si limitano ad eseguire un'azione, come stampare un messaggio. def saluta(nome): { print("Ciao, " + nome + "! ") } In questo caso, la funzione non usa return: non produce un risultato, ma esegue un effetto. Come restituire più valori in una funzione Python Esempio di funzione con più valori di ritorno Python permette di restituire più di un valore contemporaneamente, separandoli con una virgola. def operazioni(a, b): { somma = a + b differenza = a - b return somma, differenza } Richiamando operazioni(10, 4), si otterranno due valori: 14 e 6. Destrutturare i valori di ritorno È possibile assegnare i valori restituiti direttamente a più variabili: risultato1, risultato2 = operazioni(10, 4) Così risultato1 conterrà 14 e risultato2 conterrà 6. Il valore di ritorno implicito: None None come valore di ritorno Quando una funzione non include esplicitamente return, Python restituisce automaticamente None. def fai_nulla: { pass } Chiamando fai_nulla, il risultato sarà None. Differenza tra None e altri valori None rappresenta l'assenza di valore. È diverso da 0, "" (stringa vuota) o (lista vuota), che sono comunque valori validi. Gestire valori di ritorno complessi in Python Restituire una lista È possibile restituire una lista per racchiudere più elementi in un singolo oggetto: def crea_lista: { return } Restituire un dizionario Un dizionario consente di etichettare i dati, rendendo il risultato più esplicito. def dati_persona: { return { "nome": "Mario", "età": 30 } } Restituire una funzione Python consente di restituire anche un'altra funzione, aprendo la strada a tecniche più avanzate come le funzioni di ordine superiore. def generatore_moltiplicatore(x): { def moltiplica(y): { return x * y } return moltiplica } Scrivere funzioni con return condizionato È comune usare condizioni per decidere cosa restituire. Questo rende la funzione più flessibile. def classificazione(voto): { if voto >= 18: { return "Promosso" } else: { return "Bocciato" } } In base al valore del parametro voto, la funzione restituirà un messaggio diverso. Valori di ritorno multipli con oggetti complessi Oltre a tuple e liste, è possibile restituire oggetti personalizzati o strutture dati complesse, come classi o oggetti JSON. def crea_studente: { return { "nome": "Luca", "materie": , "media": 27. 5 } } Questa tecnica è molto utile per progetti reali in cui è necessario restituire una struttura ben organizzata di dati. --- ### Funzioni e Parametri In Python - Published: 2025-04-20 - Modified: 2025-04-20 - URL: https://www.gedemy.it/documentazione/python/funzioni-e-parametri-in-python/ - Categorie: Python - Tag: Funzioni e metodi Iniziare a programmare in Python significa anche comprendere come usare in modo efficace le funzioni e i parametri. Questi strumenti permettono di strutturare il codice in modo più pulito, riutilizzabile e leggibile. In questa guida ti accompagnerò passo dopo passo per chiarire ogni aspetto, con esempi semplici ma pratici. Come si definisce una funzione in Python Per creare una funzione in Python si utilizza la parola chiave def. Ecco un esempio: def Saluta: print("Ciao, benvenuto su Gedemy! ") Una volta definita, puoi chiamare la funzione semplicemente così: Saluta. Esploriamo i diversi tipi di parametri Una funzione può accettare dei parametri, ovvero delle informazioni esterne che vengono utilizzate al suo interno. Vediamo le principali categorie. 1. Parametri posizionali: l'ordine conta Questi parametri sono passati in ordine e devono essere rispettati durante la chiamata della funzione: def Presenta(nome, età): { print(f"Mi chiamo {nome} e ho {età} anni. ") } Chiamando Presenta("Luca", 30) otterrai il risultato corretto. Invertendoli, cambierà il significato. 2. Parametri con nome (keyword arguments): chiarezza prima di tutto Puoi indicare il nome del parametro durante la chiamata. Questo rende il codice più leggibile: Presenta(età=30, nome="Luca") In questo caso l’ordine non è importante, ma i nomi sì. 3. Parametri con valori predefiniti: versatilità Puoi assegnare un valore di default a un parametro: def Presenta(nome, età=18): { print(f"{nome} ha {età} anni. ") } Chiamando Presenta("Anna"), l’età sarà automaticamente 18. 4. Parametri variabili: *args e **kwargs Quando non conosci a priori il numero di parametri, puoi usare: def Somma(*numeri): { print(sum(numeri)) } *args raccoglie i parametri in una tupla. E per i parametri con nome? def MostraInfo(**dati): { for chiave, valore in dati. items: { print(f"{chiave}: {valore}") } } **kwargs funziona come un dizionario, utile per parametri opzionali e dinamici. Output: Utilizzando queste tecniche puoi creare funzioni flessibili e robuste, adattabili a molte situazioni reali. Ordine dei parametri: segui una logica Python richiede un ordine specifico: prima i parametri posizionali, poi quelli con valori predefiniti, seguiti da *args e infine **kwargs. def Esempio(a, b=2, *args, **kwargs): { pass } Output: Se rispetti questo ordine, eviterai errori e avrai un codice più ordinato. Usare funzioni come parametri: potenza funzionale In Python puoi passare anche funzioni come parametri ad altre funzioni: def EseguiFunzione(funz): { funz } def Saluto: { print("Ciao! ") } EseguiFunzione(Saluto) Questa pratica è molto usata, ad esempio, nel paradigma funzionale e nel design dei callback. Annotazioni dei parametri: rendi il codice più chiaro Python supporta le type hints, ovvero le annotazioni sui tipi di parametri e valori restituiti: def Somma(a: int, b: int) -> int: { return a + b } Queste annotazioni non sono obbligatorie, ma migliorano la leggibilità e l’integrazione con strumenti come linters o IDE avanzati. --- ### Dizionari in Python - Published: 2025-04-14 - Modified: 2025-04-14 - URL: https://www.gedemy.it/documentazione/python/dizionari-in-python/ - Categorie: Python - Tag: Collezioni I dizionari in Python rappresentano strutture di dati fondamentali che permettono di memorizzare informazioni utilizzando coppie di elementi: una chiave unica e un valore associato. Questa caratteristica li rende ideali per organizzare dati complessi e facilmente accessibili. Come creare un dizionario in Python Creare un dizionario è semplice: basta utilizzare le parentesi graffe {} e separare le coppie chiave-valore con i due punti :. persona = { "nome": "Luca", "età": 30, "città": "Roma" } Come accedere ai valori di un dizionario Per ottenere il valore associato a una specifica chiave, è sufficiente utilizzare le parentesi quadre indicando la chiave desiderata. print(persona) # Output: Luca Modificare, aggiungere o eliminare elementi di un dizionario Modificare un elemento è semplice, basta assegnare un nuovo valore alla chiave esistente. Aggiungere una nuova coppia chiave-valore è altrettanto diretto. persona = 31 persona = "Ingegnere" Per rimuovere un elemento, utilizza del o il metodo pop. del persona persona. pop("professione") Come iterare attraverso i dizionari È possibile esplorare facilmente tutti gli elementi di un dizionario usando un ciclo for. for chiave, valore in persona. items: { print(f"{chiave}: {valore}") } Copiare un dizionario in Python Per creare una copia indipendente di un dizionario, utilizza il metodo copy. persona_copia = persona. copy Cosa sono i dizionari nidificati? I dizionari possono contenere altri dizionari, consentendo la creazione di strutture dati complesse e stratificate. persone = { "persona1": {"nome": "Anna", "età": 25}, "persona2": {"nome": "Marco", "età": 28} } I metodi principali dei dizionari in Python Ecco alcuni metodi molto utili: keys: restituisce tutte le chiavi. values: restituisce tutti i valori. items: restituisce tutte le coppie chiave-valore. chiavi = persona. keys valori = persona. values elementi = persona. items Utilizzo pratico dei dizionari in Python I dizionari trovano applicazione in molteplici scenari reali: gestione dati degli utenti, configurazioni di applicazioni, creazione di database temporanei e altro ancora. La loro flessibilità li rende uno strumento essenziale per chiunque stia imparando a programmare. --- ### Set in Python - Published: 2025-04-13 - Modified: 2025-04-14 - URL: https://www.gedemy.it/documentazione/python/set-in-python/ - Categorie: Python - Tag: Collezioni I set in Python sono collezioni di elementi non ordinati e univoci. Questo significa che: Non puoi accedere agli elementi tramite indice. Ogni elemento può comparire una sola volta. Gli elementi non seguono un ordine specifico. Come creare un set in Python Per creare un set in Python puoi utilizzare le parentesi graffe oppure la funzione set. numeri = {1, 2, 3, 4} nomi = set Attenzione: per creare un set vuoto devi usare set e non le parentesi graffe, altrimenti otterrai un dizionario. Come accedere agli elementi di un set Essendo una struttura non ordinata, non puoi usare gli indici come con le liste. Per visualizzare gli elementi di un set puoi usare un ciclo: for elemento in nomi { print(elemento) } Come aggiungere e rimuovere elementi da un set Puoi aggiungere un elemento con add: nomi. add("Giulia") Per rimuovere un elemento puoi usare remove o discard: nomi. remove("Anna") // Lancia un errore se "Anna" non esiste nomi. discard("Anna") // Non lancia errore Quali operazioni puoi fare sui set I set supportano operazioni matematiche come unione, intersezione e differenza. Come usare le operazioni tra set A = {1, 2, 3} B = {3, 4, 5} unione = A. union(B) // {1, 2, 3, 4, 5} intersezione = A. intersection(B) // {3} differenza = A. difference(B) // {1, 2} Come scorrere gli elementi di un set Puoi iterare facilmente un set con un ciclo for, ad esempio per stampare tutti gli elementi: for numero in numeri { print(numero) } Funzioni e metodi utili dei set Alcuni metodi utili da conoscere sono: clear – Svuota il set. copy – Restituisce una copia del set. pop – Rimuove e restituisce un elemento casuale. update – Aggiunge più elementi da un'altra collezione. Perché usare i set in Python I set sono particolarmente utili quando vuoi: Rimuovere duplicati da una lista. Confrontare collezioni di dati. Eseguire operazioni matematiche sugli insiemi. --- ### Input e output in Python > Scopri come gestire l'input e l'output in Python con la funzione print() e input(). - Published: 2025-04-07 - Modified: 2025-04-07 - URL: https://www.gedemy.it/documentazione/python/input-e-output-in-python/ - Categorie: Python - Tag: Concetti fondamentali La gestione degli input e output in Python è fondamentale, perchè ci permette di comunicare con l'utente che utilizza i nostri software. In questa guida impareremo a usare le funzioni input e print, le funzioni più semplici che il linguaggio ci mette a disposizione. Come stampare testo con print La funzione print in Python viene utilizzata per visualizzare dati o messaggi sulla console. Ad esempio: print("Ciao, mondo! ") Formattare l'output in Python Puoi personalizzare l'output combinando stringhe e variabili. Ad esempio: nome = "Alice" eta = 25 print(f"Mi chiamo {nome} e ho {eta} anni. ") Come leggere dati con input La funzione input permette di ottenere dati dall'utente. Il valore inserito viene sempre trattato come una stringa, quindi se si desidera un numero, bisogna convertirlo: nome = input("Come ti chiami? ") eta = int(input("Quanti anni hai? ")) print(f"Ciao {nome}, tra 10 anni avrai {eta + 10} anni. ") Esempi pratici di Input e Output Vediamo alcuni esempi che simulano un'interazione utente: colore = input("Qual è il tuo colore preferito? ") print(f"Wow! Anche a me piace il colore {colore}! ") --- ### Creazione di moduli personalizzati in Python - Published: 2025-04-07 - Modified: 2025-04-07 - URL: https://www.gedemy.it/documentazione/python/creazione-di-moduli-personalizzati-in-python/ - Categorie: Python - Tag: Moduli I moduli in Python sono file che contengono codice, come funzioni e variabili, che può essere utilizzato in altri file. Questo permette di evitare la duplicazione del codice e di mantenere un'organizzazione chiara. In pratica, ogni file Python con estensione . py può essere considerato un modulo. Esempio base di un modulo Creare un modulo in Python è molto semplice. Supponiamo di avere un file chiamato calcoli. py, dove vogliamo definire alcune funzioni matematiche. Ecco come potrebbe apparire il codice all'interno di questo modulo: def somma(a, b): return a + b def sottrazione(a, b): return a - b Salvando questo file come calcoli. py, abbiamo creato un modulo personalizzato che può essere utilizzato in altri script Python. Come importare un modulo personalizzato in Python Per utilizzare il modulo che abbiamo appena creato, dobbiamo importarlo in un altro file Python. Ad esempio, possiamo creare un file chiamato main. py e importare il modulo calcoli: import calcoli risultato = calcoli. somma(5, 3) print(risultato) In questo modo, il nostro script main. py utilizzerà la funzione somma definita nel modulo calcoli. py. Come importare solo funzioni specifiche In Python, è anche possibile importare solo specifiche funzioni da un modulo, piuttosto che tutto il modulo. Ad esempio, se volessimo importare solo la funzione somma, potremmo farlo in questo modo: from calcoli import somma risultato = somma(5, 3) print(risultato) In questo caso, abbiamo importato esclusivamente la funzione somma e possiamo utilizzarla senza dover specificare il nome del modulo. Moduli organizzati in cartelle: i pacchetti Per progetti più grandi, è possibile organizzare i moduli all'interno di cartelle, creando così dei pacchetti. Ogni cartella che contiene un pacchetto deve includere un file vuoto chiamato __init__. py, che indica a Python che la cartella contiene un pacchetto. Un esempio di struttura potrebbe essere: mio_progetto/ ├── matematica/ │ ├── __init__. py │ ├── operazioni. py ├── main. py Nel file main. py, possiamo importare moduli dal pacchetto matematica in questo modo: from matematica import operazioni Moduli incorporati (built-in) Oltre ai moduli personalizzati, Python mette a disposizione una vasta gamma di moduli incorporati, chiamati anche moduli built-in. Questi moduli sono parte della libreria standard di Python e non richiedono l'installazione di pacchetti esterni. Un esempio molto comune è il modulo math, che fornisce diverse funzioni matematiche pronte all'uso. Ecco un esempio di come utilizzare il modulo math: import math print(math. sqrt(16)) # Output: 4. 0 I vantaggi della creazione di moduli personalizzati in Python Creare moduli personalizzati offre diversi vantaggi, tra cui: Codice più organizzato e leggibile. Maggiore riusabilità: funzioni e variabili possono essere facilmente utilizzate in più file. Manutenzione semplificata: apportare modifiche a un modulo aggiornando solo il file specifico. Questi benefici sono particolarmente utili in progetti di grandi dimensioni o collaborativi, dove la suddivisione del codice in moduli è fondamentale per mantenere una struttura chiara. --- ### Tuple in Python - Published: 2025-04-06 - Modified: 2025-04-12 - URL: https://www.gedemy.it/documentazione/python/tuple-in-python/ - Categorie: Python - Tag: Collezioni Le tuple in Python sono una struttura dati molto utile per memorizzare più valori insieme, in modo simile alle liste, ma con una caratteristica particolare: sono immutabili. In questa guida scopriremo come funzionano e come si usano, passo dopo passo. Caratteristiche principali delle tuple Una tupla è una sequenza ordinata di elementi, proprio come una lista. Tuttavia, a differenza delle liste, non puoi modificare il contenuto di una tupla dopo averla creata. Ecco le principali proprietà: Ordinata: gli elementi mantengono l’ordine in cui sono stati inseriti. Immutabile: non è possibile aggiungere, rimuovere o cambiare elementi. Consentono duplicati: una tupla può contenere lo stesso valore più volte. Come creare una tupla in Python Puoi creare una tupla semplicemente racchiudendo i valori tra parentesi tonde: my_tuple = (1, 2, 3) Se vuoi creare una tupla con un solo elemento, ricordati di mettere la virgola: single_element_tuple = (5,) Come accedere agli elementi di una tupla Puoi accedere agli elementi di una tupla usando le parentesi quadre e l’indice, partendo da 0. my_tuple = ("Python", "Java", "C#") print(my_tuple) # Output: Python Come unire due tuple in Python Per unire due tuple, puoi usare l’operatore +: tuple1 = (1, 2) tuple2 = (3, 4) result = tuple1 + tuple2 print(result) # Output: (1, 2, 3, 4) Scorrere tutti gli elementi di una tupla Per scorrere gli elementi di una tupla, puoi usare un ciclo for: my_tuple = ("a", "b", "c") for item in my_tuple { print(item) } Funzioni e metodi utili per le tuple Anche se sono immutabili, le tuple supportano alcuni metodi utili: count(x): conta quante volte l’elemento x è presente. index(x): restituisce l’indice della prima occorrenza dell’elemento x. my_tuple = (1, 2, 3, 2) print(my_tuple. count(2)) # Output: 2 print(my_tuple. index(3)) # Output: 2 Quando usare le tuple in Python Le tuple sono ideali quando hai bisogno di memorizzare dei dati che non devono cambiare, ad esempio: Coordinate (x, y) Valori di configurazione Restituzione di più valori da una funzione def get_user { name = "Luca" age = 30 return (name, age) } user = get_user print(user) # Output: ('Luca', 30) --- ### Liste in Python - Published: 2025-04-05 - Modified: 2025-04-14 - URL: https://www.gedemy.it/documentazione/python/liste-in-python/ - Categorie: Python - Tag: Collezioni In questa guida approfondiremo uno degli elementi fondamentali del linguaggio Python: le liste. Se stai muovendo i primi passi nella programmazione, le liste saranno presto una delle strutture dati che utilizzerai più spesso. Impara a padroneggiarle con esempi pratici, linguaggio chiaro e nozioni essenziali. Come creare una lista in Python Creare una lista in Python è semplice. Una lista è una raccolta ordinata e modificabile di elementi, racchiusa tra parentesi quadre. Ad esempio: frutta = È possibile inserire qualunque tipo di elemento: numeri, stringhe, booleani o perfino altre liste. Come accedere agli elementi: indicizzazione e slicing Ogni elemento all'interno di una lista ha un indice, che parte da 0. Per accedere a un elemento, usa le parentesi quadre. Ecco un esempio: prima_fruita = frutta Con lo slicing puoi ottenere porzioni di lista usando la sintassi lista. Ad esempio: prime_due = frutta Modificare gli elementi di una lista Le liste sono mutabili, quindi puoi modificarne i valori. Basta accedere all'indice desiderato e assegnare un nuovo valore: frutta = "pera" Come aggiungere o rimuovere elementi da una lista Python offre diversi metodi per aggiungere o rimuovere elementi da una lista. Per aggiungere un elemento alla fine, si usa append: frutta. append("arancia") Per rimuovere un elemento specifico, si può usare remove: frutta. remove("mela") Oppure eliminare un elemento in una determinata posizione con del: del frutta Iterare su una lista: i loop Uno degli usi più comuni delle liste è l'iterazione. Con un ciclo for possiamo eseguire un'azione su ogni elemento: for frutto in frutta { print(frutto) } Come ordinare una lista Per ordinare gli elementi di una lista in modo crescente, si utilizza il metodo sort: frutta. sort Se si vuole un ordine decrescente, si può passare il parametro reverse=True: frutta. sort(reverse=True) Fare una copia di una lista in modo corretto Assegnare una lista a un’altra variabile non ne crea una copia, ma un riferimento. Per creare una vera copia, puoi usare copy: copia_frutta = frutta. copy Come unire due liste in Python Puoi unire due liste usando l’operatore +: altra_frutta = lista_completa = frutta + altra_frutta Funzioni e metodi utili per le liste Le liste offrono numerosi metodi incorporati per semplificare le operazioni comuni. Eccone alcuni: len(lista) – Restituisce il numero di elementi lista. index("elemento") – Trova la posizione dell’elemento lista. count("elemento") – Conta quante volte compare lista. insert(pos, val) – Inserisce un elemento nella posizione specificata lista. pop – Rimuove e restituisce l’ultimo elemento lista. reverse – Inverte l’ordine degli elementi Imparare a usare questi metodi renderà il tuo codice più efficiente e leggibile. --- ### Operatore ternario in Python - Published: 2025-04-04 - Modified: 2025-04-04 - URL: https://www.gedemy.it/documentazione/python/operatore-ternario-in-python/ - Categorie: Python - Tag: Controllo del flusso In Python, l’operatore ternario permette di scrivere condizioni in una sola riga, rendendo il codice più compatto ed elegante. La sintassi è la seguente: risultato = valore_se_vero if condizione else valore_se_falso Come utilizzare l’operatore ternario Vediamo un esempio pratico dell’operatore ternario in Python: eta = 18 messaggio = "Maggiorenne" if eta >= 18 else "Minorenne" print(messaggio) Se eta è maggiore o uguale a 18, il risultato sarà “Maggiorenne”, altrimenti “Minorenne”. Utilizzo dell’operatore ternario con la clausola else L’operatore ternario include sempre un’istruzione else. Se omessa, il codice genererà un errore. numero = 10 parita = "Pari" if numero % 2 == 0 else "Dispari" print(parita) Operatori logici con l’operatore ternario È possibile combinare l’operatore ternario con gli operatori logici (and e or) per condizioni più complesse. numero = -5 stato = "Positivo" if numero > 0 else "Negativo" if numero < 0 else "Zero" print(stato) Uso dell’operatore ternario in Python con operatori logici La sintassi dell’operatore ternario con operatori logici Si può combinare con and e or per ottenere risultati senza il classico if-else. x = 10 y = 5 risultato = ("X è maggiore" if x > y else "Y è maggiore") if x ! = y else "Sono uguali" print(risultato) Combinare operatori logici per condizioni complesse Quando servono più verifiche, l’operatore ternario può essere annidato: valore = 7 messaggio = "Maggiore di 10" if valore > 10 else "Minore di 10 e pari" if valore % 2 == 0 else "Minore di 10 e dispari" print(messaggio) Utilizzo avanzato dell’operatore ternario Si può anche usare con funzioni lambda per maggiore flessibilità. parita = lambda num: "Pari" if num % 2 == 0 else "Dispari" print(parita(8)) --- ### Funzioni in Python > Scopri cosa sono le funzioni in Python, come crearle e utilizzarle efficacemente. - Published: 2025-03-25 - Modified: 2025-04-20 - URL: https://www.gedemy.it/documentazione/python/funzioni-in-python/ - Categorie: Python - Tag: Funzioni e metodi Una funzione è un blocco di codice progettato per svolgere un compito specifico. In Python, le funzioni permettono di organizzare il codice, evitare ripetizioni e migliorare la leggibilità del programma. Utilizzando le funzioni, possiamo scrivere una volta una sequenza di istruzioni e riutilizzarla più volte, semplicemente richiamandola nel momento del bisogno. Struttura e sintassi delle funzioni La sintassi per definire una funzione in Python è semplice e diretta. Ecco un esempio base: def saluta: { print("Ciao! Benvenuto in Python. ") } Il comando def serve per dichiarare una funzione, seguito dal nome e da parentesi tonde, che possono contenere parametri. Come si utilizza una funzione? Una volta definita, una funzione può essere richiamata nel programma in questo modo: saluta Questa chiamata esegue tutte le istruzioni contenute nel corpo della funzione. Come passare valori a una funzione Le funzioni possono ricevere dei parametri, ovvero dei valori da utilizzare internamente. Ecco un esempio: def saluta_utente(nome): { print("Ciao, " + nome + "! ") } Per passare un parametro, basta indicarlo nella chiamata: saluta_utente("Luca") Quali tipi di argomenti possiamo usare? Python consente diversi modi per passare gli argomenti alle funzioni: Argomenti posizionali: l’ordine è importante. Argomenti con nome (keyword arguments): specifichi il nome del parametro. Esempio con argomenti con nome: def descrizione_persona(nome, età): { print(nome + " ha " + str(età) + " anni. ") } descrizione_persona(età=30, nome="Giulia") Valori predefiniti per i parametri È possibile assegnare un valore predefinito a un parametro. In questo modo, se l’argomento non viene fornito, la funzione utilizzerà il valore di default: def saluta(nome="ospite"): { print("Benvenuto, " + nome + "! ") } saluta saluta("Marco") Liste come argomenti nelle funzioni Le liste sono spesso utilizzate come argomenti per funzioni che devono elaborare più elementi: def stampa_elementi(lista): { for elemento in lista: { print(elemento) } } nomi = stampa_elementi(nomi) Come restituire un valore da una funzione Una funzione può restituire un risultato utilizzando la parola chiave return: def somma(a, b): { return a + b } risultato = somma(4, 5) print(risultato) In questo caso, somma restituisce il valore 9, che viene poi stampato. Capire la ricorsione in Python Una funzione può anche chiamare se stessa. Questo concetto si chiama ricorsione ed è utile per risolvere problemi come il calcolo del fattoriale: def fattoriale(n): { if n == 0: { return 1 } else: { return n * fattoriale(n - 1) } } print(fattoriale(5)) La funzione continua a chiamare se stessa finché raggiunge il caso base, ovvero quando n è uguale a 0. --- ### Break e continue in Python - Published: 2025-03-24 - Modified: 2025-03-24 - URL: https://www.gedemy.it/documentazione/python/break-e-continue-in-python/ - Categorie: Python - Tag: Istruzioni di iterazione Quando si inizia a programmare in Python, è essenziale conoscere le istruzioni break e continue per gestire il flusso di un ciclo. Queste istruzioni permettono di interrompere o saltare un'iterazione in un ciclo, rendendo il tuo codice più flessibile ed efficiente. Come funziona l'istruzione break nel ciclo L'istruzione break viene utilizzata per uscire completamente da un ciclo quando viene soddisfatta una certa condizione. Ecco un esempio di come utilizzarla in un ciclo while: while True { number = int(input("Inserisci un numero (0 per uscire): ")) if number == 0 { break; } print(f"Hai inserito il numero {number}. ") } In questo esempio, il ciclo si interrompe quando l'utente inserisce 0, grazie all'istruzione break. L'istruzione continue nel ciclo: come funziona L'istruzione continue serve a saltare l'iterazione corrente del ciclo e passare direttamente a quella successiva. È particolarmente utile quando si vuole ignorare certe condizioni senza interrompere completamente il ciclo. Ecco un esempio in un ciclo for: for number in range(1, 6) { if number == 3 { continue; } print(f"Numero: {number}") } In questo caso, quando il numero è 3, l'istruzione continue salta quell'iterazione e passa alla successiva. Il risultato sarà che il numero 3 non verrà stampato. Utilizzo delle istruzioni break e continue con le condizioni if Le istruzioni break e continue sono spesso utilizzate insieme a condizioni if. Queste condizioni permettono di gestire in modo dinamico l'uscita o il salto di un'iterazione in base a vari criteri. Ecco un altro esempio pratico: for number in range(1, 11) { if number == 5 { print("Raggiunto il numero 5, esco dal ciclo. ") break; } if number % 2 == 0 { continue; } print(f"Numero dispari: {number}") } Qui, l'istruzione break interrompe il ciclo quando viene raggiunto il numero 5, mentre continue salta i numeri pari. Alcune considerazioni sull'uso di break e continue Le istruzioni break e continue sono potenti strumenti per controllare il flusso di un ciclo, ma è importante usarle con cautela. Un uso eccessivo potrebbe rendere il codice difficile da seguire e debug. Pertanto, è sempre buona pratica documentare il codice e testare accuratamente queste istruzioni per assicurarsi che funzionino come previsto. --- ### Ciclo while in Python - Published: 2025-03-24 - Modified: 2025-03-24 - URL: https://www.gedemy.it/documentazione/python/ciclo-while-in-python/ - Categorie: Python - Tag: Istruzioni di iterazione In Python, il ciclo while è uno degli strumenti più importanti per creare dei cicli all'interno di un programma. Con il ciclo while, puoi eseguire un blocco di codice finché una certa condizione è vera. Vediamo come funziona e come puoi utilizzarlo nei tuoi programmi! Sintassi del ciclo while in Python La struttura del ciclo while è abbastanza semplice. Ecco come si presenta: while condizione: { # blocco di codice da eseguire finché la condizione è vera } In questo caso, la condizione è espressa come un'espressione logica (come x < 10). Se la condizione risulta vera, il ciclo continua a ripetersi; quando diventa falsa, il ciclo si interrompe e il programma procede con il codice successivo. Utilizzo del ciclo while Facciamo un esempio per vedere il ciclo while in azione: x = 0; while x < 5: { print(x); x = x + 1; } In questo esempio, il ciclo stampa i numeri da 0 a 4. Il valore di x viene incrementato di 1 a ogni iterazione, finché la condizione x < 5 risulta vera. Ciclo while infinito È possibile scrivere un ciclo while infinito quando la condizione non diventa mai falsa. Per esempio: while True: { print("Questo ciclo non si fermerà mai! "); } Il ciclo continuerà all'infinito finché non lo interrompi manualmente o utilizzi un'istruzione speciale come break, che vedremo più avanti. Cicli annidati e cicli con istruzioni condizionali Puoi anche annidare i cicli while all'interno di altri cicli, creando delle strutture più complesse. Ecco un esempio: i = 1; while i --- ### Ciclo for in Python - Published: 2025-03-24 - Modified: 2025-03-24 - URL: https://www.gedemy.it/documentazione/python/ciclo-for-in-python/ - Categorie: Python - Tag: Istruzioni di iterazione Il ciclo for è uno degli strumenti più potenti e utilizzati in Python per ripetere un'azione più volte. Se stai imparando a programmare, comprendere come funziona ti sarà di grande aiuto per gestire in modo efficiente grandi quantità di dati. Sintassi del ciclo for La sintassi di base del ciclo for in Python è molto semplice. Ecco un esempio: for elemento in collezione { // Codice da eseguire per ogni elemento } In questa sintassi, for scorre attraverso ogni elemento di una collezione (come una lista o una stringa), eseguendo il blocco di codice al suo interno. Utilizzo del ciclo for Vediamo un esempio pratico di utilizzo del ciclo for per stampare i numeri di una lista: numeri = for numero in numeri { Console. WriteLine(numero); } In questo caso, il ciclo for itera attraverso ogni elemento della lista numeri e li stampa a video. Ogni ciclo stampa un numero diverso fino a che non li ha attraversati tutti. Iterazione con indice In Python, puoi anche accedere agli indici degli elementi durante l'iterazione utilizzando la funzione enumerate: frutti = for indice, frutto in enumerate(frutti) { Console. WriteLine($"{indice}: {frutto}"); } Qui utilizziamo enumerate per ottenere sia l'indice che l'elemento della lista durante l'iterazione, in modo da stampare i numeri accanto ai frutti. Cicli annidati Un ciclo annidato è un ciclo for all'interno di un altro ciclo for. Questo può essere utile per iterare su strutture di dati più complesse. Ecco un esempio: matrice = , , ] for riga in matrice { for elemento in riga { Console. WriteLine(elemento); } } In questo esempio, il ciclo esterno itera su ogni riga della matrice, mentre il ciclo interno itera su ogni elemento di quella riga. Utilizzo di range in cicli Una funzione molto comune utilizzata con i cicli for è range, che genera una sequenza di numeri. Vediamo come utilizzarlo: for i in range(1, 6) { Console. WriteLine(i); } In questo esempio, range(1, 6) crea una sequenza di numeri da 1 a 5, e il ciclo for li attraversa, stampando ciascun numero. --- ### Casting in Python > Scopri come funziona il casting in Python, dalle conversioni implicite alle funzioni di casting esplicite. - Published: 2025-03-22 - Modified: 2025-03-22 - URL: https://www.gedemy.it/documentazione/python/casting-in-python/ - Categorie: Python - Tag: Concetti fondamentali Il casting in Python è un processo che consente di convertire un tipo di dato in un altro. Questo può essere utile in situazioni dove hai bisogno di lavorare con diversi tipi di dati all'interno del tuo codice. In Python, ci sono due tipi principali di casting: il casting implicito e il casting esplicito. In questo articolo esploreremo entrambi, insieme alle funzioni di casting più comuni. Casting implicito (coercizione di tipo) Il casting implicito avviene quando Python converte automaticamente un tipo di dato in un altro senza che tu debba intervenire. Questo succede in situazioni dove la conversione è considerata "sicura" e non porta alla perdita di dati. Un esempio classico è la conversione tra interi e numeri a virgola mobile. x = 5 # Intero y = 2. 5 # Float z = x + y # Python converte automaticamente x in float print(z) # Output: 7. 5 In questo esempio, Python converte automaticamente x da intero a float per eseguire correttamente l'operazione matematica con y. Casting esplicito (conversione di tipo) Il casting esplicito è necessario quando Python non può convertire automaticamente i tipi di dati o quando desideri controllare manualmente il processo di conversione. Questo avviene tramite l'uso di funzioni specifiche che convertono un tipo di dato in un altro. Vediamo un esempio: x = 5. 5 # Float y = int(x) # Conversione esplicita a intero print(y) # Output: 5 In questo caso, usiamo la funzione int per convertire il valore x da float a intero, eliminando la parte decimale. Funzioni di casting comuni In Python, ci sono diverse funzioni che ti permettono di effettuare il casting tra vari tipi di dati. Ecco le più comuni: int: Converte un numero o una stringa in un intero. float: Converte un numero o una stringa in un numero a virgola mobile. str: Converte un valore in una stringa. bool: Converte un valore in un booleano (True o False). Nota sulla possibile perdita di informazioni: Quando utilizzi il casting esplicito, è importante tenere a mente che potrebbe verificarsi una perdita di dati. Ad esempio, convertire un numero float in un intero comporta la perdita della parte decimale. x = 9. 99 y = int(x) # La parte decimale viene persa print(y) # Output: 9 In questo caso, la parte . 99 viene eliminata quando convertiamo il float in intero. Per questo motivo, bisogna usare il casting esplicito con attenzione per evitare perdite di dati importanti. --- ### Condizionali IF in Python - Published: 2025-03-18 - Modified: 2025-03-20 - URL: https://www.gedemy.it/documentazione/python/condizionali-if-python/ - Categorie: Python - Tag: Controllo del flusso In Python, le condizioni permettono di eseguire diverse azioni a seconda che una data condizione sia vera o falsa. Uno degli strumenti principali per gestire le condizioni è l'istruzione if. Utilizzo dell'istruzione if in Python L'istruzione if in Python valuta una condizione. Se la condizione è True (vera), esegue il blocco di codice associato. Ecco un esempio: if True: { print("Questa condizione è vera! ") } In questo caso, il codice all'interno del blocco if verrà eseguito poiché la condizione è vera. Gestire condizioni alternative con l'istruzione else Per gestire il caso in cui la condizione sia False (falsa), possiamo usare l'istruzione else. Ecco un esempio: if False: { print("Questa condizione è vera! ") } else: { print("Questa condizione è falsa! ") } Se la condizione dell'istruzione if è falsa, il codice all'interno del blocco else verrà eseguito. Gestione di più condizioni con elif (else if) In Python, puoi gestire più di due condizioni usando l'istruzione elif. È un'estensione di else che consente di verificare ulteriori condizioni. x = 10 if x > 20: { print("x è maggiore di 20") } elif x == 10: { print("x è esattamente 10") } else: { print("x è minore di 20") } In questo esempio, Python esaminerà prima la condizione if, poi la condizione elif. Se entrambe sono false, verrà eseguito il blocco else. Istruzioni if annidate in Python Le istruzioni if possono essere annidate, ovvero puoi inserire un'istruzione if dentro un'altra if per creare logiche più complesse: x = 5 if x > 0: { print("x è positivo") if x % 2 == 0: { print("x è pari") } else: { print("x è dispari") } } In questo caso, la condizione if interna viene valutata solo se la prima condizione è vera. Espressioni if in una sola riga Python supporta anche espressioni if in una sola riga, utili per condizioni semplici: print("Positivo") if x > 0 else print("Negativo") Questa sintassi compatta è utile per eseguire operazioni rapide in base a una condizione. Utilizzo degli operatori logici con l'istruzione if Gli operatori logici come and, or e not possono essere usati per combinare più condizioni all'interno di un'istruzione if. Ecco un esempio: x = 15 if x > 10 and x < 20: { print("x è compreso tra 10 e 20") } In questo esempio, l'istruzione if verifica che entrambe le condizioni siano vere prima di eseguire il codice. Combinazione di operatori logici in Python Puoi combinare più operatori logici per creare condizioni più complesse: y = 25 if (y > 10 or y == 25) and not (y < 5): { print("y soddisfa le condizioni") } Questa condizione è soddisfatta perché almeno una delle espressioni è vera, e l'operatore not nega correttamente la condizione finale. --- ### Commenti in Python - Published: 2025-03-15 - Modified: 2025-03-21 - URL: https://www.gedemy.it/documentazione/python/commenti-in-python/ - Categorie: Python - Tag: Concetti fondamentali I commenti sono una parte essenziale della scrittura di codice in Python. Consentono agli sviluppatori di spiegare cosa fa il codice, aiutando sia te che altri programmatori a capire meglio il funzionamento dello script. In questa guida, esploreremo i commenti in Python, fornendo spiegazioni semplici e pratiche per chi è alle prime armi. Commenti su una singola linea Il metodo più semplice per inserire un commento in Python è usare il simbolo #. Qualsiasi testo che segue il # sarà ignorato dal compilatore e servirà solo a te o ad altri programmatori per comprendere meglio il codice. Ecco un esempio di un commento su una singola linea: # Questo è un commento su una sola linea print("Ciao, mondo! ") # Questo è un commento accanto a una riga di codice Come scrivere commenti multi-linea in Python Se hai bisogno di aggiungere commenti che coprono più righe, puoi usare i commenti multi-linea. Anche se Python non ha una sintassi specifica per i commenti multi-linea, puoi utilizzare # all'inizio di ogni riga, oppure usare una stringa di testo tripla come commento. Tuttavia, le stringhe triple sono più spesso usate per documentare le funzioni, quindi è consigliabile limitare l'uso di """ ai docstring. Ecco due metodi per i commenti multi-linea: # Questo è un commento # che si estende # su più righe """ Questo è un altro modo di scrivere un commento multi-linea in Python. """ Suggerimenti per IDE: commenti veloci Molti IDE e editor di testo come Visual Studio Code, PyCharm o Sublime Text, offrono scorciatoie per commentare rapidamente il codice. Per esempio, puoi selezionare una o più righe di codice e usare Ctrl + / su Windows o Cmd + / su macOS per aggiungere o rimuovere commenti in modo rapido. Questo può essere utile per commentare blocchi di codice durante il debugging o la revisione del codice. Perché i commenti sono importanti? Usare commenti nel codice non solo rende più facile per te ricordare come funziona il tuo script, ma aiuta anche chiunque altro a lavorare sul progetto. Un buon commento dovrebbe spiegare perché il codice fa qualcosa, non solo cosa fa. Evita di scrivere commenti superflui e concentrati su quelli che possono davvero essere d'aiuto per chi legge. Ad esempio: # Questo ciclo stampa i numeri da 1 a 10 for i in range(1, 11): print(i) Ricorda: un codice ben commentato è un segno di un buon programmatore! --- ### Tipi di dati in Python - Published: 2025-03-14 - Modified: 2025-04-15 - URL: https://www.gedemy.it/documentazione/python/tipi-di-dati-in-python/ - Categorie: Python - Tag: Concetti fondamentali Comprendere i tipi di dati in Python è uno dei primi passi fondamentali per chi desidera imparare a programmare in questo linguaggio. In questa guida, esploreremo i principali tipi di dati disponibili, con esempi pratici e un linguaggio accessibile, perfetto per i principianti. Tipo di dato numerico: Intero (int) Il tipo int rappresenta numeri interi, positivi o negativi, senza decimali. numero = 42 print(type(numero)) Numeri con la virgola: Float (float) Il tipo float gestisce numeri decimali, ideali per calcoli più precisi. decimale = 3. 14 print(type(decimale)) Testo e caratteri: Stringa (str) Le stringhe sono sequenze di caratteri racchiuse tra virgolette, usate per rappresentare testo. testo = "Ciao, Python! " print(type(testo)) Vero o falso: Booleano (bool) Il tipo bool ha solo due valori possibili: True o False. attivo = True print(type(attivo)) Elenco ordinato e modificabile: Lista (list) Una lista contiene una sequenza ordinata di elementi che possono essere modificati. frutti = print(type(frutti)) Collezione immutabile di elementi: Tupla (tuple) La tupla è simile alla lista, ma i suoi elementi non possono essere modificati dopo la creazione. coordinate = (10, 20) print(type(coordinate)) Insieme non ordinato e unico: Set (set) Un set è una raccolta non ordinata che non ammette duplicati. numeri_unici = {1, 2, 3, 1} print(type(numeri_unici)) Associazione di chiavi e valori: Dizionario (dict) Il dizionario consente di associare una chiave a un valore. È molto usato per strutturare dati. persona = {"nome": "Anna", "età": 30} print(type(persona)) Assenza di valore: NoneType (None) Il tipo NoneType rappresenta un valore nullo o non assegnato, utile per inizializzazioni. risultato = None print(type(risultato)) Sequenza numerica: Range (range) range viene spesso usato nei cicli per generare sequenze di numeri interi. for i in range(5): { print(i) } Dati binari immutabili: Byte (bytes) Il tipo bytes rappresenta dati binari che non possono essere modificati. dati = b"Python" print(type(dati)) Sequenza di byte modificabile: Bytearray (bytearray) Simile ai bytes, ma consente la modifica dei singoli elementi. modificabile = bytearray(b"Hello") print(type(modificabile)) Accesso diretto alla memoria: MemoryView (memoryview) Un memoryview consente di lavorare con segmenti di dati binari senza copiarli. v = memoryview(bytes(5)) print(type(v)) Conoscere i tipi di dati in Python è il primo passo per scrivere codice pulito, efficiente e professionale. Praticare ogni tipo, sperimentare con gli esempi e comprendere come e quando usarli ti renderà un programmatore più consapevole. --- ### Costanti in Python - Published: 2025-03-14 - Modified: 2025-04-07 - URL: https://www.gedemy.it/documentazione/python/costanti-in-python/ - Categorie: Python - Tag: Concetti fondamentali In Python, le costanti sono valori che non cambiano durante l'esecuzione del programma. Anche se Python non ha un vero e proprio concetto di costante come in altri linguaggi di programmazione, è possibile definire delle variabili che si comportano come tali seguendo alcune convenzioni. In questa guida vedremo come definire e utilizzare le costanti, così come i vantaggi che offrono nel codice. Cos'è una costante in Python? Una costante in Python è una variabile che idealmente non cambia il suo valore una volta definito. Python non fornisce un supporto nativo per dichiarare costanti, ma possiamo comunque usare delle convenzioni per indicare che una variabile dovrebbe essere considerata come costante. Ad esempio, definiamo una costante chiamata PI con il seguente codice: PI = 3. 14159 Il valore di PI dovrebbe rimanere costante durante tutta l'esecuzione del programma. Come si usano le costanti in Python Le costanti vengono utilizzate nello stesso modo delle normali variabili in Python. Dopo averle dichiarate, puoi usarle ovunque nel codice. Ecco un esempio di come utilizzare una costante per calcolare l'area di un cerchio: PI = 3. 14159 def area_cerchio(raggio): return PI * (raggio ** 2) print(area_cerchio(5)) In questo caso, abbiamo usato PI come costante per eseguire il calcolo. L'uso delle costanti aiuta a rendere il codice più leggibile e comprensibile. Convenzioni di nomenclatura per le costanti in Python In Python, non esistono parole chiave o sintassi speciali per le costanti. Tuttavia, la comunità dei programmatori Python segue una convenzione per indicare che una variabile è una costante: il nome della costante dovrebbe essere scritto in maiuscolo, con le parole separate da underscore. Ecco un esempio: MAX_TEMPERATURE = 100 MIN_TEMPERATURE = 0 Seguire queste convenzioni aiuta altri programmatori a capire che il valore della variabile non dovrebbe essere modificato. I vantaggi delle costanti in Python L'uso delle costanti nel codice porta con sé diversi vantaggi. Ecco i principali motivi per cui dovresti usare le costanti: Leggibilità: Le costanti rendono il codice più facile da leggere, soprattutto quando si utilizzano valori numerici che possono non essere immediatamente comprensibili. Dare un nome significativo a una costante aiuta a capire meglio il contesto. Manutenibilità: Se hai bisogno di cambiare il valore di una costante, puoi farlo in un unico punto nel codice, piuttosto che cercare e sostituire tutte le occorrenze. Protezione dagli errori: L'uso di costanti può aiutare a prevenire modifiche accidentali ai valori che non dovrebbero cambiare. --- ### Variabili in Python - Published: 2025-03-14 - Modified: 2025-03-26 - URL: https://www.gedemy.it/documentazione/python/variabili-python/ - Categorie: Python - Tag: Concetti fondamentali Le variabili sono uno degli elementi fondamentali in qualsiasi linguaggio di programmazione, inclusa Python. Le variabili ci permettono di memorizzare e manipolare dati in modo efficace. In questa guida, esploreremo tutto ciò che devi sapere sulle variabili in Python, partendo dalle basi fino a concetti leggermente più avanzati. Se sei un principiante, non preoccuparti! Ti spiegherò tutto in modo semplice e comprensibile. Come si creano le variabili in Python Creare una variabile in Python è semplice. Non c'è bisogno di dichiarare esplicitamente il tipo di variabile (ad esempio, intero, stringa, etc. ), poiché Python è un linguaggio a tipizzazione dinamica. Per creare una variabile, basta assegnarle un valore utilizzando il simbolo di uguale (=). Ecco un esempio: x = 5 nome = "Mario" In questo esempio, x è una variabile che contiene un numero intero, mentre nome è una variabile che contiene una stringa. Inizializzazione delle variabili in Python In Python, possiamo anche inizializzare più variabili contemporaneamente in una singola riga. Ecco come farlo: a, b, c = 1, 2, "ciao" Con questa sintassi, stiamo assegnando il valore 1 alla variabile a, il valore 2 alla variabile b e la stringa "ciao" alla variabile c. Regole per la scelta dei nomi delle variabili Esistono alcune convenzioni da seguire quando scegliamo i nomi delle nostre variabili in Python. Seguire queste convenzioni aiuta a rendere il codice più leggibile e comprensibile: Il nome di una variabile può contenere lettere, numeri e il carattere underscore (_). I nomi delle variabili non possono iniziare con un numero. I nomi delle variabili dovrebbero essere significativi. Ad esempio, preferisci nome_utente a n. Assegnazione multipla di variabili in Python Python permette di assegnare lo stesso valore a più variabili contemporaneamente. Ecco un esempio: x = y = z = 100 In questo caso, le variabili x, y e z avranno tutte il valore 100. Come scambiare i valori tra variabili in Python Un'operazione comune in programmazione è lo scambio dei valori tra due variabili. In Python, possiamo farlo in modo semplice utilizzando questa sintassi: a, b = b, a In questo esempio, il valore di a e b vengono scambiati senza bisogno di una variabile temporanea. È un modo rapido e pulito per invertire i valori di due variabili. --- ### Introduzione a Python > Scopri cos'è Python, la sua storia, i motivi della sua popolarità e i principali ambiti di utilizzo. - Published: 2025-03-13 - Modified: 2025-04-07 - URL: https://www.gedemy.it/documentazione/python/introduzione-a-python/ - Categorie: Python - Tag: Concetti fondamentali Python è uno dei linguaggi di programmazione più utilizzati al mondo. La sua sintassi semplice, la flessibilità e la vasta comunità lo rendono la scelta ideale per chi vuole iniziare a programmare. In questa guida, scoprirai cosa rende Python così speciale e come iniziare a usarlo anche se sei alle prime armi. Origini e curiosità sulla nascita di Python Python è stato creato alla fine degli anni '80 da Guido van Rossum, un programmatore olandese. Il linguaggio è stato ufficialmente rilasciato nel 1991. Il nome "Python" non deriva dal serpente, ma dallo show televisivo britannico "Monty Python’s Flying Circus", di cui l'autore era un grande fan. Fin da subito, Python si è distinto per la sua filosofia: leggibilità del codice, semplicità e facilità di apprendimento. Questo lo ha reso molto popolare nel mondo accademico e tra i principianti. Perché Python è così usato oggi? Python è amato da sviluppatori e aziende per diversi motivi: Facile da imparare: la sintassi è semplice e vicina al linguaggio naturale. Multipiattaforma: funziona su Windows, macOS, Linux e molti altri sistemi. Vasta comunità: trovare aiuto o librerie pronte all’uso è molto semplice. Supporta diversi paradigmi: programmazione ad oggetti, funzionale e procedurale. Questo lo rende perfetto sia per piccoli script che per progetti complessi. Ad esempio, ecco un semplice programma in Python che stampa un messaggio a schermo: def main: { print("Ciao, mondo! ") } main Quali sono gli utilizzi principali di Python? Uno dei motivi per cui Python è così apprezzato è la sua versatilità. Ecco alcuni dei campi in cui viene usato: Sviluppo web: Mediante l'utilizzo di framework come Django e Flask. Data Science e Machine Learning: grazie a librerie come Pandas, NumPy, TensorFlow e Scikit-learn. Automazione: per creare script che eseguono attività ripetitive. Giochi: con librerie come Pygame. Sviluppo di applicazioni desktop: tramite librerie come Tkinter o PyQt. Vuoi vedere un esempio semplice di come si sommano due numeri in Python? Ecco il codice: def somma(a, b): { return a + b } risultato = somma(5, 3) print("La somma è:", risultato) --- ### Operatori di Incremento e Decremento in C# - Published: 2025-03-03 - Modified: 2025-03-03 - URL: https://www.gedemy.it/documentazione/csharp/operatori-di-incremento-e-decremento/ - Categorie: C Sharp - Tag: Operatori ed espressioni Gli operatori di incremento e decremento in C# sono strumenti utilizzati per aumentare o diminuire il valore di una variabile numerica di 1. Questi operatori sono molto comuni e vengono spesso utilizzati in cicli e per la manipolazione degli indici. Operatore di incremento (++): cosa significa L'operatore di incremento (++) viene utilizzato per aggiungere 1 al valore di una variabile numerica. Operatore di decremento (--): cosa significa L'operatore di decremento (--) viene utilizzato per sottrarre 1 al valore di una variabile numerica. Sintassi e esempi di incremento e decremento Vediamo ora come utilizzare questi operatori in pratica. Ecco alcuni esempi con codice C# per dimostrare le varie modalità di incremento e decremento. 1. Incremento prefisso (++a) Nell'incremento prefisso, il valore della variabile viene incrementato prima di essere utilizzato in un'operazione. int a = 5; int b = ++a; // Ora 'a' è 6 e 'b' è 6 2. Incremento postfisso (a++) Nell'incremento postfisso, il valore della variabile viene prima utilizzato nell'operazione e poi incrementato. int a = 5; int b = a++; // Ora 'a' è 6 ma 'b' rimane 5 3. Decremento prefisso (--a) Nell'incremento prefisso, il valore della variabile viene decrementato prima di essere utilizzato in un'operazione. int a = 5; int b = --a; // Ora 'a' è 4 e 'b' è 4 4. Decremento postfisso (a--) Nell'incremento postfisso, il valore della variabile viene prima utilizzato nell'operazione e poi decrementato. int a = 5; int b = a--; // Ora 'a' è 4 ma 'b' rimane 5 Confronto tra incremento e decremento prefisso e postfisso La differenza principale tra il prefisso e il postfisso riguarda l'ordine in cui viene effettuata la modifica del valore. Nel prefisso, il valore viene aggiornato prima di essere utilizzato nell'espressione, mentre nel postfisso, viene aggiornato dopo. Quando usare il prefisso e il postfisso Il prefisso è spesso preferibile quando si ha bisogno di aggiornare il valore della variabile immediatamente prima di utilizzarlo, mentre il postfisso è utile quando si desidera utilizzare il valore attuale prima di aggiornarlo. Applicazioni comuni degli operatori di incremento e decremento Vediamo ora alcuni contesti comuni in cui vengono utilizzati questi operatori in C#. 1. Cicli for Un caso d'uso molto comune per gli operatori di incremento e decremento è nei cicli for. Spesso vengono utilizzati per aggiornare l'indice di iterazione di un ciclo. for (int i = 0; i < 10; i++) { Console. WriteLine(i); } 2. Manipolazione di indici Gli operatori di incremento e decremento sono molto utili anche quando si lavora con gli indici di array o collezioni. È possibile incrementare o decrementare l'indice per spostarsi all'interno della struttura dati. int numeri = { 1, 2, 3, 4 }; for (int i = 0; i < numeri. Length; i++) { Console. WriteLine(numeri); } Consigli utili per l'utilizzo degli operatori di incremento e decremento Per un codice più pulito e leggibile, segui queste best practices quando utilizzi gli operatori di incremento e decremento. Mantieni il codice chiaro Evita di usare questi operatori in modo da confondere... --- ### Operatori di assegnazione in C# - Published: 2025-03-01 - Modified: 2025-03-01 - URL: https://www.gedemy.it/documentazione/csharp/operatori-di-assegnazione/ - Categorie: C Sharp - Tag: Operatori ed espressioni Gli operatori di assegnazione in C# sono strumenti fondamentali che permettono di assegnare valori a variabili. Conoscere e saper utilizzare questi operatori ti aiuterà a scrivere codice più efficiente e leggibile. In questa guida, vedremo i principali operatori di assegnazione in C#, con esempi pratici e suggerimenti per utilizzarli al meglio. Elenco degli operatori di assegnazione in C# Esistono diversi tipi di operatori di assegnazione in C#, ciascuno con uno scopo specifico. Ecco un elenco dei più comuni: = Operatore di assegnazione semplice +=, -=, *=, /=, %= Operatori di assegnazione combinata &=, |=, ^= Operatori bitwise di assegnazione = Operatori di shift di assegnazione ? ? = Operatore null coalescing di assegnazione Utilizzo degli operatori di assegnazione Vediamo ora come utilizzare questi operatori nella pratica. Di seguito esploreremo ciascun operatore, con esempi di codice. 1. Operatore di assegnazione semplice (=) L'operatore di assegnazione = è il più semplice e comune. Serve per assegnare il valore di un'espressione a una variabile. int x; x = 10; 2. Operatori di assegnazione combinata Gli operatori di assegnazione combinata permettono di eseguire un'operazione aritmetica e un'assegnazione in un'unica istruzione. Ad esempio, l'operatore += somma un valore alla variabile esistente. int x = 5; x += 3; // Equivale a x = x + 3; 3. Operatori bitwise di assegnazione Gli operatori bitwise agiscono sui bit di un numero intero e sono utili per manipolare singoli bit. Gli operatori di assegnazione bitwise includono &=, |=, e ^=. int x = 6; // 110 in binario x &= 3; // Risultato: 2 (010 in binario) 4. Operatori di shift di assegnazione Gli operatori di shift di assegnazione, come =, spostano i bit di una variabile a sinistra o a destra di un certo numero di posizioni. int x = 8; // 1000 in binario x --- ### Operatori bitwise in C# - Published: 2025-02-28 - Modified: 2025-02-28 - URL: https://www.gedemy.it/documentazione/csharp/operatori-bitwise/ - Categorie: C Sharp - Tag: Operatori ed espressioni Gli operatori bitwise in C# permettono di eseguire operazioni direttamente sui bit di numeri interi. Questi operatori sono molto utili per compiti specifici, come la manipolazione di flag, l'ottimizzazione dello spazio e la programmazione a basso livello. In questa guida, esploreremo gli operatori bitwise più comuni e i loro utilizzi. Elenco degli operatori bitwise in C# C# offre una serie di operatori bitwise che possono essere utilizzati per manipolare i bit di un numero intero. Ecco i principali operatori che andremo a esaminare: & (AND) | (OR) ^ (XOR) ~ (NOT) > (Shift a destra) Operazioni bitwise spiegate Vediamo ora nel dettaglio come funzionano questi operatori bitwise in C# e come applicarli nel codice. 1. Operatore AND (&) L'operatore AND (&) confronta due numeri bit a bit e restituisce un numero dove i bit sono impostati a 1 solo se entrambi i bit corrispondenti sono 1. int a = 5; // 0101 in binario int b = 3; // 0011 in binario int result = a & b; // Risultato: 0001 (1 in decimale) 2. Operatore OR (|) L'operatore OR (|) confronta i bit di due numeri e restituisce un numero dove i bit sono impostati a 1 se almeno uno dei bit corrispondenti è 1. int a = 5; // 0101 in binario int b = 3; // 0011 in binario int result = a | b; // Risultato: 0111 (7 in decimale) 3. Operatore XOR (^) L'operatore XOR (^) restituisce un numero dove i bit sono impostati a 1 solo se uno dei bit corrispondenti è 1, ma non entrambi. int a = 5; // 0101 in binario int b = 3; // 0011 in binario int result = a ^ b; // Risultato: 0110 (6 in decimale) 4. Operatore NOT (~) L'operatore NOT (~) inverte tutti i bit di un numero, trasformando i 0 in 1 e viceversa. È chiamato anche operatore di complemento. int a = 5; // 0101 in binario int result = ~a; // Risultato: 1010 (in complemento a 2) 5. Operatori di shift Gli operatori di shift spostano i bit di un numero a sinistra o a destra di un certo numero di posizioni. L'operatore --- ### Operatori aritmetici in C# - Published: 2025-02-27 - Modified: 2025-02-27 - URL: https://www.gedemy.it/documentazione/csharp/operatori-aritmetici/ - Categorie: C Sharp - Tag: Operatori ed espressioni Gli operatori aritmetici in C# sono strumenti fondamentali per eseguire operazioni matematiche. In questo articolo, esploreremo come utilizzare questi operatori nel linguaggio C#, con esempi pratici per aiutarti a capire il loro funzionamento. Elenco degli operatori aritmetici in C# C# supporta diversi operatori aritmetici che ti consentono di eseguire operazioni come addizione, sottrazione, moltiplicazione e altre. Ecco un elenco completo degli operatori aritmetici disponibili: Addizione (+) Sottrazione (-) Moltiplicazione (*) Divisione (/) Modulo (%) Incremento (++) Decremento (--) Come usare gli operatori aritmetici in C# Ora vedremo come funzionano i principali operatori aritmetici in C# con alcuni esempi di codice. Addizione (+) L'addizione somma due valori. Ecco un esempio: int a = 10; int b = 5; int somma = a + b; Console. WriteLine(somma); // Output: 15 Sottrazione (-) La sottrazione sottrae un valore dall'altro. Ecco un esempio: int a = 10; int b = 5; int differenza = a - b; Console. WriteLine(differenza); // Output: 5 Moltiplicazione (*) La moltiplicazione moltiplica due numeri. Ecco come: int a = 10; int b = 5; int prodotto = a * b; Console. WriteLine(prodotto); // Output: 50 Divisione (/) La divisione divide un numero per un altro. Nota che la divisione intera tronca il risultato decimale. int a = 10; int b = 3; int divisione = a / b; Console. WriteLine(divisione); // Output: 3 Modulo (%) L'operatore modulo restituisce il resto di una divisione. Ecco un esempio: int a = 10; int b = 3; int resto = a % b; Console. WriteLine(resto); // Output: 1 Incremento (++) L'operatore di incremento aumenta il valore di una variabile di 1. Ad esempio: int a = 10; a++; Console. WriteLine(a); // Output: 11 Decremento (--) L'operatore di decremento diminuisce il valore di una variabile di 1. Ecco un esempio: int a = 10; a--; Console. WriteLine(a); // Output: 9 Ordine di precedenza degli operatori aritmetici in C# Gli operatori aritmetici hanno una priorità, ovvero un ordine con cui vengono valutati. Questo ordine segue le regole matematiche standard: moltiplicazione e divisione vengono valutate prima di addizione e sottrazione. Esempio di precedenza degli operatori Considera l'esempio seguente: int a = 10; int b = 5; int c = 2; int risultato = a + b * c; Console. WriteLine(risultato); // Output: 20 In questo caso, la moltiplicazione viene eseguita prima dell'addizione, perciò il risultato sarà 10 + (5 * 2) = 20. Best practices per l’uso degli operatori aritmetici in C# Quando si lavora con gli operatori aritmetici, è importante seguire alcune best practices per evitare errori comuni. Attenzione alla divisione intera La divisione intera può restituire risultati inattesi se non consideri il resto. Ad esempio, dividendo 5 per 2 ottieni 2, non 2. 5. Usa il tipo double se hai bisogno di risultati decimali. Utilizza le parentesi per la chiarezza Usa sempre le parentesi per chiarire l'ordine delle operazioni e rendere il tuo codice più leggibile. Ad esempio: int risultato = (a + b) * c; Evitare l’overflow Fai attenzione al possibile overflow... --- ### Operatori Logici in C# - Published: 2025-02-27 - Modified: 2025-02-27 - URL: https://www.gedemy.it/documentazione/csharp/operatori-logici/ - Categorie: C Sharp - Tag: Operatori ed espressioni Nel linguaggio di programmazione C#, gli operatori logici sono fondamentali per eseguire operazioni basate su condizioni. Questi operatori permettono di combinare più espressioni booleane (true o false) per ottenere risultati complessi. Se sei all'inizio del tuo percorso con C#, questo articolo ti fornirà una comprensione chiara e semplice di come funzionano gli operatori logici e come utilizzarli efficacemente. Tipi di Operatori Logici in C# In C#, esistono tre principali operatori logici: AND logico (rappresentato con &&) OR logico (rappresentato con ||) NOT logico (rappresentato con ! ) Questi operatori sono usati per valutare condizioni multiple in un’espressione e determinare il risultato finale. Operatori Logici: Cosa Sono e Come Usarli Vediamo ora in dettaglio come funzionano i vari operatori logici in C#. AND logico (&&) L’operatore AND logico restituisce true se entrambe le condizioni sono vere. Altrimenti, restituisce false. Per esempio: if (condizione1 && condizione2) { // Codice eseguito solo se entrambe le condizioni sono vere } Nel contesto di un controllo, entrambe le condizioni devono risultare vere affinché il blocco di codice interno venga eseguito. OR logico (||) L’operatore OR logico restituisce true se almeno una delle due condizioni è vera. Restituisce false solo se entrambe le condizioni sono false. Ecco un esempio: if (condizione1 || condizione2) { // Codice eseguito se almeno una delle condizioni è vera } In questo caso, il codice verrà eseguito anche se solo una delle condizioni risulta vera. NOT logico (! ) L’operatore NOT logico inverte il valore di una condizione. Se una condizione è true, con il NOT diventerà false e viceversa. Ecco come funziona: if (! condizione) { // Codice eseguito solo se la condizione è falsa } In questo caso, il blocco di codice verrà eseguito solo se la condizione è falsa. Un Esempio Combinato di Operatori Logici Spesso, gli operatori logici vengono combinati insieme per gestire situazioni più complesse. Vediamo un esempio in cui utilizziamo tutti e tre gli operatori: bool condizione1 = true; bool condizione2 = false; if ((condizione1 && ! condizione2) || (condizione2 && condizione1)) { // Codice eseguito se la combinazione delle condizioni è vera } In questo esempio, il blocco di codice verrà eseguito solo se la combinazione di condizione1 e condizione2, insieme al NOT, soddisfa i requisiti logici specificati. --- ### Metodi di Estensione in C# - Published: 2025-02-20 - Modified: 2025-02-20 - URL: https://www.gedemy.it/documentazione/csharp/metodi-di-estensione/ - Categorie: C Sharp - Tag: Funzioni e metodi I metodi di estensione in C# sono un modo efficace per aggiungere nuove funzionalità a classi, strutture o interfacce già esistenti, senza doverli modificare direttamente. Con essi, puoi arricchire il tuo codice in maniera più ordinata e modulare. Come funziona Un metodo di estensione si comporta come se fosse un metodo di istanza della classe a cui è applicato, anche se viene definito al di fuori di essa. È dichiarato come metodo statico in una classe statica e ha almeno un parametro, chiamato parametro di estensione, che rappresenta il tipo a cui si applica il metodo. Questo parametro è preceduto dalla parola chiave this. Sintassi di base Ecco come appare la sintassi di base di un metodo di estensione: public static class StringExtensions { public static bool IsNullOrEmpty(this string value) { return string. IsNullOrEmpty(value); } } In questo esempio, il metodo IsNullOrEmpty estende la funzionalità della classe string senza modificarla direttamente. Utilizzo dei Metodi di Estensione I metodi di estensione possono essere utilizzati in molti contesti. Vediamo i principali casi d’uso. 1. Estendere Classi di Terze Parti Spesso, in un progetto, ci si trova a lavorare con librerie o API di terze parti che non possono essere modificate. I metodi di estensione permettono di aggiungere nuove funzionalità senza toccare il codice originale. 2. Creare API Fluide Le API fluenti migliorano la leggibilità del codice. Utilizzando i metodi di estensione, è possibile costruire API fluenti che permettono di concatenare metodi in modo naturale e intuitivo. 3. Aggiungere Funzionalità Specifiche a Interfacce I metodi di estensione sono particolarmente utili per aggiungere funzionalità personalizzate alle interfacce, consentendo di estendere il loro utilizzo senza doverle implementare manualmente in ogni classe derivata. 4. Estendere Tipi Predefiniti Puoi usare i metodi di estensione per estendere tipi predefiniti in C#, come int, string o DateTime. Ad esempio, puoi creare un metodo per convertire un intero in gradi Fahrenheit: public static class IntExtensions { public static double ToFahrenheit(this int celsius) { return (celsius * 9. 0 / 5. 0) + 32; } } Limitazioni dei Metodi di Estensione Sebbene i metodi di estensione siano potenti, ci sono alcune limitazioni da tenere in considerazione. 1. Non Sostituiscono i Metodi Esistenti I metodi di estensione non possono sovrascrivere i metodi già definiti in una classe. Se esiste un metodo con lo stesso nome e firma, verrà sempre preferito quello della classe originale. 2. Devono Essere Statici I metodi di estensione devono essere dichiarati come metodi statici all’interno di una classe statica. 3. Non Possono Accedere ai Membri Privati Poiché i metodi di estensione operano all’esterno della classe, non possono accedere ai membri privati o protetti della classe estesa. Best Practices per i Metodi di Estensione Per utilizzare al meglio i metodi di estensione, ci sono alcune best practices che è consigliabile seguire. 1. Usare Metodi di Estensione per Funzionalità Ausiliarie I metodi di estensione dovrebbero essere utilizzati per aggiungere funzionalità ausiliarie, come conversioni o controlli semplici, piuttosto che operazioni complesse. 2. Non Abusare dei Metodi di Estensione Evita di creare... --- ### Ricorsione in C# > Scopri la ricorsione in C# in questa guida facile da seguire, con esempi pratici come il fattoriale, la sequenza di Fibonacci e molto altro. - Published: 2025-02-17 - Modified: 2025-02-17 - URL: https://www.gedemy.it/documentazione/csharp/ricorsione/ - Categorie: C Sharp - Tag: Funzioni e metodi La ricorsione è una tecnica molto utilizzata nella programmazione che permette a una funzione di chiamare sé stessa. In C#, come in altri linguaggi, la ricorsione può risultare utile in molte situazioni, specialmente quando si lavora con problemi che possono essere suddivisi in sottoproblemi più piccoli. In questo articolo, esploreremo il concetto di ricorsione, forniremo esempi e discuteremo i suoi vantaggi e svantaggi. Cos'è la ricorsione? La ricorsione si verifica quando una funzione richiama sé stessa per risolvere una parte del problema originale. Questo tipo di approccio è particolarmente utile per problemi che possono essere divisi in versioni più semplici di sé stessi. Componenti chiave della ricorsione Una funzione ricorsiva in C# deve avere due componenti principali: Caso base: La condizione che interrompe la ricorsione, evitando chiamate infinite. Chiamata ricorsiva: La parte della funzione che richiama sé stessa per risolvere un sottoproblema. Esempio classico: fattoriale Un esempio classico per comprendere la ricorsione è il calcolo del fattoriale di un numero. Il fattoriale di un numero n (indicato come n! ) è il prodotto di tutti i numeri da 1 a n. Implementazione del fattoriale Vediamo come implementare la funzione per calcolare il fattoriale in C#: public int Fattoriale(int n) { // Caso base: se n è 0 o 1, il fattoriale è 1 if (n == 0 || n == 1) { return 1; } // Chiamata ricorsiva return n * Fattoriale(n - 1); } Esempi pratici di ricorsione 1. Sequenza di Fibonacci Un altro esempio popolare di ricorsione è la sequenza di Fibonacci, dove ogni numero è la somma dei due precedenti. public int Fibonacci(int n) { if (n == 0) return 0; if (n == 1) return 1; return Fibonacci(n - 1) + Fibonacci(n - 2); } 2. Ricerca binaria La ricerca binaria è un algoritmo efficiente per trovare un elemento in un array ordinato, riducendo ogni volta la ricerca a metà. public int RicercaBinaria(int array, int valore, int inizio, int fine) { if (inizio > fine) return -1; int medio = (inizio + fine) / 2; if (array == valore) { return medio; } else if (array > valore) { return RicercaBinaria(array, valore, inizio, medio - 1); } else { return RicercaBinaria(array, valore, medio + 1, fine); } } 3. Traversal di un albero binario Un altro scenario comune è il traversal di un albero binario, dove possiamo visitare i nodi dell'albero in preordine, inordine o postordine. public void InOrdine(Node nodo) { if (nodo ! = null) { InOrdine(nodo. Sinistro); Console. WriteLine(nodo. Valore); InOrdine(nodo. Destro); } } Vantaggi e svantaggi della ricorsione Vantaggi Semplicità del codice: Le soluzioni ricorsive sono spesso più brevi e facili da comprendere rispetto a quelle iterative. Approccio naturale: Alcuni problemi, come il traversal di alberi o i problemi di suddivisione e conquista, si prestano naturalmente alla ricorsione. Svantaggi Performance: Le chiamate ricorsive possono consumare molta memoria e CPU, specialmente se non ottimizzate. Rischio di stack overflow: Se la ricorsione non viene interrotta correttamente, può causare un errore di stack overflow. Best practices... --- ### Generic in C# - Published: 2025-02-15 - Modified: 2025-02-15 - URL: https://www.gedemy.it/documentazione/csharp/generic/ - Categorie: C Sharp - Tag: Programmazione a oggetti I generici sono una funzionalità potente di C# che consente di scrivere codice riutilizzabile e flessibile. In questa guida esploreremo cos'è un generico, i suoi vantaggi e come utilizzarlo in C#. Se sei agli inizi, questo articolo ti aiuterà a comprendere i concetti base dei generici. Cos’è un generico? Un generico permette di definire classi, metodi, interfacce o delegati senza specificare in anticipo i tipi di dati con cui lavoreranno. In questo modo, puoi utilizzare un solo pezzo di codice per operare su diversi tipi, senza duplicazioni. Vantaggi dei generici I vantaggi principali dei generici includono: Riutilizzo del codice: consente di scrivere codice una sola volta e utilizzarlo per vari tipi di dati. Sicurezza del tipo: grazie ai generici, il tipo di dato è verificato a compile-time, riducendo la possibilità di errori. Prestazioni migliori: i generici eliminano la necessità di boxing/unboxing, migliorando così l'efficienza. Sintassi di base dei generici La sintassi dei generici in C# è semplice. Un generico viene dichiarato utilizzando una coppia di parentesi angolari , all'interno delle quali viene specificato il tipo "parametro". Vediamo alcuni esempi. Classi generiche Una classe generica è una classe che può lavorare con qualsiasi tipo di dato. Ecco un esempio di come dichiarare una classe generica in C#: public class Box { public T Value { get; set; } public Box(T value) { Value = value; } } In questo esempio, la classe Box accetta un tipo di dato generico T. Puoi creare un'istanza di Box con qualsiasi tipo, ad esempio Box o Box. Metodi generici Un metodo generico può accettare parametri di tipo generico. Ecco un esempio: public T Add(T a, T b) { return a; // Semplice esempio } In questo caso, il metodo Add può lavorare con qualsiasi tipo di dato specificato durante l'invocazione. Interfacce generiche Le interfacce generiche funzionano in modo simile alle classi generiche. Puoi definire un'interfaccia che utilizza tipi generici: public interface IRepository { void Add(T item); T GetById(int id); } Vincoli nei generici I vincoli nei generici permettono di limitare i tipi che possono essere utilizzati come parametri generici, rendendo il codice ancora più sicuro e specifico. Esempio di vincolo con where Puoi utilizzare il vincolo where per specificare che il tipo generico deve implementare un'interfaccia o derivare da una classe specifica: public class Repository where T : IEntity { // Implementazione } Altri vincoli comuni where T : struct - Il tipo generico deve essere un valore. where T : class - Il tipo generico deve essere una classe. where T : new - Il tipo generico deve avere un costruttore senza parametri. Generici e collezioni Le collezioni generiche come List sono un esempio pratico di generici in C#. Ecco un esempio di utilizzo: Esempio di lista generica List numbers = new List; numbers. Add(1); numbers. Add(2); In questo caso, List accetta solo elementi di tipo int, garantendo così la sicurezza del tipo. Best practices Quando utilizzi i generici, ci sono alcune best practices che dovresti seguire per scrivere codice più efficiente e leggibile.... --- ### Classi annidate in C# - Published: 2025-02-14 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/classi-annidate/ - Categorie: C Sharp - Tag: Programmazione a oggetti Le classi annidate in C# sono uno strumento utile per organizzare meglio il codice, fornendo una struttura logica che permette di migliorare l'incapsulamento e l'accesso ai dati. In questo articolo vedremo cos'è una classe annidata, come utilizzarla e i suoi vantaggi, così come le limitazioni che può comportare. Cos’è una classe annidata? In C#, una classe annidata è una classe definita all'interno di un'altra classe. Questo permette di raggruppare logicamente il codice, soprattutto quando una classe è strettamente correlata a un'altra e non ha senso che esista separatamente. Sintassi di base Per dichiarare una classe annidata, si definisce una classe dentro un’altra classe. Ecco un esempio di sintassi di base in C#: public class Esterna { public class Annidata { public void MetodoAnnidato { Console. WriteLine("Sono una classe annidata. "); } } } Esempi di utilizzo Vediamo ora alcuni esempi pratici che mostrano come le classi annidate possano essere utilizzate per migliorare la struttura del codice. Esempio 1: organizzazione del codice Immaginiamo di avere una classe complessa che necessita di diverse classi di supporto per gestire meglio determinate funzionalità. Invece di creare molte classi separate, possiamo annidarle: public class Automobile { public class Motore { public void AvviaMotore { Console. WriteLine("Motore avviato. "); } } public void AvviaAutomobile { Motore motore = new Motore; motore. AvviaMotore; } } Esempio 2: nascondere i dettagli di implementazione Le classi annidate possono essere utilizzate per nascondere i dettagli interni di un’implementazione, rendendo il codice più sicuro e meno soggetto a errori esterni: public class Banca { private class ContoInterno { public decimal Saldo { get; set; } } private ContoInterno conto = new ContoInterno; public void Deposita(decimal importo) { conto. Saldo += importo; } public decimal OttieniSaldo { return conto. Saldo; } } Modificatori di accesso Come le classi regolari, anche le classi annidate possono avere diversi modificatori di accesso, come public, private o protected, per controllare il loro livello di visibilità all'interno del programma. Esempio di modificatori di accesso public class Esterna { private class AnnidataPrivata { public void MetodoPrivato { Console. WriteLine("Metodo privato della classe annidata. "); } } public void UsaAnnidata { AnnidataPrivata annidata = new AnnidataPrivata; annidata. MetodoPrivato; } } Vantaggi delle classi annidate L'uso delle classi annidate offre diversi vantaggi per migliorare la struttura del codice. 1. Incapsulamento migliorato Le classi annidate permettono di mantenere i dettagli implementativi nascosti, fornendo un maggiore controllo su quali parti del codice possono essere visibili dall'esterno. 2. Organizzazione logica Annidare classi correlate aiuta a mantenere il codice più organizzato e leggibile, specialmente quando ci sono relazioni strette tra le classi. 3. Accesso privilegiato Le classi annidate hanno accesso diretto ai membri della classe esterna, anche se questi membri sono dichiarati come private. Questo permette un’interazione efficiente tra le due classi. Limitazioni delle classi annidate Nonostante i vantaggi, l'uso delle classi annidate può introdurre alcune limitazioni che devono essere considerate. 1. Complessità Se abusate, le classi annidate possono rendere il codice più difficile da comprendere, soprattutto per chi non ha familiarità con il... --- ### Classi Parziali in C# - Published: 2025-02-14 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/classi-parziali/ - Categorie: C Sharp - Tag: Programmazione a oggetti Le classi parziali in C# sono un modo pratico per suddividere una singola classe in più file. Questa funzionalità permette di separare la logica complessa e migliorare l'organizzazione del codice, soprattutto in progetti di grandi dimensioni. Sintassi di base La dichiarazione di una classe parziale è semplice. Basta aggiungere la parola chiave partial davanti alla definizione della classe. Ecco un esempio: partial class ExampleClass { public void MethodA { Console. WriteLine("Metodo A"); } } In un altro file, possiamo aggiungere altre parti della stessa classe: partial class ExampleClass { public void MethodB { Console. WriteLine("Metodo B"); } } Quando il programma viene eseguito, C# combina automaticamente tutte le parti definite della classe. Vantaggi delle classi parziali Le classi parziali offrono una serie di vantaggi che rendono lo sviluppo in C# più efficiente. Di seguito esamineremo i principali benefici di questa funzionalità. 1. Organizzazione del codice Con classi di grandi dimensioni, dividere il codice in più file aiuta a mantenere la struttura del progetto chiara e facile da navigare. Ogni parte della classe può essere inserita in un file separato, rendendo più semplice trovare e modificare il codice. 2. Collaborazione In team di sviluppo, più sviluppatori possono lavorare contemporaneamente su diverse parti della stessa classe senza causare conflitti. Questo facilita la collaborazione e aumenta la produttività. 3. Generazione automatica di codice Alcuni strumenti di sviluppo generano automaticamente codice C#, come i designer di interfacce utente. Utilizzando classi parziali, il codice generato viene separato dal codice scritto manualmente, riducendo il rischio di sovrascritture accidentali. 4. Miglioramento della manutenibilità Dividere una classe complessa in più parti facilita la manutenzione e l'aggiornamento del codice. Ogni parte può essere gestita singolarmente, riducendo il rischio di errori e semplificando il debugging. Esempi di utilizzo 1. Separazione della logica della classe Un caso comune per l'uso delle classi parziali è la separazione della logica della classe in moduli distinti. Ad esempio, una classe che gestisce un'interfaccia utente potrebbe avere una parte dedicata alla gestione degli eventi e un'altra alla logica di visualizzazione. 2. Generazione automatica di codice Molti strumenti, come Visual Studio, utilizzano le classi parziali per separare il codice generato automaticamente dal codice personalizzato, ad esempio nelle applicazioni Windows Forms o ASP. NET. Considerazioni sull’uso delle classi parziali 1. Coerenza È importante mantenere la coerenza tra i vari file che contengono parti della stessa classe. Tutte le parti della classe devono essere sincronizzate, altrimenti si potrebbero verificare comportamenti inattesi. 2. Accesso ai membri I membri dichiarati in una parte della classe sono accessibili da tutte le altre parti della stessa classe. Ciò significa che puoi definire metodi e variabili in un file e utilizzarli in un altro, rendendo le classi parziali estremamente flessibili. 3. Modificatori di accesso I modificatori di accesso (come public, private, protected) devono essere coerenti tra le varie parti della classe. Un membro privato definito in una parte della classe non sarà accessibile dall'esterno, anche se la definizione di un'altra parte è in un file diverso. 4. Debugging Il debugging delle classi parziali... --- ### Ereditarietà multipla in C#: alternative e pattern - Published: 2025-02-13 - Modified: 2025-02-13 - URL: https://www.gedemy.it/documentazione/csharp/ereditarieta-multipla/ - Categorie: C Sharp - Tag: Programmazione a oggetti Nel mondo della programmazione orientata agli oggetti, l'ereditarietà è uno dei concetti fondamentali. Tuttavia, C# non supporta l'ereditarietà multipla come altri linguaggi (ad esempio C++). In questo articolo vedremo il perché e come possiamo aggirare questo limite con alternative pratiche e pattern. Perché C# non supporta l’ereditarietà multipla? L'ereditarietà multipla permette a una classe di derivare da più classi base. Tuttavia, in C# questo concetto non è supportato, principalmente a causa del problema del diamante. Questo problema si verifica quando una classe eredita da due classi che, a loro volta, ereditano da una classe comune. C# evita questa complessità per favorire un design più pulito e semplice. Problema del diamante Immaginiamo uno scenario in cui una classe ClasseA eredita da ClasseB e ClasseC, che a loro volta ereditano da ClasseD. Se ClasseD ha un metodo con lo stesso nome, a quale versione di questo metodo dovrebbe far riferimento ClasseA? Questa ambiguità è nota come problema del diamante e rende difficile gestire l'ereditarietà multipla in modo efficace. Alternative all’ereditarietà multipla in C# Fortunatamente, C# offre diverse alternative che permettono di ottenere risultati simili all’ereditarietà multipla, senza incorrere nei problemi di complessità associati. Vediamo alcune delle più comuni. 1. Interfacce In C#, le interfacce rappresentano la soluzione più diretta. Una classe può implementare più interfacce e, attraverso di esse, possiamo definire contratti che la classe deve rispettare. Questo permette un comportamento simile all’ereditarietà multipla senza la complessità di gestire la condivisione di codice. public interface IVeicolo { void Muovi; } public interface INavigazione { void Naviga; } public class AutoAnfibia : IVeicolo, INavigazione { public void Muovi { // Implementazione del movimento su strada } public void Naviga { // Implementazione del movimento in acqua } } 2. Composizione La composizione è una tecnica che consiste nell’usare altre classi all'interno di una classe, anziché ereditarle. In questo modo, possiamo comporre oggetti complessi riutilizzando classi esistenti. public class Motore { public void Accendi { /* Accensione motore */ } } public class Auto { private Motore motore = new Motore; public void AccendiAuto { motore. Accendi; } } 3. Mixin (con interfacce e metodi di estensione) I mixin sono una tecnica che permette di "mescolare" comportamenti in una classe utilizzando interfacce e metodi di estensione. In C#, possiamo definire metodi di estensione per aggiungere funzionalità a una classe senza doverla modificare direttamente. public interface ISuono { void Suona; } public class Chitarra : ISuono { public void Suona { // Suona la chitarra } } public static class SuonoMixin { public static void Amplifica(this ISuono suono) { // Amplifica il suono } } 4. Delegazione La delegazione è un'altra tecnica per gestire il riutilizzo del codice. Con la delegazione, una classe delega un compito a un’altra classe. Questo consente di creare relazioni tra classi che permettono di ottenere comportamenti simili all'ereditarietà. public class Stampante { public void Stampa(string testo) { Console. WriteLine(testo); } } public class Documento { private Stampante stampante = new Stampante; public void StampaDocumento(string testo) { stampante. Stampa(testo); } }... --- ### Classi sealed e statiche in C# - Published: 2025-02-13 - Modified: 2025-02-13 - URL: https://www.gedemy.it/documentazione/csharp/classi-sealed-e-statiche/ - Categorie: C Sharp - Tag: Programmazione a oggetti Le classi sealed in C# sono quelle che non possono essere ereditate. Questo significa che una volta definita una classe come sealed, nessun'altra classe potrà estenderla. Questo viene spesso utilizzato quando si vuole proteggere una classe da modifiche future o si desidera garantire che il comportamento definito rimanga intatto. Sintassi di base per definire una classe sealed Per dichiarare una classe come sealed, basta usare la parola chiave sealed prima della dichiarazione della classe: sealed class NomeClasse { // Metodi e proprietà della classe } Vantaggi delle classi sealed Uno dei principali vantaggi delle classi sealed è che aumentano la sicurezza del codice. Poiché non possono essere estese, puoi essere sicuro che il comportamento della classe rimarrà invariato. Inoltre, le classi sealed possono essere ottimizzate meglio dal compilatore, migliorando le prestazioni. Esempio di classe sealed Vediamo un esempio pratico di una classe sealed: sealed class Calcolatrice { public int Somma(int a, int b) { return a + b; } } Limitazioni delle classi sealed Le classi sealed, non potendo essere ereditate, possono risultare limitanti quando si desidera estendere o modificare il comportamento della classe in futuro. Questo può essere un problema in sistemi in cui la flessibilità dell'ereditarietà è importante. Che cosa sono le classi statiche? Le classi statiche in C# sono classi che non possono essere instanziate. Esse sono ideali quando si desidera creare un insieme di metodi e proprietà che non richiedono lo stato interno, e sono accessibili globalmente all'interno dell'applicazione. Tutti i membri di una classe statica devono essere anch'essi statici. Sintassi di base per definire una classe statica Per dichiarare una classe come statica, si utilizza la parola chiave static: static class Utility { public static void StampaMessaggio(string messaggio) { Console. WriteLine(messaggio); } } Vantaggi delle classi statiche Le classi statiche sono utili per creare funzionalità globali che non dipendono dallo stato dell'oggetto. Ad esempio, possono contenere metodi di utilità che eseguono calcoli o operazioni su dati che non devono essere legati a un'istanza specifica della classe. Esempio di classe statica Un esempio pratico di una classe statica potrebbe essere una classe di utility che gestisce operazioni matematiche: static class Matematica { public static int Moltiplica(int a, int b) { return a * b; } } Limitazioni delle classi statiche Le classi statiche non possono essere instanziate, il che significa che non possono mantenere uno stato interno. Inoltre, una classe statica non può implementare interfacce o ereditare da altre classi, il che limita le possibilità di personalizzazione e riutilizzo del codice. Differenze chiave tra classi sealed e statiche Sebbene entrambe le classi sealed e statiche abbiano delle limitazioni riguardo l'ereditarietà, hanno scopi completamente diversi. Le classi sealed proteggono il comportamento di una classe impedendo l'ereditarietà, mentre le classi statiche sono utilizzate per creare raccolte di metodi e proprietà che non richiedono uno stato. Best practices per l'uso di classi sealed e statiche 1. Utilizza classi sealed per sicurezza Se desideri proteggere una classe da modifiche o estensioni non volute, rendila sealed. Questo assicura che il comportamento... --- ### Interfacce in C# > Scopri cosa sono le interfacce in C#, come definirle e implementarle, con esempi pratici per principianti. Esplora i vantaggi e le differenze con le classi astratte. - Published: 2025-02-11 - Modified: 2025-02-13 - URL: https://www.gedemy.it/documentazione/csharp/interfacce/ - Categorie: C Sharp - Tag: Programmazione a oggetti Le interfacce in C# sono dei contratti che stabiliscono quali metodi e proprietà una classe deve implementare. Tuttavia, non forniscono un'implementazione vera e propria. In altre parole, un'interfaccia definisce "cosa" deve fare una classe, senza specificare "come" farlo. Ecco alcune caratteristiche delle interfacce: Un'interfaccia può dichiarare metodi, proprietà, eventi e indexer. Le interfacce non possono contenere implementazioni di metodi, solo dichiarazioni. Una classe può implementare più interfacce, supportando così il concetto di ereditarietà multipla in C#. Come definire un’interfaccia Per dichiarare un'interfaccia in C#, utilizziamo la parola chiave interface. Le interfacce seguono le convenzioni dei nomi PascalCase e, di solito, iniziano con la lettera "I". Vediamo come si definisce un'interfaccia: Esempio di definizione di un’interfaccia: public interface IAnimale { void Mangiare; void Dormire; } Nell'esempio precedente, abbiamo creato un'interfaccia chiamata IAnimale con due metodi: Mangiare e Dormire. Chiunque implementerà questa interfaccia dovrà fornire una logica per questi due metodi. Come implementare un’interfaccia Una volta definita un'interfaccia, è necessario che una classe la implementi. Per implementare un'interfaccia, una classe deve utilizzare la parola chiave : e fornire un'implementazione per tutti i metodi e le proprietà dichiarati nell'interfaccia. Esempio di implementazione di un’interfaccia: public class Cane : IAnimale { public void Mangiare { Console. WriteLine("Il cane sta mangiando. "); } public void Dormire { Console. WriteLine("Il cane sta dormendo. "); } } In questo esempio, la classe Cane implementa l'interfaccia IAnimale. La classe fornisce la logica per i metodi Mangiare e Dormire, che erano stati dichiarati ma non definiti nell'interfaccia. I vantaggi dell’utilizzo delle interfacce Le interfacce in C# offrono molti vantaggi, tra cui: Flessibilità: Le classi possono implementare più interfacce, consentendo una maggiore modularità e riutilizzo del codice. Migliore organizzazione: Le interfacce aiutano a definire in modo chiaro cosa deve fare una classe, separando i dettagli dell'implementazione. Testabilità: Le interfacce rendono più facile testare il codice utilizzando le tecniche di mock, poiché è possibile simulare il comportamento delle interfacce. Le principali differenze tra interfacce e classi astratte Spesso, chi è alle prime armi con la programmazione in C# si confonde tra interfacce e classi astratte. Vediamo le differenze principali: Un'interfaccia non può contenere codice implementato, mentre una classe astratta può fornire un'implementazione parziale. Una classe può implementare più interfacce, ma può ereditare da una sola classe astratta. Le interfacce non possono contenere campi, mentre le classi astratte sì. Conclusione Le interfacce in C# sono uno strumento potente che ti permette di creare codice modulare, riutilizzabile e manutenibile. Capirne il funzionamento e sapere quando utilizzarle è fondamentale per chiunque voglia migliorare la propria abilità di programmazione. Se stai iniziando a programmare in C#, prenditi il tempo per sperimentare con le interfacce e capire come possono semplificare il tuo codice. --- ### Classi astratte in C# > In quest'articolo scopriremo come funzionano le classi astratte all'interno del linguaggio C#. - Published: 2025-02-10 - Modified: 2025-02-10 - URL: https://www.gedemy.it/documentazione/csharp/classi-astratte/ - Categorie: C Sharp - Tag: Programmazione a oggetti Le classi astratte in C# rappresentano un concetto chiave della programmazione orientata agli oggetti (OOP). Si tratta di classi che non possono essere istanziate direttamente, ma fungono da modello per altre classi che ereditano le loro proprietà e metodi. In questa guida, esploreremo i dettagli delle classi astratte, come utilizzarle e i loro vantaggi. Caratteristiche principali delle classi astratte Le classi astratte in C# offrono diverse proprietà che le rendono utili in diversi scenari: Non possono essere istanziate direttamente. Possono contenere sia metodi astratti (senza implementazione) che metodi con un'implementazione di base. Le classi che derivano da una classe astratta devono fornire un'implementazione per tutti i metodi astratti. Definire una classe astratta in C# La definizione di una classe astratta in C# è molto semplice. Per dichiarare una classe come astratta, utilizziamo la parola chiave abstract prima della definizione della classe. Vediamo un esempio pratico. Esempio di una classe astratta in C#: public abstract class Animale { public abstract void Verso; public void Dorme { Console. WriteLine("L'animale dorme"); } } In questo esempio, la classe Animale è astratta e contiene un metodo astratto Verso, che deve essere implementato nelle classi derivate. Il metodo Dorme, invece, ha un'implementazione concreta. Come utilizzare classi derivate in C# Quando utilizziamo una classe derivata da una classe astratta, dobbiamo implementare tutti i metodi astratti definiti nella classe base. Vediamo come fare. Esempio di implementazione con classi derivate: public class Cane : Animale { public override void Verso { Console. WriteLine("Il cane abbaia"); } } public class Gatto : Animale { public override void Verso { Console. WriteLine("Il gatto miagola"); } } In questo esempio, le classi Cane e Gatto derivano dalla classe astratta Animale e implementano il metodo Verso con comportamenti specifici. Quali sono i vantaggi delle classi astratte? L'utilizzo delle classi astratte in C# offre diversi vantaggi: Consentono di organizzare e riutilizzare il codice, definendo comportamenti comuni nelle classi base. Forniscono una struttura solida per le classi derivate, obbligandole a implementare determinati metodi. Possono includere metodi con un'implementazione di default, riducendo la duplicazione del codice. Le differenze principali tra classi astratte e interfacce In C#, sia le classi astratte che le interfacce vengono utilizzate per definire comportamenti che devono essere implementati nelle classi derivate. Tuttavia, ci sono alcune differenze importanti: Le classi astratte possono contenere metodi con implementazione, mentre le interfacce no. Le classi possono ereditare da una sola classe astratta, ma possono implementare più interfacce. Le interfacce sono più flessibili per definire contratti tra le classi, mentre le classi astratte servono a creare una gerarchia comune. Conclusione Le classi astratte in C# sono un potente strumento per strutturare e organizzare il codice. Offrono la possibilità di definire comportamenti generici e di lasciare che le classi derivate li implementino in modo specifico. Se usate correttamente, possono migliorare la manutenibilità e la flessibilità del codice, fornendo un'architettura solida per le applicazioni. --- ### Polimorfismo in C# > In questa guida scopriremo il concetto di polimorfismo in C# con esempi pratici e spiegazioni semplici. - Published: 2025-02-07 - Modified: 2025-02-07 - URL: https://www.gedemy.it/documentazione/csharp/polimorfismo/ - Categorie: C Sharp - Tag: Programmazione a oggetti Il polimorfismo in C# è uno dei concetti fondamentali della programmazione orientata agli oggetti. Significa che un'azione può essere eseguita in modi diversi a seconda dell'oggetto su cui viene chiamata. In parole semplici, permette di trattare oggetti di classi diverse attraverso la stessa interfaccia o classe base. Grazie al polimorfismo, possiamo scrivere codice più flessibile e manutenibile. Esempio di polimorfismo in C# Vediamo ora un esempio per chiarire meglio il concetto. Supponiamo di avere una classe base chiamata Animale e due classi derivate: Cane e Gatto. Entrambi ereditano da Animale, ma implementano il loro metodo FaiVerso in maniera differente. public class Animale { public virtual void FaiVerso { Console. WriteLine("L'animale fa un verso. "); } } public class Cane : Animale { public override void FaiVerso { Console. WriteLine("Il cane abbaia. "); } } public class Gatto : Animale { public override void FaiVerso { Console. WriteLine("Il gatto miagola. "); } } public class Programma { public static void Main { Animale mioAnimale = new Cane; mioAnimale. FaiVerso; // Uscita: Il cane abbaia mioAnimale = new Gatto; mioAnimale. FaiVerso; // Uscita: Il gatto miagola } } Override dei metodi: Come funziona in C# Nel codice precedente, abbiamo usato la parola chiave override per modificare il comportamento del metodo FaiVerso. Questo è un altro concetto importante legato al polimorfismo. Il metodo originale è definito nella classe base Animale con l'uso di virtual, il che significa che le classi derivate possono sovrascriverlo. Nel nostro esempio, sia Cane che Gatto sovrascrivono il metodo, fornendo la propria implementazione specifica. Grazie al polimorfismo, possiamo chiamare lo stesso metodo su oggetti diversi e ottenere risultati diversi a seconda dell'oggetto reale su cui viene chiamato. Quando e come utilizzare il polimorfismo in C# Il polimorfismo è molto utile quando abbiamo una struttura di classi che condivide una logica comune ma ha comportamenti specifici nelle classi derivate. Ad esempio, possiamo creare una lista di oggetti Animale e inserire sia oggetti di tipo Cane che di tipo Gatto, utilizzando il metodo FaiVerso su tutti gli oggetti senza doverli distinguere manualmente. List animali = new List { new Cane, new Gatto }; foreach (Animale animale in animali) { animale. FaiVerso; // Chiama FaiVerso per ogni oggetto, mostrando il polimorfismo } Conclusione Il polimorfismo in C# è un concetto potente che ti permette di scrivere codice più pulito e organizzato. Grazie a questo principio, puoi evitare di scrivere lunghi blocchi di istruzioni condizionali e rendere il tuo codice più flessibile e facile da mantenere. Se stai imparando C#, dedicare del tempo a comprendere il polimorfismo ti aiuterà a padroneggiare meglio la programmazione orientata agli oggetti. --- ### Ereditarietà in C# > Scopri cos'è l'ereditarietà in C#. Questa guida ti spiega come definire una classe derivata, utilizzare metodi e proprietà, e i vantaggi dell'ereditarietà. - Published: 2025-02-06 - Modified: 2025-02-06 - URL: https://www.gedemy.it/documentazione/csharp/ereditarieta/ - Categorie: C Sharp - Tag: Programmazione a oggetti Nel mondo della programmazione a oggetti, uno dei concetti chiave è l'ereditarietà. In questo articolo, esploreremo cosa significa e come possiamo implementare l'ereditarietà in C#, fornendo esempi chiari e semplici per chi è alle prime armi. Concetto di ereditarietà L'ereditarietà è un meccanismo che permette a una classe di ereditare le caratteristiche di un'altra classe. Questo significa che una classe può utilizzare proprietà e metodi di un'altra classe, rendendo il codice più efficiente e riutilizzabile. La classe che eredita è chiamata "classe derivata" o "sottoclasse", mentre la classe da cui eredita è chiamata "classe base". Definizione di una classe derivata Per creare una classe derivata in C#, utilizziamo la seguente sintassi: class NomeClasseDerivata : NomeClasseBase. Vediamo un esempio pratico qui sotto. Esempio di definizione di una classe derivata: class Animale { public void Mangia { Console. WriteLine("L'animale sta mangiando"); } } class Cane : Animale { public void Abbaia { Console. WriteLine("Il cane sta abbaiando"); } } In questo esempio, la classe Cane eredita dalla classe Animale. Ciò significa che Cane avrà accesso a tutti i metodi della classe Animale, come Mangia, oltre a poter definire i propri metodi, come Abbaia. Utilizzo delle proprietà e metodi Una volta che abbiamo definito una classe derivata, possiamo utilizzarne i metodi e le proprietà direttamente, sfruttando sia quelli della classe base che quelli propri della sottoclasse. Esempio di utilizzo: Cane mioCane = new Cane; mioCane. Mangia; // Metodo ereditato dalla classe Animale mioCane. Abbaia; // Metodo definito nella classe Cane In questo esempio, il metodo Mangia è ereditato dalla classe base Animale, mentre il metodo Abbaia è definito nella classe derivata Cane. Override dei metodi Con l'override, possiamo modificare il comportamento di un metodo ereditato dalla classe base. Questo ci permette di personalizzare il metodo nella classe derivata, pur mantenendo lo stesso nome. Esempio di override di un metodo: class Animale { public virtual void FaiVerso { Console. WriteLine("L'animale fa un verso generico"); } } class Cane : Animale { public override void FaiVerso { Console. WriteLine("Il cane abbaia"); } } In questo esempio, il metodo FaiVerso è stato sovrascritto nella classe Cane per far sì che il cane "abbaia", anziché fare un verso generico come definito nella classe Animale. Costruttori nella classe derivata Le classi derivate possono avere i propri costruttori, che possono chiamare il costruttore della classe base per inizializzare i valori ereditati. In C#, utilizziamo la parola chiave base per fare ciò. Esempio di costruttori: class Animale { public string Nome { get; set; } public Animale(string nome) { Nome = nome; } } class Cane : Animale { public Cane(string nome) : base(nome) { Console. WriteLine($"Il cane si chiama {nome}"); } } Qui, il costruttore di Cane chiama il costruttore della classe base Animale per inizializzare la proprietà Nome. Vantaggi dell’ereditarietà L'ereditarietà offre numerosi vantaggi, tra cui: Riutilizzo del codice: Evita di riscrivere lo stesso codice in più classi. Manutenzione semplificata: Le modifiche possono essere fatte nella classe base, e si riflettono automaticamente in tutte le classi derivate. Espandibilità:... --- ### Costruttori e distruttori in C# - Published: 2025-02-05 - Modified: 2025-02-19 - URL: https://www.gedemy.it/documentazione/csharp/costruttori-e-distruttori/ - Categorie: C Sharp - Tag: Programmazione a oggetti Quando si inizia a programmare in C#, uno dei concetti fondamentali che si incontra è quello dei costruttori e dei distruttori. Questi strumenti fanno parte delle basi della programmazione orientata agli oggetti (OOP) e sono essenziali per creare e gestire correttamente gli oggetti nelle applicazioni. In questo articolo, esploreremo cosa sono, come funzionano e perché sono importanti per uno sviluppo efficiente in C#. I costruttori sono metodi speciali che vengono chiamati automaticamente quando un oggetto viene creato. La loro funzione principale è quella di inizializzare l'oggetto, impostando valori iniziali alle sue proprietà o eseguendo eventuali configurazioni necessarie. I distruttori, invece, vengono chiamati quando un oggetto viene eliminato dalla memoria, permettendo di rilasciare le risorse occupate. L'importanza nell'OOP Nel paradigma della programmazione orientata agli oggetti (OOP), i costruttori e distruttori svolgono un ruolo cruciale nella gestione della vita degli oggetti. Usare correttamente questi strumenti può migliorare l'efficienza del programma e prevenire errori legati alla gestione della memoria e delle risorse. Tipologie: Predefiniti e Personalizzati In C#, esistono due tipi principali di costruttori: il costruttore predefinito e i costruttori personalizzati. Il costruttore predefinito viene generato automaticamente dalla classe se non viene definito alcun costruttore personalizzato. Tuttavia, è buona pratica definire costruttori personalizzati per specificare meglio il comportamento della classe. Esempi Pratici e Best Practices Di seguito un esempio di come definire un costruttore personalizzato in C#: public class Persona { private string nome; private int eta; // Costruttore personalizzato public Persona(string nome, int eta) { this. nome = nome; this. eta = eta; } public void StampaDati { Console. WriteLine($"Nome: {nome}, Età: {eta}"); } } Qui vediamo un esempio di costruttore personalizzato che accetta due parametri: nome e eta. È importante notare l'utilizzo di this per distinguere tra i parametri del costruttore e i campi della classe. Il Ruolo nella Gestione della Memoria I distruttori vengono utilizzati in C# per eseguire del codice al momento dell'eliminazione di un oggetto. Tuttavia, in C#, la gestione della memoria è in gran parte automatizzata grazie al Garbage Collector, che libera la memoria non più utilizzata. Di conseguenza, i distruttori sono raramente necessari, ma sono comunque utili per rilasciare risorse non gestite, come connessioni a database o file aperti. Utilizzo e Limitazioni Un distruttore in C# si definisce con una sintassi simile a un costruttore, ma con un tilde (~) davanti al nome della classe. Ecco un esempio di utilizzo: public class Persona { private string nome; // Costruttore public Persona(string nome) { this. nome = nome; } // Distruttore ~Persona { Console. WriteLine($"L'oggetto {nome} è stato distrutto"); } } Una limitazione importante dei distruttori è che non possono essere sovraccaricati, non accettano parametri e non possono essere chiamati manualmente; il Garbage Collector gestisce automaticamente la loro esecuzione. Confronto tra Costruttori e Distruttori Le principali differenze tra costruttori e distruttori risiedono nel loro scopo e nel momento in cui vengono chiamati. I costruttori vengono utilizzati per creare e inizializzare oggetti, mentre i distruttori servono per pulire risorse prima che un oggetto venga rimosso dalla memoria. Ecco... --- ### Modificatori d'accesso in C# - Published: 2025-02-05 - Modified: 2025-02-20 - URL: https://www.gedemy.it/documentazione/csharp/modificatori-daccesso/ - Categorie: C Sharp - Tag: Programmazione a oggetti I modificatori di accesso in C# sono fondamentali per la gestione della visibilità delle variabili e metodi all'interno del codice. Grazie a questi, puoi controllare chi può accedere a determinate informazioni o funzionalità di una classe o di un membro. In C#, ci sono diversi tipi di modificatori di accesso, ciascuno con la propria funzione specifica. Ecco i principali: public: accessibile ovunque. private: accessibile solo all'interno della stessa classe. protected: accessibile all'interno della stessa classe e delle classi derivate. internal: accessibile all'interno dello stesso assembly (progetto). protected internal: combinazione di protected e internal, accessibile all'interno dello stesso assembly o dalle classi derivate. Esempi di utilizzo dei modificatori Ora vediamo come utilizzare ciascuno di questi modificatori di accesso con esempi pratici. Questo ti aiuterà a capire meglio come implementare questi concetti nel tuo codice. Modificatore public: Il modificatore public rende il membro accessibile da qualsiasi parte del codice, all'interno o all'esterno del progetto. public class MyClass { public string MyPublicProperty { get; set; } public void MyPublicMethod { // Metodo accessibile ovunque } } Modificatore private: Il modificatore private limita l'accesso ai membri solo all'interno della classe in cui sono dichiarati. Questo è utile per mantenere nascosti dettagli di implementazione. public class MyClass { private int myPrivateField; private void MyPrivateMethod { // Accessibile solo all'interno della classe } } Modificatore protected: Il modificatore protected consente l'accesso ai membri solo all'interno della classe e delle sue classi derivate. public class MyBaseClass { protected string MyProtectedProperty { get; set; } } public class MyDerivedClass : MyBaseClass { public void AccessProtectedMember { MyProtectedProperty = "Accessibile dalla classe derivata"; } } Modificatore internal: Il modificatore internal consente l'accesso ai membri solo all'interno dello stesso progetto (assembly). Non sono accessibili da altri progetti. internal class MyInternalClass { internal void MyInternalMethod { // Accessibile solo all'interno dell'assembly } } Modificatore protected internal: Il modificatore protected internal consente l'accesso ai membri sia dalle classi derivate che all'interno dello stesso progetto. public class MyClass { protected internal void MyProtectedInternalMethod { // Accessibile all'interno dell'assembly o dalle classi derivate } } Utilizzo dei modificatori nei membri Oltre che nelle classi, i modificatori di accesso vengono utilizzati anche nei membri di una classe, come campi, proprietà e metodi. Questo permette un controllo preciso su chi può accedere a questi elementi. Esempio di modificatori nei membri: Ecco un esempio che mostra come i modificatori possono essere applicati a vari membri all'interno di una classe. public class MyClass { public int MyPublicField; private string myPrivateField; protected bool MyProtectedField; internal void MyInternalMethod { // Metodo accessibile solo all'interno dell'assembly } } --- ### Classi e oggetti in C# > Scopri le basi della programmazione orientata agli oggetti in C# con esempi pratici e semplici. Perfetto per chi è alle prime armi! - Published: 2025-02-05 - Modified: 2025-02-17 - URL: https://www.gedemy.it/documentazione/csharp/classi-e-oggetti/ - Categorie: C Sharp - Tag: Programmazione a oggetti La programmazione orientata agli oggetti (OOP) è un paradigma che si basa sull'uso di classi e oggetti per creare modelli del mondo reale. In C#, tutto ruota attorno a questi concetti, permettendo di organizzare il codice in modo più modulare e riutilizzabile. Dichiarazione di una classe in C# In C#, una classe è un blueprint da cui possono essere creati gli oggetti. Le classi contengono proprietà e metodi che definiscono il comportamento e le caratteristiche dell'oggetto. Sintassi per dichiarare una classe: public class Persona { public string Nome; public int Eta; public void Saluta { Console. WriteLine($"Ciao, mi chiamo {Nome} e ho {Eta} anni. "); } } Creazione di un oggetto Un oggetto è un'istanza di una classe. Per creare un oggetto, usiamo la parola chiave new seguita dal nome della classe. Esempio di creazione di un oggetto: Persona persona1 = new Persona; persona1. Nome = "Mario"; persona1. Eta = 30; Accesso alle proprietà di un oggetto Le proprietà di un oggetto, come Nome ed Eta, possono essere facilmente modificate o lette utilizzando la notazione punto. Esempio di accesso alle proprietà: Console. WriteLine(persona1. Nome); // Output: Mario Console. WriteLine(persona1. Eta); // Output: 30 Chiamata dei metodi di un oggetto Oltre ad avere proprietà, un oggetto può eseguire azioni definite dai suoi metodi. Possiamo richiamare un metodo con la stessa notazione punto utilizzata per accedere alle proprietà. Esempio di chiamata di un metodo: persona1. Saluta; // Output: Ciao, mi chiamo Mario e ho 30 anni. I costruttori: cosa sono e a cosa servono Un costruttore è un metodo speciale che viene chiamato automaticamente quando viene creato un nuovo oggetto. Il suo scopo è inizializzare l'oggetto. Esempio di costruttore: public class Persona { public string Nome; public int Eta; // Costruttore public Persona(string nome, int eta) { Nome = nome; Eta = eta; } } Costruttori multipli In C#, è possibile avere più di un costruttore all'interno della stessa classe, ciascuno con una diversa firma (parametri). Questo è noto come overloading. Esempio di overload del costruttore: public class Persona { public string Nome; public int Eta; // Costruttore 1 public Persona(string nome) { Nome = nome; Eta = 0; // Età di default } // Costruttore 2 public Persona(string nome, int eta) { Nome = nome; Eta = eta; } } --- ### Storia ed evoluzione di C# - Published: 2025-02-05 - Modified: 2025-02-05 - URL: https://www.gedemy.it/documentazione/csharp/storia-ed-evoluzione-di-c/ - Categorie: C Sharp - Tag: Introduzione C# è stato sviluppato da **Microsoft** nei primi anni 2000 come parte della piattaforma **. NET**. Il linguaggio è stato progettato per essere un linguaggio di programmazione semplice, moderno e orientato agli oggetti, con lo scopo di competere con linguaggi come **Java** e **C++**. C# ha debuttato ufficialmente nel 2002, insieme alla versione iniziale di . NET Framework. Obiettivi principali L'obiettivo principale di **C#** era fornire agli sviluppatori uno strumento potente e versatile per creare applicazioni in diversi contesti, inclusi desktop, web e dispositivi mobili. C# è stato pensato per essere **semplice** da usare, ma sufficientemente flessibile per gestire applicazioni complesse, con un forte focus su **produttività** e **sicurezza** del codice. Versioni di C# e innovazioni C# 1. 0 (2002) Il debutto di **C# 1. 0** ha segnato l'inizio di un nuovo linguaggio con caratteristiche moderne come l'orientamento agli oggetti, la gestione delle eccezioni e la compatibilità con **. NET Framework**. C# 2. 0 (2005) Con **C# 2. 0**, sono state introdotte caratteristiche fondamentali come i **generics**, che hanno permesso agli sviluppatori di scrivere codice più sicuro e riutilizzabile. Altre novità includono i **nullable types**, e i **metodi anonimi**. C# 3. 0 (2007) **C# 3. 0** ha portato **LINQ** (Language Integrated Query), una delle innovazioni più significative, che ha semplificato la gestione delle collezioni e delle query su database direttamente all'interno del codice C#. Inoltre, ha introdotto le **lambda expressions** e gli **automatic properties**. C# 4. 0 (2010) La versione **C# 4. 0** ha introdotto il concetto di **dynamic programming**, che ha permesso un'interoperabilità migliore con altre tecnologie come COM e linguaggi di scripting. Ha anche migliorato il supporto alla programmazione asincrona. C# 5. 0 (2012) Con **C# 5. 0**, il linguaggio ha migliorato significativamente il supporto per la **programmazione asincrona** grazie a **async** e **await**, consentendo una gestione più efficiente delle operazioni I/O. C# 6. 0 (2015) **C# 6. 0** ha introdotto piccole ma utili migliorie per semplificare la scrittura del codice, come gli **expression-bodied members**, **string interpolation**, e il **null conditional operator**. C# 7. 0 (2017) **C# 7. 0** ha introdotto nuove funzionalità come i **tuples** e le **local functions**, migliorando ulteriormente la leggibilità e la flessibilità del codice. C# 8. 0 (2019) Con **C# 8. 0**, il linguaggio ha abbracciato ulteriormente il concetto di **programmazione funzionale** grazie a caratteristiche come i **nullable reference types** e i **pattern matching** avanzati. C# 9. 0 (2020) **C# 9. 0** ha introdotto le **record types**, che semplificano la creazione di oggetti immutabili e migliorano la gestione dei dati. C# 10. 0 (2021) **C# 10. 0** ha introdotto ottimizzazioni per le performance e nuove funzionalità come le **global using directives** e i **record structs**. C# 11. 0 (2022) L'ultima versione, **C# 11. 0**, continua a perfezionare il linguaggio, introducendo miglioramenti nella gestione delle stringhe e altre ottimizzazioni per le performance. L'evoluzione di C# con . NET Core e . NET 5/6 Con il passaggio a **. NET Core** e l'introduzione di **. NET 5** e **. NET 6**, **C#** ha guadagnato notevoli... --- ### Metodi statici in C# > Scopri cosa sono i metodi statici in C#, come utilizzarli e quando preferirli rispetto ai metodi di istanza. Una guida semplice e completa per principianti. - Published: 2025-02-05 - Modified: 2025-02-05 - URL: https://www.gedemy.it/documentazione/csharp/metodi-statici/ - Categorie: C Sharp - Tag: Funzioni e metodi I metodi statici in C# sono una delle funzionalità chiave del linguaggio, specialmente per chi vuole scrivere codice efficiente e organizzato. In questa guida completa, esploreremo cosa sono i metodi statici, come si usano e perché sono così importanti nello sviluppo in C#. Cos’è un Metodo Statico? Un metodo statico è un tipo di metodo che appartiene alla classe stessa, piuttosto che a un'istanza specifica della classe. Questo significa che non è necessario creare un oggetto della classe per chiamare un metodo statico. Sintassi di Base La sintassi per dichiarare un metodo statico in C# è molto semplice. Basta aggiungere la parola chiave static prima del tipo di ritorno del metodo: public static void NomeMetodo { // Corpo del metodo } Caratteristiche dei Metodi Statici 1. Accesso ai Membri Statici I metodi statici possono accedere solo a membri statici della classe. Questo significa che non possono accedere a variabili o metodi non statici. 2. Non Richiedono un’Istanza della Classe Come accennato, un metodo statico può essere chiamato senza creare un'istanza della classe. Basta chiamarlo direttamente attraverso il nome della classe. 3. Chiamabili All’interno della Classe I metodi statici possono essere richiamati all'interno della classe stessa, e anche da altri metodi statici. Utilizzo dei Metodi Statici 1. Utility e Funzioni Helper I metodi statici sono spesso usati per scrivere funzioni helper o di utilità. Ad esempio, una classe che contiene metodi per la manipolazione delle stringhe o dei numeri. public static class StringUtils { public static bool IsNullOrEmpty(string str) { return string. IsNullOrEmpty(str); } } 2. Funzioni Matematiche Molte funzioni matematiche, come quelle della classe Math in C#, sono implementate come metodi statici. Questo perché non hanno bisogno di conservare uno stato. double risultato = Math. Sqrt(25); // Calcola la radice quadrata di 25 3. Inizializzazione di Risorse I metodi statici possono essere usati per inizializzare risorse come database o file di configurazione all'avvio di un'applicazione. 4. Metodi Factory Un metodo statico può essere utilizzato come metodo factory per creare istanze di una classe senza dover chiamare direttamente il costruttore. public static MyClass CreateInstance { return new MyClass; } Confronto tra Metodi Statici e Metodi di Istanza 1. Metodi di Istanza I metodi di istanza richiedono la creazione di un oggetto per essere utilizzati e possono accedere a tutti i membri della classe, sia statici che non statici. 2. Metodi Statici I metodi statici, al contrario, non richiedono un'istanza della classe e possono accedere solo ai membri statici. Quando Usare i Metodi Statici I metodi statici sono particolarmente utili quando il comportamento che si vuole implementare è indipendente dallo stato dell'oggetto o quando si desidera evitare di creare troppe istanze di una classe. Limitazioni dei Metodi Statici Una delle principali limitazioni dei metodi statici è che non possono accedere a membri non statici. Inoltre, possono rendere il codice più difficile da testare, poiché non possono essere facilmente sostituiti o simulati durante i test. Best Practices per i Metodi Statici 1. Usa Metodi Statici per Operazioni Indipendenti dallo Stato I metodi statici... --- ### Overloading dei metodi in C# - Published: 2025-02-04 - Modified: 2025-02-04 - URL: https://www.gedemy.it/documentazione/csharp/overloading/ - Categorie: C Sharp - Tag: Funzioni e metodi C# è un linguaggio di programmazione molto versatile che permette ai programmatori di creare codice riutilizzabile e ben organizzato. Una delle caratteristiche più potenti e utili per i principianti è il sovraccarico dei metodi, noto anche come method overloading. Questo concetto ti permette di creare più versioni di uno stesso metodo, rendendo il codice più flessibile e facile da mantenere. Concetto di sovraccarico dei metodi Il sovraccarico dei metodi in C# consente di definire più versioni dello stesso metodo all'interno di una classe, purché differiscano per numero, tipo o ordine dei parametri. Questo significa che puoi utilizzare lo stesso nome di metodo per eseguire operazioni diverse in base ai parametri che vengono passati. Ad esempio, potresti avere un metodo chiamato Somma che esegue la somma di due numeri interi, ma potresti voler creare una versione che sommi anche tre numeri. Invece di creare metodi con nomi diversi, come SommaDueNumeri e SommaTreNumeri, puoi sovraccaricare il metodo utilizzando lo stesso nome. Esempio: In questo esempio, il metodo Somma è stato sovraccaricato: la prima versione accetta due parametri, mentre la seconda ne accetta tre. public class Calcolatrice { public int Somma(int a, int b) { return a + b; } public int Somma(int a, int b, int c) { return a + b + c; } } Utilizzo del sovraccarico dei metodi Il sovraccarico dei metodi è utile quando hai bisogno di eseguire operazioni simili con parametri diversi. Non solo ti consente di utilizzare un nome coerente per metodi che svolgono compiti simili, ma rende anche il codice più leggibile e intuitivo. Questo è particolarmente utile quando sviluppi librerie o framework che altri sviluppatori utilizzeranno. Esempio di utilizzo: In questo esempio, entrambi i metodi Somma vengono utilizzati in base al numero di parametri forniti. class Program { static void Main(string args) { Calcolatrice calcolatrice = new Calcolatrice; // Utilizza il primo metodo Somma (2 parametri) int risultato1 = calcolatrice. Somma(3, 5); // Utilizza il secondo metodo Somma (3 parametri) int risultato2 = calcolatrice. Somma(3, 5, 7); } } Criteri di sovraccarico Per poter sovraccaricare correttamente un metodo in C#, devi seguire alcuni criteri fondamentali. Ecco le regole principali: Numero di parametri: Puoi sovraccaricare un metodo modificando il numero di parametri. Ad esempio, puoi avere una versione che accetta due parametri e una che ne accetta tre. Tipo di parametri: Puoi sovraccaricare un metodo cambiando il tipo dei parametri. Ad esempio, puoi avere una versione che accetta int e una che accetta double. Ordine dei parametri: Se i tipi di parametri sono diversi, puoi sovraccaricare cambiando il loro ordine. Esempio di diversi criteri di sovraccarico: public class EsempioSovraccarico { public void Stampa(int a) { Console. WriteLine(a); } public void Stampa(double a) { Console. WriteLine(a); } public void Stampa(int a, double b) { Console. WriteLine($"{a}, {b}"); } } Limitazioni Sebbene il sovraccarico dei metodi sia un potente strumento, ci sono alcune limitazioni che è importante conoscere: Differenze nei tipi di ritorno: Non puoi sovraccaricare un metodo cambiando solo il tipo di ritorno. Ad esempio, non... --- ### Metodi in C# - Published: 2025-02-03 - Modified: 2025-02-03 - URL: https://www.gedemy.it/documentazione/csharp/metodi/ - Categorie: C Sharp - Tag: Funzioni e metodi In questo articolo parleremo dei metodi in C#, una parte fondamentale della programmazione. I metodi permettono di organizzare e riutilizzare il codice in modo efficiente. Se sei alle prime armi con C#, continua a leggere per scoprire come i metodi possono migliorare il tuo codice. Concetto di Metodo Un metodo è un blocco di codice che esegue una specifica operazione. I metodi permettono di suddividere il programma in pezzi più piccoli e gestibili, rendendo il codice più leggibile e riutilizzabile. Ogni metodo ha un nome e può accettare parametri come input, restituendo un valore come risultato. Sintassi di Definizione del Metodo La sintassi per definire un metodo in C# segue una struttura ben precisa. Ecco un esempio: public int Somma(int a, int b) { return a + b; } In questo esempio, il metodo si chiama Somma, accetta due parametri di tipo int e restituisce un valore di tipo int. La parola chiave public indica che il metodo è accessibile da altre classi, mentre int rappresenta il tipo di ritorno del metodo. Creazione e Chiamata di un Metodo Creare un metodo significa semplicemente definirlo come nell'esempio sopra, ma come si chiama un metodo? Basta utilizzare il nome del metodo seguito dalle parentesi tonde. Ecco un esempio: int risultato = Somma(5, 3); Console. WriteLine(risultato); // Output: 8 In questo caso, chiamiamo il metodo Somma passando i valori 5 e 3 come parametri. Il metodo restituisce il valore 8, che viene poi stampato a schermo. Passaggio di Parametri I parametri sono i valori che puoi passare a un metodo per personalizzarne l'output. Esistono due modi per passare parametri ai metodi in C#: passaggio per valore e passaggio per riferimento. Nel passaggio per valore, viene passata una copia del valore. Nel passaggio per riferimento, viene passata l'effettiva variabile, permettendo al metodo di modificarla. Ecco un esempio di passaggio per valore: public void Incrementa(int numero) { numero++; } int a = 5; Incrementa(a); Console. WriteLine(a); // Output: 5 (il valore non è stato modificato) E un esempio di passaggio per riferimento: public void Incrementa(ref int numero) { numero++; } int a = 5; Incrementa(ref a); Console. WriteLine(a); // Output: 6 (il valore è stato modificato) Parametri Predefiniti In C#, puoi anche assegnare dei parametri predefiniti ai metodi. Ciò significa che se non passi un valore al metodo, verrà utilizzato il valore predefinito. Ecco un esempio: public void Saluta(string nome = "Utente") { Console. WriteLine($"Ciao, {nome}! "); } // Output: Ciao, Utente! Saluta; // Output: Ciao, Marco! Saluta("Marco"); Ritorno dei Valori I metodi possono restituire un valore usando la parola chiave return. Il tipo di valore restituito deve essere dichiarato nella definizione del metodo. Ecco un esempio: public int Moltiplica(int a, int b) { return a * b; } // Output: 20 int risultato = Moltiplica(4, 5); Console. WriteLine(risultato); Se il metodo non restituisce alcun valore, utilizza il tipo void: public void StampaMessaggio { Console. WriteLine("Messaggio stampato! "); } Ricorsione La ricorsione si verifica quando un metodo chiama se stesso. La ricorsione è utile per... --- ### Il Comando goto e le etichette in C#: guida completa - Published: 2025-01-30 - Modified: 2025-01-31 - URL: https://www.gedemy.it/documentazione/csharp/il-comando-goto/ - Categorie: C Sharp - Tag: Istruzioni di iterazione Il comando goto è uno degli elementi più discussi nei linguaggi di programmazione, incluso C#. È considerato da molti sviluppatori come una caratteristica da evitare, ma in alcune situazioni specifiche può risultare utile. In questa guida esploreremo cos’è il comando goto, come usarlo, i rischi associati, e quando è meglio evitarlo. Cos’è il comando goto? Il comando goto in C# consente di saltare l'esecuzione del codice da una parte all'altra all'interno dello stesso metodo. Si utilizza insieme a un'etichetta (label) che rappresenta il punto nel codice in cui si vuole "saltare". Questo meccanismo è molto simile a quello utilizzato nei linguaggi di programmazione più vecchi, come il BASIC o il Fortran. Un esempio semplice del comando goto è il seguente: public void EsempioGoto { int x = 0; inizio: Console. WriteLine($"Valore di x: {x}"); x++; if (x < 3) { // Torna all'etichetta "inizio" goto inizio; } } In questo esempio, ogni volta che il valore di x è inferiore a 3, il programma eseguirà il salto all'etichetta inizio e continuerà l'esecuzione da quel punto. Esempi di utilizzo del goto Il comando goto può essere utilizzato in diversi contesti, anche se è generalmente sconsigliato per la maggior parte delle situazioni. Vediamo un paio di esempi: Uscita da loop multipli: Se hai più cicli annidati e desideri interromperli tutti contemporaneamente, puoi utilizzare il comando goto per evitare un uso complicato di istruzioni break. public void UscitaDaLoopMultipli { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (i == 3 && j == 2) ù { // Salta fuori dai loop goto fuoriDaiCicli; } } } fuoriDaiCicli: Console. WriteLine("Usciti dai cicli"); } Error Handling semplificato: Anche se oggi si preferiscono le eccezioni per gestire gli errori, in alcuni vecchi approcci il comando goto veniva usato per "saltare" in sezioni di gestione degli errori. public void GestioneErrori { int x = 10, y = 0; if (y == 0) { goto errore; } Console. WriteLine(x / y); return; errore: Console. WriteLine("Errore: divisione per zero! "); } Questa tipologia di codice è obsoleta e sconsigliata, piuttosto utilizza il blocco try-catch public void GestioneErroriConTryCatch { try { int x = 10, y = 0; Console. WriteLine(x / y); } catch (DivideByZeroException ex) { Console. WriteLine("Errore: divisione per zero! "); } } Limitazioni e rischi del goto Nonostante possa sembrare comodo in alcuni casi, l'uso del goto presenta diversi rischi e limitazioni: Codice difficile da leggere: Saltare arbitrariamente da una parte all'altra del codice rende molto più complicata la comprensione del flusso logico. Un codice scritto con goto può risultare poco intuitivo e più difficile da mantenere. Debug complesso: La difficoltà nel seguire il flusso di esecuzione può complicare il processo di debugging e l'identificazione dei bug. Disponibilità limitata: Il comando goto può essere utilizzato solo all'interno dello stesso metodo e non può "saltare" da un metodo all'altro o attraverso blocchi try-catch. Best practices Sebbene goto esista in C#, molti sviluppatori preferiscono evitarlo. Ecco... --- ### Break e Continue in C# - Published: 2025-01-29 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/break-e-continue/ - Categorie: C Sharp - Tag: Istruzioni di iterazione Quando si inizia a programmare in C#, si incontrano spesso delle situazioni in cui è necessario interrompere o saltare un ciclo di esecuzione in base a determinate condizioni. In questi casi, le parole chiave break e continue possono essere estremamente utili. In questo articolo, esploreremo il loro utilizzo con esempi pratici e chiari. Parola chiave break La parola chiave break viene utilizzata per interrompere immediatamente l'esecuzione di un ciclo (come un for, while o foreach) e uscire da esso. Una volta che il ciclo viene interrotto, il programma continuerà con le istruzioni successive al ciclo. Ecco un esempio pratico di come utilizzare break in un ciclo for: for (int i = 0; i < 10; i++) { if (i == 5) { // Il ciclo si interrompe quando i è uguale a 5 break; } Console. WriteLine(i); } In questo esempio, il ciclo si interrompe quando la variabile i raggiunge il valore di 5. Di conseguenza, i numeri da 0 a 4 vengono stampati, e poi il ciclo viene terminato. Parola chiave continue La parola chiave continue, invece, non interrompe completamente il ciclo, ma salta l'iterazione corrente e passa direttamente a quella successiva. Questa può essere utile quando si desidera ignorare specifiche condizioni all'interno di un ciclo. Vediamo un esempio di continue in azione: for (int i = 0; i < 10; i++) { if (i % 2 == 0) { // Salta i numeri pari continue; } Console. WriteLine(i); } In questo caso, il ciclo for stampa solo i numeri dispari. Quando il valore di i è pari, il ciclo salta l'istruzione Console. WriteLine(i) e passa all'iterazione successiva. Utilizzo di break e continue all'interno di cicli annidati Le parole chiave break e continue possono essere particolarmente utili nei cicli annidati, cioè cicli all'interno di altri cicli. Ecco un esempio in cui vengono utilizzate entrambe: for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (i == 2) { // Interrompe il ciclo più interno quando i è 2 break; } if (j == 3) { // Salta il resto dell'iterazione quando j è 3 continue; } Console. WriteLine($"i: {i}, j: {j}"); } } In questo esempio, quando i è uguale a 2, il ciclo interno viene interrotto grazie a break, mentre quando j è uguale a 3, si salta quell'iterazione e si passa direttamente a quella successiva grazie a continue. Conclusioni Le parole chiave break e continue sono strumenti fondamentali in C#, specialmente quando si lavora con i cicli. La loro corretta applicazione può migliorare l'efficienza e la leggibilità del codice, rendendo più chiaro il comportamento di un ciclo. Ricordati di utilizzare break per interrompere completamente un ciclo e continue per saltare l'iterazione corrente e passare alla successiva. --- ### Il Ciclo foreach in C# - Published: 2025-01-29 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/il-ciclo-foreach/ - Categorie: C Sharp - Tag: Istruzioni di iterazione Quando lavori con collezioni in C#, come array o liste, uno dei modi più semplici per iterare sugli elementi è utilizzare il ciclo foreach. È un costrutto che ti permette di scorrere ogni elemento di una collezione senza dover gestire indici o contatori manualmente. In questo articolo, esploreremo cosa è il ciclo foreach, come funziona, i suoi vantaggi e limitazioni, e alcune best practices da seguire per un utilizzo efficace. Cos’è il Ciclo foreach? Il ciclo foreach è utilizzato per iterare su una collezione di elementi, come un array o una lista, in maniera semplice e intuitiva. A differenza del ciclo for, che richiede la gestione manuale degli indici, il foreach esegue automaticamente l'iterazione su ogni elemento della collezione. Ecco come appare la sintassi di base: foreach (var elemento in collezione) { // Operazioni su 'elemento' } Nel ciclo foreach, ogni elemento della collezione viene assegnato alla variabile elemento, che può essere utilizzata all'interno del ciclo. Esempi di Utilizzo Vediamo un esempio pratico di utilizzo del ciclo foreach per scorrere una lista di numeri: List numeri = new List { 1, 2, 3, 4, 5 }; foreach (int numero in numeri) { Console. WriteLine(numero); } In questo esempio, il ciclo foreach scorre la lista numeri e stampa ogni numero. Non c’è bisogno di gestire manualmente gli indici come nel caso di un ciclo for. Un altro esempio comune è l'iterazione su un array di stringhe: string frutti = { "Mela", "Banana", "Arancia" }; foreach (string frutto in frutti) { Console. WriteLine(frutto); } In questo caso, ogni frutto viene iterato e stampato sullo schermo. Vantaggi del Ciclo foreach Uno dei principali vantaggi del ciclo foreach è la sua semplicità. Non devi preoccuparti di gestire gli indici o il numero di elementi nella collezione. Ecco alcuni vantaggi chiave: Codice più pulito: Non devi gestire il contatore manualmente. Meno errori: Poiché non ci sono indici, si riduce il rischio di errori comuni come superare i limiti dell'array. Leggibilità: Il codice è più chiaro e facile da leggere, soprattutto per chi è alle prime armi. Limitazioni del Ciclo foreach Sebbene il ciclo foreach sia molto utile, ha alcune limitazioni che è importante considerare: Immutabilità: Non puoi modificare direttamente gli elementi della collezione durante l'iterazione. Se hai bisogno di modificare gli elementi, dovrai utilizzare un altro ciclo, come il for. Prestazioni: In alcuni casi, come quando hai bisogno di accedere a un elemento specifico in base all'indice, un ciclo for potrebbe essere più efficiente. Best Practices per l’Uso del foreach Per utilizzare il ciclo foreach in modo efficace, ci sono alcune best practices che è utile seguire: Usalo per l’iterazione semplice: Il ciclo foreach è perfetto quando vuoi semplicemente leggere o eseguire operazioni su ciascun elemento di una collezione. Non modificarne la collezione: Evita di aggiungere o rimuovere elementi dalla collezione all'interno del ciclo foreach, poiché può causare errori di esecuzione. Scegli il ciclo giusto: Se hai bisogno di modificare la collezione o accedere a elementi specifici tramite indice, considera l’uso di un ciclo for... --- ### Ciclo For in C# > Il costrutto C# for ti aiuta ad eseguire lo stesso codice su molti oggetti di una struttura dati, effettuando così un ciclo. Vediamo cos'è e come usarlo. - Published: 2025-01-28 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/ciclo-for/ - Categorie: C Sharp - Tag: Istruzioni di iterazione Se stai imparando a programmare in C#, uno dei concetti più importanti da comprendere è il ciclo for. È un costrutto fondamentale che ti consente di ripetere un blocco di codice più volte, rendendo i tuoi programmi più efficienti e puliti. In questo articolo, esploreremo come funziona il ciclo for e come usarlo, anche in casi più avanzati come i cicli for annidati. Ciclo for Il ciclo for viene utilizzato quando sai esattamente quante volte vuoi ripetere un'operazione. La sua sintassi è abbastanza semplice e diretta. Ecco come appare un tipico ciclo for in C#: for (int i = 0; i < 5; i++) { Console. WriteLine(i); } Nel codice qui sopra, il ciclo inizia con l'inizializzazione di una variabile, i in questo caso, che parte da 0. La condizione i < 5 viene valutata prima di ogni iterazione: se è vera, il codice all'interno del ciclo viene eseguito. Alla fine di ogni iterazione, la variabile i viene incrementata di 1 grazie all'istruzione i++. Il ciclo termina quando la condizione i < 5 non è più soddisfatta. Quando utilizzare un ciclo for? Il ciclo for è particolarmente utile quando sai in anticipo quante volte deve essere eseguito un blocco di codice. Ecco alcuni esempi comuni di utilizzo del ciclo for: Scorrere un array o una lista di elementi. Eseguire un'operazione per un numero fisso di volte. Ripetere un'operazione finché una condizione è vera. Cicli for Annidati Un ciclo for annidato è un ciclo for all'interno di un altro ciclo for. Questo tipo di struttura viene spesso utilizzata quando devi lavorare con dati bidimensionali, come una matrice o una griglia. Ecco un esempio di ciclo for annidato: for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { Console. WriteLine($"i: {i}, j: {j}"); } } In questo esempio, il primo ciclo controlla la variabile i, mentre il secondo ciclo interno controlla la variabile j. Per ogni iterazione del ciclo esterno, il ciclo interno viene eseguito completamente. Questo è utile quando lavori con tabelle o griglie dove devi iterare su due dimensioni. Quando utilizzare i cicli for annidati? I cicli for annidati sono utili quando hai bisogno di eseguire operazioni su più livelli o dimensioni, come ad esempio: Scorrere una matrice o un array bidimensionale. Generare combinazioni di dati. Creare strutture più complesse come tabelle o griglie. Conclusioni Il ciclo for è un costrutto essenziale in C#, perfetto per gestire iterazioni quando il numero di ripetizioni è noto. Imparare a usare il ciclo for e i cicli annidati ti permetterà di scrivere codice più efficiente e versatile. Ora che hai capito come funzionano i cicli for, puoi iniziare a usarli nei tuoi progetti per migliorare la gestione delle iterazioni. --- ### Operatore Ternario in C# - Published: 2025-01-27 - Modified: 2025-03-04 - URL: https://www.gedemy.it/documentazione/csharp/operatore-ternario/ - Categorie: C Sharp - Tag: Controllo del flusso L'operatore ternario in C# è un costrutto che permette di scrivere una condizione in modo più compatto, simile a un'istruzione if-else, ma più snella. È utile quando hai una logica semplice e vuoi ridurre la quantità di codice necessario per una condizione. La sintassi dell’operatore ternario La sintassi dell'operatore ternario in C# è molto semplice e può essere scritta in un'unica linea. La struttura generale è la seguente: condizione ? espressione_vera : espressione_falsa; In questo caso, la condizione viene valutata. Se è true, viene eseguita l'espressione vera, altrimenti viene eseguita l'espressione falsa. Come si usa l'operatore ternario L'operatore ternario può essere utilizzato per semplificare un'istruzione if-else, rendendo il codice più leggibile e compatto. Un esempio semplice Ecco un esempio che mostra l'uso dell'operatore ternario: int numero = 10; string risultato = (numero > 5) ? "Maggiore di 5" : "Minore o uguale a 5"; Console. WriteLine(risultato); In questo caso, la condizione numero > 5 viene valutata. Poiché è vera, viene eseguita l'espressione "Maggiore di 5". Se fosse stata falsa, sarebbe stata eseguita l'espressione "Minore o uguale a 5". Utilizzo di condizioni multiple con l'operatore ternario L'operatore ternario può essere anche annidato per gestire più condizioni, anche se è consigliabile evitare di annidare troppi ternari per non perdere la leggibilità del codice. Esempio di condizione multipla Vediamo un esempio in cui gestiamo più di una condizione: int numero = 10; string risultato = (numero > 10) ? "Maggiore di 10" : (numero == 10) ? "Uguale a 10" : "Minore di 10"; Console. WriteLine(risultato); Qui abbiamo più di una condizione. La prima verifica se il numero è maggiore di 10, la seconda se è uguale a 10, e l'ultima copre il caso in cui sia minore di 10. I limiti dell’operatore ternario Nonostante l'operatore ternario sia utile per semplificare il codice, può diventare problematico se utilizzato in modo eccessivo o per gestire condizioni troppo complesse. Quando annidi troppi ternari, il codice può risultare difficile da leggere e mantenere. In questi casi, è meglio utilizzare un'istruzione if-else tradizionale. --- ### Ciclo while in C# > Loop while e do while in C#: come utilizzarli per ripetere blocchi di codice. - Published: 2025-01-27 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/ciclo-while/ - Categorie: C Sharp - Tag: Istruzioni di iterazione I cicli rappresentano un elemento chiave nella programmazione, permettendo l’esecuzione ripetuta di un insieme di comandi. In quest’articolo, ci concentreremo sul ciclo while e sul ciclo do-while, illustrando come impiegarli per realizzare azioni ripetute fino al soddisfacimento di un preciso criterio. Ciclo while Il ciclo while esegue un blocco di codice finché la condizione specificata è vera. La condizione viene verificata prima che il ciclo venga eseguito, quindi se la condizione è falsa fin dall'inizio, il ciclo non verrà mai eseguito. Ecco un esempio di ciclo while: int i = 0; while (i < 5) { Console. WriteLine(i); i++; } In questo esempio, la variabile i parte da 0 e viene incrementata ad ogni iterazione. Il ciclo continuerà a stampare i numeri finché i sarà minore di 5. Ciclo do-while Il ciclo do-while è simile al ciclo while, ma con una differenza importante: il blocco di codice viene eseguito almeno una volta, anche se la condizione è falsa fin dall'inizio. Questo perché la condizione viene controllata dopo l'esecuzione del blocco di codice. Ecco un esempio di ciclo do-while: int i = 0; do { Console. WriteLine(i); i++; } while (i < 5); Come puoi vedere, il ciclo do-while è molto simile a while, ma la condizione viene verificata alla fine di ogni iterazione. Differenze tra while e do-while La principale differenza tra while e do-while risiede nel momento in cui viene verificata la condizione: Nel ciclo while, la condizione viene verificata prima che il blocco di codice venga eseguito. Se la condizione è falsa, il ciclo non viene mai eseguito. Nel ciclo do-while, la condizione viene verificata dopo l'esecuzione del blocco di codice, quindi il codice viene eseguito almeno una volta, anche se la condizione è falsa. Ecco una rapida comparazione: // Ciclo while int i = 10; while (i < 5) { // Non verrà mai eseguito Console. WriteLine(i); } // Ciclo do-while int j = 10; do { // Verrà eseguito una volta Console. WriteLine(j); } while (j < 5); Conclusioni Il ciclo while e il ciclo do-while sono strumenti essenziali per ogni programmatore. La loro scelta dipende principalmente dal momento in cui vuoi controllare la condizione. Se hai bisogno di verificare la condizione prima di eseguire il codice, il ciclo while è quello che fa per te. Se, invece, desideri che il blocco di codice venga eseguito almeno una volta, anche quando la condizione è falsa, allora dovresti utilizzare il ciclo do-while. --- ### Condizionali IF in C# > Impara a utilizzare l'istruzione if in C# con la nostra guida dettagliata. Esempi pratici e consigli per gestire condizioni complesse nel tuo codice. - Published: 2025-01-26 - Modified: 2025-03-04 - URL: https://www.gedemy.it/documentazione/csharp/condizionali-if/ - Categorie: C Sharp - Tag: Controllo del flusso Le condizioni sono fondamentali in qualsiasi linguaggio di programmazione, e C# non fa eccezione. In questo articolo, andremo a vedere come funzionano le istruzioni if, else ed else if, strumenti indispensabili per prendere decisioni nel codice. Istruzione if L'istruzione if permette di eseguire un blocco di codice solo se una condizione è vera. Ad esempio, se vuoi controllare se una variabile ha un certo valore, puoi utilizzare un'istruzione if. Vediamo un esempio semplice: int numero = 10; if (numero > 5) { Console. WriteLine("Il numero è maggiore di 5"); } In questo caso, la condizione numero > 5 è vera, quindi verrà eseguito il codice all'interno delle parentesi graffe, che stampa "Il numero è maggiore di 5". Istruzione else L'istruzione else viene utilizzata quando vuoi eseguire un blocco di codice alternativo se la condizione dell'if è falsa. Questo permette di gestire entrambi i casi, sia quello in cui la condizione è vera, sia quello in cui è falsa. Ecco un esempio: int numero = 3; if (numero > 5) { Console. WriteLine("Il numero è maggiore di 5"); } else { Console. WriteLine("Il numero è minore o uguale a 5"); } Se il numero non è maggiore di 5, verrà eseguito il blocco else, che stampa "Il numero è minore o uguale a 5". Istruzione else if L'istruzione else if permette di aggiungere ulteriori condizioni oltre alla prima. È utile quando hai più condizioni da verificare. Ecco un esempio che utilizza più else if: int numero = 7; if (numero > 10) { Console. WriteLine("Il numero è maggiore di 10"); } else if (numero > 5) { Console. WriteLine("Il numero è maggiore di 5 ma minore o uguale a 10"); } else { Console. WriteLine("Il numero è minore o uguale a 5"); } Qui, il programma controlla prima se il numero è maggiore di 10. Se non lo è, controlla se è maggiore di 5. Se nessuna delle condizioni è vera, eseguirà il blocco else. Esempio con operatori logici Puoi anche combinare più condizioni utilizzando gli operatori logici come && (e logico) e || (o logico). Questo ti permette di verificare più condizioni contemporaneamente. Vediamo un esempio con l'operatore &&: int numero = 8; if (numero > 5 && numero < 10) { Console. WriteLine("Il numero è compreso tra 5 e 10"); } In questo caso, entrambe le condizioni devono essere vere affinché il codice all'interno delle parentesi graffe venga eseguito. Quindi, verrà stampato "Il numero è compreso tra 5 e 10". Conclusioni Le istruzioni if, else, e else if sono fondamentali per gestire il flusso logico dei programmi in C#. Saperle utilizzare correttamente ti permetterà di rendere il tuo codice più dinamico e flessibile, rispondendo in maniera appropriata a diverse condizioni. Ricorda che puoi anche combinare più condizioni con gli operatori logici per rendere il tuo codice ancora più potente! Ora che hai una panoramica su come funzionano i condizionali if in C#, puoi provare a scrivere i tuoi programmi e sperimentare con queste istruzioni. --- ### Valori Nullable in C# - Published: 2025-01-24 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/valori-nullable/ - Categorie: C Sharp - Tag: Concetti fondamentali I valori nullable in C# sono una caratteristica molto utile, specialmente quando si lavora con tipi di dati che, in determinate circostanze, potrebbero non avere un valore. In questo articolo esploreremo il concetto di valori nullable, la loro sintassi e come possono essere utilizzati efficacemente per evitare errori comuni nel codice. Concetto di Nullables In C#, i tipi di valore come int, float, bool, ecc. non possono avere un valore null di default. Tuttavia, a volte è necessario rappresentare un'assenza di valore, per esempio in un database dove alcuni campi possono essere vuoti. Qui entrano in gioco i valori nullable, che permettono ai tipi di valore di accettare il valore null. Un valore nullable è un tipo che può assumere tutti i valori di un tipo di dato normale, più il valore null. Sintassi La sintassi per dichiarare un tipo nullable in C# è molto semplice. Basta aggiungere un punto di domanda (? ) dopo il tipo di valore che si vuole rendere nullable. Ecco un esempio: int? numero = null; In questo caso, numero è un intero che può avere un valore numerico o null. Se provassimo a dichiarare semplicemente int numero = null;, il compilatore ci restituirebbe un errore, poiché gli interi normali non possono essere nulli. Utilizzo dei tipi nullabili I tipi nullable sono particolarmente utili quando si lavora con database, moduli o altre situazioni dove un valore potrebbe non essere presente. Per esempio, un campo di data di nascita potrebbe essere vuoto: DateTime? dataDiNascita = null; È importante verificare se un nullable ha un valore prima di utilizzarlo. Questo può essere fatto usando la proprietà HasValue o confrontando direttamente con null: if (dataDiNascita. HasValue) { Console. WriteLine($"Data di nascita: {dataDiNascita. Value}"); } else { Console. WriteLine("Data di nascita non disponibile. "); } Operatore di Coalescenza Nullabile C# fornisce l'operatore di coalescenza nulla (? ? ), che permette di assegnare un valore di default nel caso in cui una variabile nullable sia null. Questo è molto utile per evitare errori e semplificare il codice. Ecco un esempio: int? numero = null; int valoreDiDefault = numero ? ? 0; In questo caso, se numero è null, valoreDiDefault verrà impostato a 0. Metodo . GetValueOrDefault Un altro modo per gestire i tipi nullable è usare il metodo . GetValueOrDefault. Questo metodo restituisce il valore del nullable se esiste, oppure un valore di default (ad esempio, 0 per gli interi) se il valore è null. Ecco un esempio: int? numero = null; int valore = numero. GetValueOrDefault; // Restituisce 0 perché numero è null Puoi anche passare un valore di default personalizzato al metodo: int valore = numero. GetValueOrDefault(100); // Restituisce 100 se numero è null Conclusioni I valori nullable in C# sono uno strumento potente e flessibile che consente di gestire situazioni in cui i dati possono essere mancanti o non definiti. Utilizzando la sintassi nullable, l'operatore di coalescenza nulla e il metodo . GetValueOrDefault, puoi scrivere codice più robusto e sicuro. Se stai sviluppando applicazioni che interagiscono con... --- ### Strutture in C# > Questo articolo offre una panoramica completa delle strutture in C#, dalla definizione fino alla creazione di un'istanza. - Published: 2025-01-24 - Modified: 2025-01-24 - URL: https://www.gedemy.it/documentazione/csharp/strutture/ - Categorie: C Sharp - Tag: Concetti fondamentali Le strutture (o struct in inglese) sono un tipo di dati composto generalmente utilizzato per incapsulare piccoli gruppi di variabili correlate, ad esempio le coordinate di un rettangolo o il posizionamento di un punto nello spazio. Si tratta quindi di un tipo di dato ideale per piccoli oggetti, anche se talvolta uno stesso concetto potrebbe essere implementato come struttura o classe senza rilevanti differenze fra le due possibilità. Sintassi La sintassi per dichiarare una struttura in C# è molto semplice. Ecco un esempio di come dichiararla: struct Punto { public int X; public int Y; } Qui abbiamo dichiarato una struttura chiamata Punto, che contiene due campi pubblici: X e Y, entrambi di tipo intero. Inizializzazione di una struttura Per creare un'istanza di una struttura, puoi utilizzare il costruttore predefinito o definirne uno tu. Ecco come puoi inizializzare una struttura: Punto p = new Punto; p. X = 10; p. Y = 20; Oppure, puoi utilizzare un costruttore personalizzato per inizializzarla: struct Punto { public int X; public int Y; public Punto(int x, int y) { X = x; Y = y; } } Punto p = new Punto(10, 20); Accedere ai campi Una volta creata l'istanza della struttura, puoi accedere ai suoi campi come faresti con una classe. Nell'esempio precedente, abbiamo acceduto a X e Y direttamente dall'oggetto Punto. Console. WriteLine($"X: {p. X}, Y: {p. Y}"); Questo stampa i valori dei campi X e Y. Utilizzo delle strutture Le strutture sono particolarmente utili quando si lavora con piccoli gruppi di dati. Ad esempio, in un'applicazione di grafica, potresti voler rappresentare coordinate o punti nello spazio 2D o 3D. Un altro utilizzo comune è in scenari dove il valore dell'oggetto è più importante del suo riferimento. Poiché le strutture sono tipi di valore, vengono memorizzate direttamente nella stack, a differenza delle classi che sono tipi di riferimento e vengono memorizzate nell'heap. Metodi di una struttura Le strutture in C# possono anche contenere metodi. Questo significa che puoi aggiungere funzioni utili all'interno della tua struttura. Ecco un esempio: struct Punto { public int X; public int Y; public Punto(int x, int y) { X = x; Y = y; } public void Sposta(int deltaX, int deltaY) { X += deltaX; Y += deltaY; } } Punto p = new Punto(10, 20); p. Sposta(5, 10); In questo esempio, abbiamo aggiunto un metodo Sposta che modifica i valori di X e Y. Conclusione Le strutture in C# sono uno strumento potente e versatile, utili per rappresentare gruppi di dati semplici. Anche se possono sembrare simili alle classi, è importante ricordare che sono tipi di valore e vengono utilizzate in contesti dove è più efficiente lavorare con dati memorizzati direttamente nella stack. Sperimenta con le strutture e scoprirai quanto possono essere utili nella tua programmazione quotidiana! --- ### Array in C# > Scopriamo come sfruttare gli array in C# per organizzare ed elaborare i tuoi dati in modo efficiente. - Published: 2025-01-23 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/array/ - Categorie: C Sharp - Tag: Concetti fondamentali Gli array in C# sono uno degli elementi più fondamentali e importanti per la gestione di più dati dello stesso tipo. Un array è una struttura dati che permette di memorizzare una serie di elementi dello stesso tipo, come numeri, stringhe o oggetti. In questo articolo esploreremo i concetti di base sugli array, la loro sintassi e come utilizzarli. Concetto di Array Un array è una collezione di elementi dello stesso tipo memorizzati in posizioni contigue di memoria. Puoi pensare a un array come una fila di caselle, ognuna delle quali può contenere un valore. Sintassi Per dichiarare un array in C#, utilizziamo la seguente sintassi: int numeri = new int; In questo esempio, abbiamo creato un array di interi chiamato numeri che può contenere 5 elementi. Accesso agli elementi Gli elementi di un array vengono indicizzati, il che significa che puoi accedervi utilizzando un numero (l'indice). Gli indici partono da 0, quindi il primo elemento è all'indice 0. Ecco come accedere al primo elemento di un array: int primoNumero = numeri; Modifica elementi È possibile anche modificare un elemento specifico di un array: numeri = 10; In questo esempio, il primo elemento dell'array verrà modificato in 10. Ciclo for array Il ciclo for è comunemente usato per attraversare un array. Ecco un esempio: for (int i = 0; i < numeri. Length; i++) { Console. WriteLine(numeri); } Il metodo Length restituisce il numero di elementi presenti nell'array. Ciclo foreach array Il ciclo foreach offre un modo semplice per attraversare un array senza dover gestire l'indice manualmente: foreach (int numero in numeri) { Console. WriteLine(numero); } In questo caso, ogni elemento dell'array viene iterato senza dover accedere agli indici. Metodi utili C# offre molti metodi utili per lavorare con gli array, tra cui: Array. Sort(array): Ordina gli elementi di un array. Array. Reverse(array): Inverte l'ordine degli elementi in un array. Ecco un esempio di utilizzo di Array. Sort: Array. Sort(numeri); Array multidimensionali Un array multidimensionale è un array che contiene più di una dimensione. Il tipo più comune è l'array bidimensionale, che puoi immaginare come una griglia o una tabella. Ecco come si dichiara un array bidimensionale: int griglia = new int; Questo array può contenere due righe e tre colonne. Accedere agli elementi di un Array multidimensionale Per accedere a un elemento specifico di un array bidimensionale, puoi utilizzare due indici: int elemento = griglia; Questo accede all'elemento nella prima riga e nella seconda colonna. Ciclo for con Array multidimensionale Per attraversare un array multidimensionale, puoi usare un ciclo for nidificato: for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { Console. WriteLine(griglia); } } Metodi utili All’interno del C#, abbiamo vari metodi che permettono di lavorare con gli array, ecco una panoramica: int numeri = new numeri { 1, 2, 3, 4, 5, 6 }; // Restituisce la lunghezza dell'array int lunghezza = numeri. Length; // Restituisce l'indice del primo elemento di valore 2 int indice = Array.... --- ### Operatori di Confronto in C# > Scopri gli operatori di confronto in C#. Questa guida per principianti spiega in modo semplice e con esempi pratici come utilizzare gli operatori di confronto nel linguaggio di programmazione C#. - Published: 2025-01-23 - Modified: 2025-02-25 - URL: https://www.gedemy.it/documentazione/csharp/operatori-di-confronto/ - Categorie: C Sharp - Tag: Operatori ed espressioni Quando si programma in C#, gli operatori di confronto sono strumenti fondamentali per confrontare due valori e prendere decisioni nel nostro codice. Questi operatori restituiscono un valore booleano, ovvero true o false, a seconda del risultato del confronto. In questa guida, vedremo quali sono gli operatori disponibili e come utilizzarli. Tipologie di Operatori di Confronto in C# In C# abbiamo diversi operatori di confronto che ci permettono di verificare uguaglianze, disuguaglianze e altre relazioni tra due valori. Ecco un elenco degli operatori di confronto più comuni: == : Confronta se due valori sono uguali. ! = : Verifica se due valori sono diversi. > : Determina se un valore è maggiore di un altro. = : Confronta se un valore è maggiore o uguale a un altro. numero2) { Console. WriteLine("Il primo numero è maggiore del secondo. "); } else { Console. WriteLine("Il primo numero è minore del secondo. "); } Nel codice qui sopra, stiamo usando l'operatore == per verificare se i due numeri sono uguali. Se non lo sono, utilizziamo gli operatori > e --- ### Stringhe in C# - Published: 2025-01-22 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/stringhe/ - Categorie: C Sharp - Tag: Concetti fondamentali Le stringhe sono uno dei tipi di dati più utilizzati in C#. In questo articolo impareremo a conoscere le stringhe, come crearle e manipolarle, e quali sono i principali metodi offerti da C# per lavorare con esse. Cos’è una Stringa? Una stringa è una sequenza di caratteri racchiusi tra virgolette doppie ("). Le stringhe possono contenere lettere, numeri, simboli o persino spazi. In C#, il tipo string è usato per rappresentare una stringa di testo e viene gestito come un oggetto, quindi contiene molte funzionalità utili. Ecco un esempio di stringa in C#: string messaggio = "Ciao, benvenuto su Gedemy! "; Creare Stringhe Creare una stringa in C# è semplice. Come accennato sopra, basta assegnare una sequenza di caratteri racchiusa tra virgolette doppie a una variabile di tipo string. Ecco un altro esempio: string saluto = "Buongiorno! "; Indicizzazione delle Stringhe Le stringhe sono indicizzate, il che significa che ogni carattere all'interno di una stringa ha una posizione numerica. L'indicizzazione inizia da 0, quindi il primo carattere ha indice 0, il secondo ha indice 1, e così via. Ad esempio: string nome = "Gedemy"; // G char char primaLettera = nome; // e secondaLettera = nome; Taglio delle Stringhe (Slicing) In C#, puoi estrarre una porzione di una stringa usando il metodo Substring. Questo è particolarmente utile quando vuoi ottenere una parte della stringa originale. Ecco un esempio: string frase = "Benvenuto su Gedemy! "; // "Gedemy" string parte = frase. Substring(11, 6); Concatenazione delle Stringhe La concatenazione delle stringhe permette di unire due o più stringhe in una sola. Puoi farlo utilizzando l'operatore + oppure il metodo String. Concat. Ecco un esempio di concatenazione: string nome = "Gedemy"; string messaggio = "Benvenuto su " + nome + "! "; // Benvenuto su Gedemy! Console. WriteLine(messaggio); Formattazione delle Stringhe La formattazione delle stringhe ti consente di creare una stringa dinamica con valori variabili. Questo può essere fatto con il metodo String. Format o utilizzando interpolazione di stringhe ($). Ecco un esempio con l'interpolazione di stringhe: string nome = "Gedemy"; int numeroCorsi = 100; string messaggio = $"Benvenuto su {nome}, abbiamo oltre {numeroCorsi} corsi! "; Console. WriteLine(messaggio); Lunghezza delle Stringhe Per conoscere la lunghezza di una stringa, puoi utilizzare la proprietà Length, che restituisce il numero di caratteri presenti nella stringa. Esempio: string frase = "Benvenuto su Gedemy! "; // 19 int lunghezza = frase. Length; Alcuni Metodi delle Stringhe C# fornisce molti metodi utili per lavorare con le stringhe. Ecco alcuni dei più comuni: ToUpper: converte la stringa in maiuscolo. ToLower: converte la stringa in minuscolo. Contains: verifica se una stringa contiene una sottostringa. Replace: sostituisce una parte della stringa con un'altra. Ecco un esempio di utilizzo di alcuni di questi metodi: string messaggio = "Benvenuto su Gedemy! "; // true bool contiene = messaggio. Contains("Gedemy"); // "BENVENUTO SU GEDEMY! " string maiuscolo = messaggio. ToUpper; // "Benvenuto su il nostro sito! " string modificata = messaggio. Replace("Gedemy", "il nostro sito"); Conclusioni In questo articolo abbiamo esplorato le stringhe in... --- ### Differenze tra C# e altri linguaggi di programmazione - Published: 2025-01-21 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/differenze-tra-c-sharp-e-altri-linguaggi-di-programmazione/ - Categorie: C Sharp - Tag: Introduzione C# è uno dei linguaggi di programmazione più popolari, particolarmente apprezzato per la sua versatilità e potenza nello sviluppo di applicazioni desktop, web e mobile. In questo articolo esploreremo le differenze tra C# e altri linguaggi di programmazione, come Java, Python, C++ e JavaScript, per aiutarti a comprendere quale linguaggio potrebbe essere il più adatto alle tue esigenze. C# vs Java C# e Java sono spesso considerati simili, in quanto entrambi sono linguaggi orientati agli oggetti e fortemente tipizzati. Tuttavia, ci sono alcune differenze chiave che vale la pena sottolineare. Ambito di utilizzo: C# è sviluppato da Microsoft e si integra perfettamente con l'ecosistema . NET, rendendolo ideale per lo sviluppo di applicazioni su piattaforma Windows. Java, d'altra parte, è molto utilizzato in ambienti multi-piattaforma, grazie alla JVM (Java Virtual Machine) che consente di eseguire programmi su diverse piattaforme senza modifiche significative al codice. Sintassi: Sebbene i due linguaggi siano molto simili nella sintassi, C# ha alcune funzionalità moderne come le property e i delegati, che non sono presenti in Java. Ecco un esempio di una property in C#: Performance: C# e Java sono entrambi relativamente veloci, ma C# spesso offre prestazioni migliori in ambienti Windows, mentre Java potrebbe essere più efficiente su sistemi multi-piattaforma. C# vs Python Python è uno dei linguaggi più semplici da imparare, ed è apprezzato per la sua flessibilità e leggibilità del codice. Vediamo come si confronta con C#. Curva di apprendimento: Python è noto per la sua sintassi concisa e semplice, il che lo rende un'ottima scelta per i principianti. C#, d'altra parte, può sembrare più complesso a causa della sua tipizzazione forte e della necessità di definire chiaramente classi e metodi. Ecco un semplice esempio di hello world in entrambi i linguaggi. In Python: print("Hello, World! ") In C#: using System; class Program { static void Main { Console. WriteLine("Hello, World! "); } } Uso comune: Python è molto usato per lo sviluppo web, l'intelligenza artificiale e l'automazione, grazie alle sue potenti librerie. C#, invece, è più adatto per applicazioni enterprise, giochi (con Unity) e sviluppo di applicazioni desktop. Performance: C# è generalmente più veloce di Python, poiché Python è un linguaggio interpretato mentre C# viene compilato in codice nativo. C# vs C++ C++ e C# derivano entrambi dal linguaggio C, ma sono profondamente diversi in termini di utilizzo e complessità. Gestione della memoria: Una delle differenze principali è la gestione della memoria. C++ offre un controllo diretto della memoria, il che lo rende più efficiente in termini di prestazioni ma anche più complesso, poiché gli sviluppatori devono gestire manualmente l'allocazione e la deallocazione della memoria. In C#, la memoria è gestita automaticamente grazie al Garbage Collector, rendendo il linguaggio più semplice da usare. Uso: C++ è spesso utilizzato in contesti in cui sono richieste prestazioni elevate, come nello sviluppo di sistemi operativi, software embedded e videogiochi complessi. C#, d'altra parte, è più adatto per applicazioni enterprise e sviluppo di giochi con Unity, dove la semplicità e la produttività sono più importanti rispetto... --- ### Caratteri in C# - Published: 2025-01-18 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/caratteri/ - Categorie: C Sharp - Tag: Concetti fondamentali In questo articolo, esploreremo i caratteri in C#, partendo dalla loro rappresentazione fino a come utilizzarli e gestirli. Questo argomento è fondamentale per chiunque stia iniziando a programmare in C# e desideri comprendere meglio come funzionano le variabili di tipo char. Seguiremo un percorso chiaro e semplice per farti familiarizzare con questo concetto essenziale. Come si Rappresentano i Caratteri In C#, un carattere viene rappresentato utilizzando il tipo di dato char. Un char può contenere un singolo carattere Unicode, che può essere una lettera, un numero, un simbolo o addirittura un carattere speciale (come uno spazio o una nuova linea). È importante ricordare che un carattere è diverso da una stringa: una stringa può contenere più caratteri, mentre un char rappresenta sempre e solo un singolo carattere. Dichiarazione e Assegnazione di Variabili di Tipo char Per dichiarare una variabile di tipo char in C#, dobbiamo utilizzare la parola chiave char. Ecco come dichiarare una variabile e assegnarle un valore: char lettera = 'A'; Come puoi vedere, il carattere è racchiuso tra apostrofi singoli ('A'). Questo è un dettaglio fondamentale da tenere a mente: i caratteri sono sempre racchiusi da apostrofi, mentre le stringhe usano le virgolette doppie. Come Usare le Variabili char Una volta dichiarata una variabile di tipo char, possiamo utilizzarla in vari modi. Ad esempio, possiamo stamparla a schermo oppure utilizzarla in condizioni logiche. Ecco un semplice esempio di utilizzo: char carattere = 'C'; Console. WriteLine(carattere); In questo caso, il carattere 'C' verrà stampato sullo schermo. Un'altra operazione interessante è confrontare i caratteri. In C#, i caratteri possono essere confrontati direttamente: char c1 = 'A'; char c2 = 'B'; if (c1 < c2) { Console. WriteLine($"{c1} viene prima di {c2} nell'alfabeto. "); } Il confronto tra caratteri avviene basandosi sul loro valore numerico Unicode. Il Codice Unicode Ogni carattere ha un valore numerico che corrisponde al suo codice Unicode. Questo significa che ogni carattere è rappresentato da un numero che C# può interpretare. Possiamo dichiarare un carattere utilizzando il suo codice Unicode direttamente, preceduto dal prefisso \u: char simboloCuore = '\u2665'; // Codice Unicode per il simbolo del cuore ♥ Console. WriteLine(simboloCuore); Questo codice stampa il simbolo del cuore sullo schermo. Il sistema Unicode è molto potente perché ti permette di lavorare con migliaia di simboli, inclusi caratteri di lingue non latine, simboli matematici e altro ancora. Considerazioni Finali Abbiamo esplorato le basi dei caratteri in C#, partendo dalla loro dichiarazione fino alla loro rappresentazione con Unicode. La gestione dei caratteri è un aspetto cruciale per molti tipi di applicazioni, soprattutto quando si ha a che fare con testi e stringhe. Comprendere come funzionano i caratteri ti aiuterà a migliorare la tua capacità di scrivere codice più chiaro ed efficiente in C#. --- ### Input e Output in C# - Published: 2025-01-16 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/input-e-output/ - Categorie: C Sharp - Tag: Concetti fondamentali Quando si inizia a programmare in C#, una delle prime cose da imparare è come gestire l'input e l'output. Questo è fondamentale per poter interagire con l'utente di un programma. In questa guida, ti mostrerò come utilizzare i comandi più comuni per l'input e l'output in C#, con esempi pratici. Output con Console. Write e Console. WriteLine Per visualizzare del testo o dei numeri a schermo, possiamo utilizzare due comandi molto semplici: Console. Write e Console. WriteLine. Console. Write stampa il testo o il valore senza andare a capo. Console. WriteLine, invece, stampa il testo o il valore e poi va a capo automaticamente. Ecco un esempio di codice che mostra la differenza tra i due comandi: Console. Write("Questo testo non va a capo. "); Console. WriteLine("Questo testo, invece, andrà a capo. "); Console. Write("Vedrai questo sulla stessa linea del primo testo. "); In questo esempio, noterai che la differenza principale è che Console. WriteLine aggiunge un salto di linea dopo aver visualizzato il testo. Input dell’Utente Per poter ricevere un input dall'utente, in C# si utilizza il comando Console. ReadLine. Questo permette di leggere una stringa di testo inserita dall'utente e di salvarla in una variabile. Ad esempio, possiamo chiedere all'utente di inserire il proprio nome e poi stampare un messaggio di saluto utilizzando l'output. Ecco un esempio: Console. WriteLine("Inserisci il tuo nome:"); // Legge l'input dell'utente string nome = Console. ReadLine; Console. WriteLine("Ciao, " + nome + "! "); In questo codice, Console. ReadLine aspetta che l'utente inserisca un valore e prema il tasto invio. Il valore viene poi salvato nella variabile nome, e successivamente usato per visualizzare un messaggio di benvenuto. Esempio Mettiamo tutto insieme in un esempio pratico. Questo programma chiederà all'utente di inserire il proprio nome e la propria età, e poi restituirà un messaggio personalizzato. // Legge il nome dell'utente Console. WriteLine("Inserisci il tuo nome:"); string nome = Console. ReadLine; // Legge l'età dell'utente Console. WriteLine("Inserisci la tua età:"); string eta = Console. ReadLine; Console. WriteLine("Ciao " + nome + ", hai " + eta + " anni. "); Il programma, utilizzando sia Console. WriteLine che Console. ReadLine, permette di interagire con l'utente in modo semplice e diretto. L'input e l'output in C# sono due concetti essenziali per scrivere programmi interattivi. Con Console. Write, Console. WriteLine e Console. ReadLine, puoi facilmente creare applicazioni che comunicano con l'utente. --- ### Casting in C# > Utilizza il casting implicito e esplicito in C# per convertire i dati da un formato all'altro in modo preciso ed efficiente. - Published: 2025-01-14 - Modified: 2025-01-28 - URL: https://www.gedemy.it/documentazione/csharp/casting/ - Categorie: C Sharp - Tag: Concetti fondamentali La conversione di tipi o casting è uno degli aspetti più importanti da comprendere quando si lavora con il linguaggio C#, soprattutto se sei un principiante. In questo articolo, ti guiderò attraverso cosa significa convertire i tipi di dati, perché è necessario e come farlo correttamente in C#. Cos’è la conversione tra tipi? La conversione tra tipi, chiamata anche casting, è il processo attraverso il quale un tipo di dato viene convertito in un altro. In C#, ci sono diverse situazioni in cui potresti voler convertire un tipo in un altro, per esempio da un intero a un decimale o da un oggetto a una stringa. Perché utilizzare la conversione di tipi? In C#, i tipi di dati sono fortemente tipizzati, il che significa che ogni variabile deve essere dichiarata con un tipo specifico. Tuttavia, in molte situazioni potresti dover lavorare con diversi tipi di dati, e la conversione diventa necessaria. Utilizzare correttamente la conversione di tipi ti permette di evitare errori e di gestire i dati in modo efficace. Ad esempio, se hai una variabile intera e vuoi effettuare un calcolo che coinvolge un numero decimale, dovrai convertire quell’intero in un decimale per evitare perdita di dati e ottenere il risultato corretto. Conversione Implicita e Esplicita In C#, ci sono due tipi principali di conversione: la conversione implicita e la conversione esplicita. Questi due tipi di conversione si differenziano per il modo in cui il compilatore gestisce la conversione tra i tipi. Conversione implicita La conversione implicita è quella che il compilatore gestisce automaticamente per te, senza che tu debba specificare nulla. Questo accade quando la conversione è sicura e non comporta perdita di dati. Di solito si verifica tra tipi compatibili, come tra un intero e un decimale. Esempio: int numeroIntero = 10; double numeroDecimale = numeroIntero; // Conversione implicita In questo caso, C# converte automaticamente l'intero in un decimale perché non c'è rischio di perdita di dati. Conversione esplicita La conversione esplicita, invece, richiede che tu indichi esplicitamente al compilatore che desideri effettuare la conversione. Questo è necessario quando c'è una possibile perdita di dati, come convertire un decimale in un intero. Esempio: double numeroDecimale = 9. 99; int numeroIntero = (int)numeroDecimale; // Conversione esplicita In questo caso, la parte decimale del numero viene scartata, quindi il valore finale della variabile sarà 9. Esempi di Conversione di Tipi Vediamo adesso qualche esempio pratico che illustra meglio come funzionano le conversioni implicite ed esplicite in C#. Conversione Implicita int numero = 100; long numeroGrande = numero; // Conversione implicita da int a long float numeroDecimale = numero; // Conversione implicita da int a float In questi esempi, le conversioni sono sicure e vengono gestite automaticamente dal compilatore perché non c’è rischio di perdita di dati. Conversione Esplicita double numeroDecimale = 123. 45; int numeroIntero = (int)numeroDecimale; // Conversione esplicita da double a int In questo esempio, la conversione deve essere effettuata esplicitamente con il casting, perché la parte decimale viene persa. Conclusioni La conversione di tipi in C#... --- ### Enumeratori in C# - Published: 2025-01-13 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/enumeratori/ - Categorie: C Sharp - Tag: Concetti fondamentali Gli enumeratori, conosciuti anche come enumerazioni o enum, sono una funzionalità molto utile in C#. Permettono di definire un gruppo di costanti con nomi significativi che rendono il codice più leggibile e comprensibile, specialmente quando si lavora con insiemi di valori limitati e predefiniti. Sintassi La sintassi per dichiarare un enum è semplice. Si utilizza la parola chiave enum seguita dal nome dell'enumerazione e dall'elenco dei valori che essa può assumere. Ecco un esempio: enum GiorniDellaSettimana { Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato, Domenica } In questo esempio, GiorniDellaSettimana è un enum che rappresenta i giorni della settimana. Ogni valore all'interno dell'enum ha un corrispondente valore intero che parte da 0 per Lunedì e prosegue per gli altri giorni. Assegnazione di valori alle costanti Di default, i valori assegnati agli elementi dell'enum partono da 0, ma puoi assegnare valori personalizzati. Questo può essere utile quando desideri che le costanti abbiano un significato numerico specifico. enum LivelliDiAccesso { Utente = 1, Moderatore = 2, Amministratore = 3 } In questo esempio, abbiamo definito un enum chiamato LivelliDiAccesso, in cui Utente ha il valore 1, Moderatore ha il valore 2 e Amministratore ha il valore 3. Utilizzo delle enum Gli enum possono essere utilizzati per migliorare la leggibilità del codice, rendendo più chiaro quali valori rappresentano determinate condizioni o stati. Ecco un esempio di come utilizzare un enum in un'istruzione if: LivelliDiAccesso livello = LivelliDiAccesso. Amministratore; if (livello == LivelliDiAccesso. Amministratore) { Console. WriteLine("Accesso amministratore garantito. "); } In questo esempio, se il livello di accesso dell'utente è impostato su Amministratore, verrà stampato un messaggio di conferma. Confronto tra valori numerici Essendo ogni elemento dell'enumeratore associato a un valore numerico, è possibile confrontare un enum direttamente con i numeri interi. Tuttavia, questo è generalmente sconsigliato poiché riduce la leggibilità del codice. Ecco un esempio: LivelliDiAccesso livello = LivelliDiAccesso. Moderatore; int livelloConvertito = (int)livello; if (livelloConvertito == 2) { Console. WriteLine("Sei un moderatore. "); } In questo caso, convertiamo l'enum LivelliDiAccesso in un valore intero per confrontarlo direttamente con un numero. Convertire gli enum in stringhe Un altro vantaggio degli enum è la possibilità di convertirli facilmente in stringhe per visualizzarli o gestirli in altri modi. La conversione da enum a stringa è semplice: LivelliDiAccesso livello = LivelliDiAccesso. Utente; string nomeLivello = livello. ToString; // Stampa "Utente" Console. WriteLine(nomeLivello); È anche possibile convertire una stringa in un enum, utilizzando il metodo Enum. Parse: string input = "Amministratore"; LivelliDiAccesso livello = (LivelliDiAccesso)Enum. Parse(typeof(LivelliDiAccesso), input); // Stampa "Amministratore" Console. WriteLine(livello); Conclusione Gli enum in C# sono uno strumento potente che consente di gestire in modo più ordinato insiemi di valori costanti, migliorando la leggibilità e la manutenibilità del codice. Grazie alla loro capacità di essere utilizzati come costanti numeriche e di essere facilmente convertiti in stringhe, rappresentano una scelta ideale per molti scenari di programmazione. --- ### Lavorare con i numeri in C# - Published: 2025-01-13 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/lavorare-con-numeri/ - Categorie: C Sharp - Tag: Concetti fondamentali Quando si inizia a programmare in C#, una delle prime cose che impariamo è come lavorare con i numeri. In questo articolo, esploreremo i concetti fondamentali relativi ai numeri in C# e vedremo alcuni esempi di codice pratico. Che tu sia alle prime armi o stia cercando di approfondire le tue conoscenze, questa guida ti sarà utile. Diversi tipi di dati numerici In C#, esistono diversi tipi di dati numerici, ciascuno con caratteristiche uniche. Ecco i principali: int: Utilizzato per rappresentare numeri interi (es. 1, 100, -25). double: Utilizzato per rappresentare numeri con la virgola (es. 1. 5, -3. 14). float: Simile a double, ma con una precisione minore. decimal: Usato per valori numerici ad alta precisione, tipicamente per valori monetari. Ecco un esempio di come dichiarare e utilizzare questi tipi di dati: // Dichiarazione di variabili numeriche int numeroIntero = 10; double numeroVirgola = 3. 14; float numeroVirgolaPiccolo = 2. 5F; decimal numeroPreciso = 99. 99M; Operatori aritmetici ed espressioni Gli operatori aritmetici permettono di eseguire calcoli sui numeri. I principali operatori aritmetici in C# sono: + (Addizione) - (Sottrazione) * (Moltiplicazione) / (Divisione) % (Modulo - restituisce il resto della divisione) Ecco un esempio di utilizzo degli operatori aritmetici: // Esempio di operatori aritmetici int a = 5; int b = 2; int somma = a + b; // 7 int differenza = a - b; // 3 int prodotto = a * b; // 10 int quoziente = a / b; // 2 int resto = a % b; // 1 Operatori di assegnazione Gli operatori di assegnazione consentono di aggiornare il valore di una variabile in base a un'operazione. Il più comune è =, ma ne esistono anche altri combinati con gli operatori aritmetici: +=: Somma e assegna -=: Sottrae e assegna *=: Moltiplica e assegna /=: Divide e assegna %=: Calcola il modulo e assegna Ecco un esempio di come funzionano: // Esempio di operatori di assegnazione int x = 10; // x ora vale 15 x += 5; // x ora vale 12 x -= 3; // x ora vale 24 x *= 2; // x ora vale 6 x /= 4; // x ora vale 0 x %= 3; Incremento e decremento Gli operatori di incremento (++) e decremento (--) sono usati per aumentare o diminuire il valore di una variabile di 1. Esistono in due forme: prefisso e postfisso. Prefisso (++x / --x): Incrementa o decrementa il valore prima di utilizzarlo. Postfisso (x++ / x--): Utilizza il valore, poi lo incrementa o decrementa. Ecco un esempio: // Esempio di incremento e decremento int y = 5; // y ora vale 6 y++; // y ora vale 5 --y; Lavorare con i numeri in C# è essenziale per qualsiasi programmatore. Conoscere i tipi di dati numerici, gli operatori aritmetici e gli operatori di assegnazione ti permetterà di scrivere codice più efficiente e leggibile. Ricorda di esercitarti per padroneggiare queste basi, così da poterti concentrare su concetti più avanzati man mano che prosegui nel... --- ### Tipi di dati in C# - Published: 2025-01-12 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/tipi-di-dati/ - Categorie: C Sharp - Tag: Concetti fondamentali Un tipo di dato è una caratteristica fondamentale di ogni linguaggio di programmazione, inclusa C#. In parole semplici, un tipo di dato indica al computer quale tipo di informazioni verrà memorizzato in una variabile. Ad esempio, se vogliamo memorizzare un numero intero o un testo, dovremo utilizzare tipi di dati diversi. Comprendere i tipi di dati è importante per scrivere codice che funzioni correttamente e in modo efficiente. Perché utilizzarli? L'utilizzo dei tipi di dati permette al compilatore di sapere come trattare i dati e quanto spazio di memoria riservare per loro. Questo aiuta a prevenire errori, migliorare la performance del programma e rendere il codice più chiaro. Ad esempio, se utilizziamo un tipo di dato specifico per i numeri interi, il compilatore saprà che non deve allocare memoria per informazioni più complesse, come i numeri decimali o le stringhe. Tipi di dati in C# C# offre diversi tipi di dati che possiamo utilizzare a seconda delle nostre esigenze. Ecco alcuni dei più comuni: Tipi di dati primitivi int: usato per i numeri interi. Esempio: 1, 2, -5 float: usato per i numeri a virgola mobile (decimali). Esempio: 3. 14 double: simile a float, ma con più precisione. bool: rappresenta un valore booleano, che può essere true o false. char: memorizza un singolo carattere. Esempio: 'A' string: memorizza una sequenza di caratteri, come un testo. Esempio: "Ciao, mondo! " Tipi di dati derivati array: una collezione di elementi dello stesso tipo, come una lista di numeri. enum: una raccolta di costanti, usato per rappresentare un insieme di valori correlati. Tipi di dati complessi class: un blueprint per creare oggetti complessi che possono contenere proprietà e metodi. struct: simile a una class, ma utilizzato per dati leggeri e temporanei. Conversioni tra tipi C# permette anche di convertire da un tipo di dato a un altro. Ad esempio, possiamo convertire un int in un float, o viceversa, se necessario. Esempi di utilizzo Ecco un semplice esempio in cui utilizziamo diversi tipi di dati in C#: using System; class Program { static void Main { // Numero intero int numeroIntero = 10; // Numero decimale float numeroDecimale = 5. 75f; // Valore booleano bool isTrue = true; // Singolo carattere char carattere = 'A'; // Stringa di testo string testo = "Ciao, mondo! "; // Output dei valori Console. WriteLine("Intero: " + numeroIntero); Console. WriteLine("Decimale: " + numeroDecimale); Console. WriteLine("Booleano: " + isTrue); Console. WriteLine("Carattere: " + carattere); Console. WriteLine("Stringa: " + testo); } } In questo esempio, dichiariamo variabili di diversi tipi di dati e le stampiamo a schermo. --- ### Commenti in C# > Scopri l'importanza dei commenti in C# e come utilizzarli per semplificare la manutenzione del tuo codice. - Published: 2025-01-11 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/commenti/ - Categorie: C Sharp - Tag: Concetti fondamentali Nel mondo della programmazione, i commenti rappresentano uno strumento fondamentale per rendere il codice più leggibile e comprensibile, sia per chi lo scrive, sia per chi dovrà eventualmente modificarlo o ampliarlo in futuro. In questo articolo, scopriremo cosa sono i commenti in C#, le diverse tipologie e perché sono così importanti. Cos’è un Commento? Un commento è una porzione di testo inserita nel codice che non viene eseguita dal compilatore o dall'interprete. Lo scopo di un commento è spiegare il funzionamento del codice o fornire chiarimenti su determinate scelte di programmazione. I commenti aiutano a migliorare la leggibilità del codice e facilitano la collaborazione in team. In C#, i commenti possono essere inseriti ovunque nel codice e servono solo a chi legge o modifica il programma. Non influiscono minimamente sulle prestazioni del software. Tipologie di Commenti In C#, esistono principalmente due tipologie di commenti: i commenti su una singola linea e i commenti su più linee. Vediamo nel dettaglio come si utilizzano. Commenti su una Singola Linea I commenti su una singola linea sono utili quando si vuole annotare una breve spiegazione o una nota accanto a una specifica riga di codice. In C#, per creare un commento su una singola linea, basta anteporre due barre oblique (//) alla riga che si desidera commentare. Esempio: In questo caso, tutto ciò che segue // fino alla fine della riga viene ignorato dal compilatore. Commenti su Più Linee I commenti su più linee sono utili quando è necessario aggiungere spiegazioni più dettagliate o scrivere note più lunghe. Per creare un commento su più linee in C#, si utilizzano i simboli /* all'inizio del commento e */ alla fine. Esempio: Tutto il testo compreso tra /* e */ verrà ignorato dal compilatore, indipendentemente da quante righe occupa. L’Importanza dei Commenti L'utilizzo dei commenti in C# (e in qualsiasi altro linguaggio di programmazione) è essenziale per una serie di motivi: Facilitano la comprensione: Se un programma è complesso, i commenti aiutano a spiegare il funzionamento delle varie parti, rendendolo più comprensibile sia per chi lo scrive sia per chi lo leggerà in seguito. Collaborazione: In un progetto di gruppo, i commenti rendono più facile la collaborazione tra programmatori, poiché tutti possono capire rapidamente il funzionamento del codice scritto da altri membri del team. Manutenzione: A distanza di tempo, è facile dimenticare il motivo di alcune scelte di programmazione. I commenti possono aiutare i programmatori (inclusi se stessi) a ricordare perché è stato scritto in un certo modo. Tuttavia, è importante non abusare dei commenti. Un codice ben scritto dovrebbe essere comprensibile anche senza eccessive spiegazioni. I commenti devono essere utilizzati per chiarire aspetti specifici o complessi, non per descrivere l'ovvio. Esempio Pratico: Commenti in un Programma Vediamo un esempio pratico che mostra come utilizzare i commenti in un programma C#. Immaginiamo di avere un semplice programma che somma due numeri e mostra il risultato. In questo esempio, abbiamo utilizzato commenti su una singola linea per spiegare brevemente ogni passaggio del programma. Grazie ai commenti,... --- ### Costanti in C# > Scopri cosa sono le costanti in C# e come utilizzarle nel tuo codice per migliorare leggibilità e prestazioni. - Published: 2025-01-11 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/costanti/ - Categorie: C Sharp - Tag: Concetti fondamentali Una costante in C# è un valore che non cambia mai durante l'esecuzione del programma. Questo significa che, una volta assegnato un valore a una costante, quel valore resterà invariato per tutto il tempo di vita dell'applicazione. Le costanti sono utili per rappresentare informazioni che devono rimanere fisse, come valori matematici o parametri di configurazione. Ad esempio, il numero Pi Greco (3. 14159... ) è un perfetto candidato per essere una costante, poiché non cambierà mai. Dichiarazione di costanti In C#, per dichiarare una costante, si utilizza la parola chiave const. Quando si dichiara una costante, è necessario assegnare immediatamente un valore e specificare il suo tipo. Ecco un esempio di come dichiarare una costante: const double PiGreco = 3. 14159; In questo esempio, abbiamo dichiarato una costante chiamata PiGreco di tipo double, assegnandole il valore 3. 14159. Da questo momento in poi, non sarà possibile modificare il valore di PiGreco nel codice. Utilizzo di costanti Le costanti sono particolarmente utili quando vogliamo evitare l'uso di "numeri magici" o stringhe ripetute nel codice. I "numeri magici" sono valori che compaiono senza un contesto chiaro, rendendo il codice meno leggibile e più difficile da mantenere. Utilizzando le costanti, possiamo migliorare la leggibilità e la manutenibilità del nostro codice. Ecco un esempio di utilizzo di una costante in un'operazione matematica: const double PiGreco = 3. 14159; double areaCerchio = PiGreco * (raggio * raggio); In questo caso, abbiamo usato la costante PiGreco per calcolare l'area di un cerchio in modo chiaro e leggibile. Benefici delle costanti Utilizzare le costanti nel codice offre numerosi vantaggi, soprattutto per chi è alle prime armi: Leggibilità: Le costanti danno un nome significativo ai valori che utilizzano, rendendo il codice più facile da capire. Evita errori: Dato che le costanti non possono essere modificate dopo la dichiarazione, riducono il rischio di errori accidentali. Manutenibilità: Se un valore deve cambiare, è sufficiente modificarlo una volta nella dichiarazione della costante, senza dover cercare e sostituire il valore in tutto il codice. Ottimizzazione: Le costanti sono valutate al momento della compilazione, il che può migliorare le prestazioni del programma. I nomi da usare per le costanti: migliori pratiche Quando si scelgono i nomi per le costanti, è importante seguire alcune migliori pratiche per garantire un codice leggibile e mantenibile. Nomi in maiuscolo: È una convenzione comune utilizzare nomi in MAIUSCOLO per le costanti, con le parole separate da underscore (_). Ad esempio: const int MAX_NUMERO_UTENTI = 100; Nomi descrittivi: Scegli nomi che descrivano chiaramente cosa rappresenta la costante. Evita nomi troppo generici come VALORE1 o CONSTANTE, preferendo invece nomi più esplicativi, come MAX_TEMPO_ATTESA. Non abusare delle costanti: Non tutte le variabili devono essere costanti. Utilizza le costanti solo per valori che sono veramente immutabili e significativi all'interno del contesto dell'applicazione. Seguendo queste linee guida, potrai scrivere codice più chiaro, organizzato e facile da mantenere nel tempo. --- ### Variabili in C# > Scopri come dominare le variabili in C# con la nostra guida esauriente. Impara a dichiarare, inizializzare e utilizzare variabili efficacemente per ottimizzare i tuoi progetti. - Published: 2025-01-10 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/variabili/ - Categorie: C Sharp - Tag: Concetti fondamentali Le variabili sono uno dei concetti fondamentali della programmazione in C# e in qualsiasi altro linguaggio. Se sei alle prime armi, comprendere come funzionano le variabili è essenziale per scrivere codice efficace e leggibile. In questa guida, esploreremo cosa sono le variabili, come dichiararle e utilizzarle, e quali sono le migliori pratiche per nominarle correttamente. Cos’è una Variabile? Una variabile è un contenitore che memorizza temporaneamente un valore durante l'esecuzione di un programma. Questo valore può essere modificato o aggiornato in base alle esigenze. Ad esempio, potresti usare una variabile per salvare un numero, un testo o un valore booleano (vero o falso). In C#, le variabili devono essere definite con un tipo di dato specifico, che indica il tipo di valore che la variabile può contenere (ad esempio, numeri interi, decimali o stringhe di testo). Dichiarazione, Assegnazione e Inizializzazione Per dichiarare una variabile in C#, devi specificare il tipo di dato seguito dal nome della variabile. Ecco un esempio di dichiarazione di una variabile di tipo intero: int numero; In questo caso, stiamo dicendo al compilatore che la variabile numero può contenere un numero intero. Tuttavia, la variabile al momento della dichiarazione non ha ancora un valore. Assegnazione e inizializzazione di variabili L'assegnazione è l'operazione che permette di dare un valore a una variabile. Nel nostro esempio, possiamo assegnare un valore alla variabile numero con il simbolo di uguale (=): numero = 10; L'inizializzazione, invece, è la combinazione di dichiarazione e assegnazione in un'unica riga: int numero = 10; In questo caso, stiamo dichiarando la variabile e assegnandole un valore nello stesso momento. Dichiarazione di multiple variabili È possibile dichiarare più variabili dello stesso tipo in una singola riga di codice, separandole con una virgola: int a, b, c; In questo caso, abbiamo dichiarato tre variabili a, b e c di tipo intero. Utilizzo di Variabili Una volta che una variabile è stata dichiarata e inizializzata, possiamo utilizzarla nel nostro programma. Ad esempio, possiamo usarla per eseguire calcoli, come sommare due numeri: int somma = numero + 5; In questo esempio, la variabile somma conterrà il risultato dell'addizione tra il valore di numero e 5. Modifica delle Variabili Le variabili in C# possono essere modificate durante l'esecuzione del programma. Ad esempio, possiamo aggiornare il valore di numero assegnandogli un nuovo valore: numero = 20; Ora la variabile numero contiene il valore 20 invece di 10. Questo è utile quando il valore di una variabile cambia in base a determinate condizioni nel codice. Nomenclatura delle Variabili: Migliori Pratiche Una parte importante della scrittura di codice chiaro e leggibile è la scelta dei nomi delle variabili. Ecco alcune migliori pratiche per nominare le variabili in C#: Usa nomi significativi: I nomi delle variabili dovrebbero descrivere chiaramente il loro scopo. Ad esempio, invece di usare nomi come x o y, usa nomi come età o salario. Segui la convenzione camelCase: In C#, è comune utilizzare la notazione camelCase per i nomi delle variabili. Ad esempio, numeroDiElementi o sommaTotale. Evita abbreviazioni non necessarie:... --- ### Sintassi di C# > Scopri la sintassi C# con la nostra guida introduttiva, scrivi il tuo primo programma ‘Hello, World!’ e preparati a eseguire il debugging del tuo primo programma. - Published: 2025-01-09 - Modified: 2025-02-14 - URL: https://www.gedemy.it/documentazione/csharp/sintassi/ - Categorie: C Sharp - Tag: Concetti fondamentali Se sei interessato a imparare la programmazione in C#, sei nel posto giusto! In questo articolo esploreremo i concetti fondamentali della sintassi del linguaggio C#. Partiamo dalle basi per comprendere come funzionano le istruzioni in C# e analizziamo un semplice programma per visualizzare "Hello, World! " su schermo. Che tu sia alle prime armi o stia cercando di approfondire la tua conoscenza, questa guida ti aiuterà a orientarti nella sintassi del linguaggio. Concetto di istruzioni in C# Nel contesto della programmazione, un’istruzione rappresenta un comando o un’operazione specifica che il software è programmato per eseguire. Le istruzioni possono essere paragonate alle singole attività in una lista di cose da fare, con ciascuna che svolge una funzione specifica. In C#, queste istruzioni sono disposte in sequenza e separate da un punto e virgola (;). Ogni volta che il software incontra un punto e virgola, riconosce la fine dell’istruzione corrente e procede con la successiva. Per esempio, prendiamo in considerazione il seguente spezzone di codice: int numero = 9999; string frase = "Ciao e benvenuto su Gedemy! "; In questo caso, abbiamo due istruzioni distinte: la prima assegna il valore 9999 alla variabile numero, la seconda invece assegna una stringa alla variabile frase. Esempio: "Hello, World! " in C# Un classico punto di partenza per chiunque stia imparando un nuovo linguaggio di programmazione è creare un programma che mostri a schermo la frase "Hello, World! ". Vediamo come scrivere un programma del genere in C#. using System; class Program { static void Main(string args) { Console. WriteLine("Hello, World! "); } } Passaggio 1: Creare il Programma using System; – Questa riga include la libreria System, che contiene metodi essenziali come Console. WriteLine, utilizzato per mostrare il messaggio sullo schermo. class Program – Qui dichiariamo una classe chiamata Program. In C#, tutto il codice deve essere contenuto all'interno di una classe. static void Main(string args) – Questa è la funzione principale del programma. È il punto di ingresso dove il programma inizia a eseguire il codice. Console. WriteLine("Hello, World! "); – Questa riga invia il testo "Hello, World! " alla console. Passaggio 2: Verifica l’Installazione Prima di eseguire il programma, è importante assicurarsi che l'ambiente di sviluppo sia configurato correttamente. Se stai usando Visual Studio, dovresti già avere tutto il necessario. Tuttavia, se stai utilizzando un altro ambiente o il terminale, segui questi passaggi per verificare l'installazione di C#: Apri il Prompt dei comandi o il Terminale. Digita dotnet --version e premi Invio. Se il comando restituisce un numero di versione, significa che il . NET SDK è installato correttamente e sei pronto per scrivere il tuo primo programma in C#. Se non hai ancora installato il . NET SDK, puoi scaricarlo direttamente dal sito ufficiale di . NET. Conclusione Scrivere il tuo primo programma in C# è un'ottima introduzione alla sintassi e alla struttura del linguaggio. Conoscere i concetti base delle istruzioni e verificare che il tuo ambiente di sviluppo sia correttamente configurato sono i primi passi fondamentali per diventare un programmatore... --- ### Guida completa all'installazione di C# su Windows, macOS e Linux - Published: 2025-01-08 - Modified: 2025-03-05 - URL: https://www.gedemy.it/documentazione/csharp/installazione/ - Categorie: C Sharp - Tag: Introduzione In questo articolo, ti spiegheremo passo dopo passo come installare C# su Windows, MacOS e Linux. Non importa quale sistema operativo utilizzi, seguendo le istruzioni, sarai pronto a creare il tuo primo progetto C# in pochi minuti. Passaggio 1: Scarica e installa . NET SDK Per iniziare, avrai bisogno di scaricare e installare il . NET SDK, che include tutto ciò che serve per scrivere e eseguire programmi in C#. Vai sul sito ufficiale di . NET e seleziona la versione appropriata per Windows. Segui le istruzioni del programma di installazione. Passaggio 2: Verifica l’installazione Dopo aver completato l'installazione, apri il prompt dei comandi e digita il seguente comando per verificare che tutto sia stato configurato correttamente: dotnet --version Se tutto funziona, dovresti vedere la versione del . NET SDK installato. Passaggio 3: Installa Visual Studio Code (facoltativo ma consigliato) Per avere un ambiente di sviluppo completo, è consigliato installare Visual Studio Code, un editor di codice gratuito e molto potente. Vai sul sito ufficiale di Visual Studio Code e scarica la versione per Windows. Successivamente, installa l'estensione C# per Visual Studio Code per migliorare il supporto a C#. 2. Installazione di C# su MacOS Passaggio 1: Scarica e installa . NET SDK Anche su MacOS dovrai iniziare scaricando e installando il . NET SDK. Vai sul sito ufficiale di . NET e scarica la versione per MacOS. Dopo il download, apri il file e segui le istruzioni per completare l'installazione. Passaggio 2: Verifica l’installazione Per verificare che tutto sia stato installato correttamente, apri il Terminale e digita: dotnet --version Se tutto è andato a buon fine, vedrai la versione del . NET SDK. Passaggio 3: Installa Visual Studio Code Per un ambiente di sviluppo completo, ti consiglio di installare Visual Studio Code. Scarica l'editor di codice dal sito ufficiale di Visual Studio Code e installa l'estensione C# per migliorare il supporto per il linguaggio. 3. Installazione di C# su Linux Passaggio 1: Scarica e installa . NET SDK Per installare il . NET SDK su Linux, dovrai utilizzare il terminale. Vai alla pagina ufficiale di Microsoft per trovare le istruzioni specifiche per la tua distribuzione (Ubuntu, Fedora, etc. ). Una volta trovata la tua distribuzione, segui i comandi di installazione forniti. Passaggio 2: Verifica l’installazione Una volta completata l'installazione, puoi verificare se il tutto è configurato correttamente eseguendo il comando: dotnet --version Se tutto è corretto, dovresti vedere la versione del . NET SDK. Passaggio 3: Installa Visual Studio Code Visual Studio Code è disponibile anche per Linux. Puoi scaricarlo dal sito ufficiale di Visual Studio Code. Successivamente, apri Visual Studio Code e installa l'estensione C# per migliorare l'ambiente di sviluppo. 4. Creare il primo progetto C# Passaggio 1: Creare un progetto console Ora che hai installato tutto, è il momento di creare il tuo primo progetto C#. Apri il terminale o il prompt dei comandi e digita: dotnet new console -n PrimoProgetto Questo creerà un progetto C# base chiamato PrimoProgetto nella directory corrente. Passaggio 2: Eseguire il progetto... --- ### Introduzione a C# > Introduzione a C#, il linguaggio di programmazione di Microsoft, ideale per creare applicazioni desktop, web e giochi. Perfetto per principianti e sviluppatori esperti. - Published: 2024-11-05 - Modified: 2025-01-29 - URL: https://www.gedemy.it/documentazione/csharp/introduzione/ - Categorie: C Sharp - Tag: Introduzione C# (si pronuncia “C sharp”) è uno dei linguaggi di programmazione più diffusi e utilizzati al mondo. Creato da Microsoft all'inizio degli anni 2000, fa parte della famiglia dei linguaggi C ed è noto per la sua semplicità, potenza e versatilità. Se stai cercando di avvicinarti al mondo della programmazione o vuoi espandere le tue competenze, C# è un ottimo punto di partenza. Cos’è C#? C# è un linguaggio di programmazione ad alto livello, orientato agli oggetti, sviluppato per la prima volta da Microsoft come parte del framework . NET. Il suo scopo era quello di creare un linguaggio moderno e semplice, ma al contempo potente, che potesse competere con altri linguaggi come Java e C++. La sua sintassi è simile a quella di Java e C++, ma è progettato per essere più intuitivo e facile da imparare, soprattutto per i nuovi programmatori. Essendo orientato agli oggetti, C# permette di strutturare il codice in classi e oggetti, rendendolo più organizzato e facile da mantenere. Inoltre, grazie alla sua integrazione con il framework . NET, C# è in grado di operare su una vasta gamma di piattaforme, inclusi desktop, web e dispositivi mobili. Popolarità di C# C# è diventato estremamente popolare grazie alla sua versatilità e all'ampio supporto da parte di Microsoft. È utilizzato in una varietà di settori, dalla creazione di applicazioni aziendali alla programmazione di giochi. Un altro fattore che ha contribuito alla sua popolarità è il potente ambiente di sviluppo integrato (IDE) di Microsoft, Visual Studio, che rende la scrittura di codice in C# un’esperienza fluida e produttiva. Inoltre, la comunità di sviluppatori C# è enorme e attiva. Ci sono innumerevoli risorse online, forum, tutorial e documentazione, il che rende più facile per i nuovi arrivati imparare e trovare soluzioni ai loro problemi. Utilizzo di C# C# viene utilizzato in una vasta gamma di applicazioni, grazie alla sua compatibilità con il framework . NET. Ecco alcuni degli utilizzi più comuni: Sviluppo di Applicazioni Desktop: Grazie a Windows Forms e WPF, C# è una scelta ideale per la creazione di applicazioni desktop per il sistema operativo Windows. Sviluppo Web: Con ASP. NET, è possibile creare siti web e applicazioni web dinamiche, sicure e scalabili. Molti dei siti web aziendali sono costruiti utilizzando C# e ASP. NET. Sviluppo di Videogiochi: Uno degli utilizzi più conosciuti di C# è nello sviluppo di videogiochi, grazie all'integrazione con Unity, uno dei motori di gioco più utilizzati al mondo. Molti giochi 2D e 3D sono creati usando Unity e C#. Applicazioni Cloud: Con l'integrazione del cloud computing tramite Microsoft Azure, C# è perfetto per creare applicazioni scalabili e basate su cloud. Applicazioni Mobile: Grazie a Xamarin, una piattaforma che consente di creare applicazioni per Android e iOS utilizzando C#, gli sviluppatori possono creare app mobili cross-platform senza dover imparare linguaggi separati per ciascuna piattaforma. Aziende e Software Famosi che Utilizzano C# C# è stato scelto da molte grandi aziende grazie alla sua efficienza e flessibilità. Alcuni esempi di software e aziende che utilizzano C#... --- ## Corsi ### Design Pattern per videogiochi > Architettura di giochi avanzata: Esplora i design pattern per migliorare l’ottimizzazione e la scalabilità dei tuoi videogiochi. - Published: 2024-03-21 - Modified: 2024-11-11 - URL: https://www.gedemy.it/corsi/design-pattern-per-videogiochi/ - Tag: Coming Soon - Corso Categorie: Game Programmer, Avanzato, Coming Soon - Corso Tags: Coming Soon --- ### Corso Fondamenti di Python > Scopri i fondamenti di Python, uno dei linguaggi più popolari del mondo, con il nostro corso. Iscriviti e provalo gratis. - Published: 2024-03-20 - Modified: 2024-04-20 - URL: https://www.gedemy.it/corsi/corso-fondamenti-di-python/ - Tag: Coming Soon - Corso Categorie: Coming Soon, Game Programmer, Principiante - Corso Tags: Coming Soon --- ### Blender Masterclass 2 > Unisciti alla nostra Masterclass avanzata di Blender su Gedemy e impara a creare paesaggi alieni dettagliati con tecniche professionali di modellazione, texturing, e rendering. Perfetto per artisti 3D intermedi e avanzati. - Published: 2024-01-15 - Modified: 2024-11-11 - URL: https://www.gedemy.it/corsi/corso-online-blender-avanzato-masterclass-2/ - Tag: Coming Soon - Corso Categorie: 3D Artist, Coming Soon, Intermedio - Corso Tags: Coming Soon --- ### Blender Masterclass 1 > Scopri le tecniche di modellazione 3D con il nostro Corso Blender Online. Iscriviti ora e inizia a trasformare la tua visione in realtà! - Published: 2024-01-14 - Modified: 2024-04-20 - URL: https://www.gedemy.it/corsi/corso-blender-online-masterclass-1/ - Tag: Coming Soon - Corso Categorie: 3D Artist, Coming Soon, Intermedio - Corso Tags: Coming Soon --- ### Corso di programmazione in C++ > Iscriviti al nostro corso di programmazione C++ online e diventa esperto in C++. Scopri le basi e le tecniche avanzate con Gedemy. - Published: 2023-12-06 - Modified: 2024-12-30 - URL: https://www.gedemy.it/corsi/corso-c-plus-plus/ - Corso Categorie: Game Programmer, Principiante --- ### Corso introduttivo al Game Design > Esplora il mondo del game design con il nostro corso introduttivo. Impara i pilastri del game design e crea esperienze di gioco significative su Gedemy. - Published: 2023-09-15 - Modified: 2024-12-18 - URL: https://www.gedemy.it/corsi/introduzione-al-game-design/ - Corso Categorie: Game Designer, Principiante --- ### Corso di Disegno Manga Online > Adori il manga, gli anime e il fumetto giapponese? Impara le tecniche fondamentali e crea il tuo stile unico con il nostro Corso Online di Disegno Manga. - Published: 2022-10-11 - Modified: 2024-12-12 - URL: https://www.gedemy.it/corsi/corso-di-disegno-manga/ - Corso Categorie: Concept Artist, Avanzato - Corso Tags: Coming Soon --- ### Corso Tecnico di ZBrush > Impara Zbrush da zero con il nostro corso completo. Dalle basi alle tecniche avanzate, diventa un maestro della modellazione 3D. - Published: 2022-09-10 - Modified: 2024-03-21 - URL: https://www.gedemy.it/corsi/corso-tecnico-zbrush/ - Corso Categorie: 3D Artist, Intermedio --- ### Gestione degli input con Unity > Scopri come sfruttare al meglio il nuovo Input System di Unity in questo corso online tenuto da Mirko R. Aiello all'interno di Gedemy. - Published: 2022-09-05 - Modified: 2024-12-30 - URL: https://www.gedemy.it/corsi/il-nuovo-sistema-di-input-di-unity/ - Corso Categorie: Game Programmer, Intermedio --- ### Corso di Disegno Cartoon per fumetti > Iscriviti al nostro corso di disegno cartoon e porta la tua creatività a un nuovo livello. - Published: 2022-09-04 - Modified: 2024-11-11 - URL: https://www.gedemy.it/corsi/corso-di-disegno-cartoon/ - Corso Categorie: Concept Artist, Intermedio --- ### Corso completo Unity 2D > Partecipa al nostro corso Unity 2D su Gedemy e impara a creare il tuo primo videogioco 2D. Guida completa da zero per aspiranti sviluppatori. - Published: 2022-09-03 - Modified: 2024-12-30 - URL: https://www.gedemy.it/corsi/corso-unity-2d-creazione-videogiochi/ - Corso Categorie: Game Programmer, Principiante --- ### Corso di Disegno Digitale > Il corso di disegno digitale è la risorsa perfetta per chi vuole migliorare le proprie abilità artistiche. Impara a creare illustrazioni e disegni sorprendenti. - Published: 2022-09-02 - Modified: 2024-11-11 - URL: https://www.gedemy.it/corsi/introduzione-al-disegno-digitale/ - Corso Categorie: Concept Artist, Principiante --- ### Corso di Programmazione C# > Vuoi imparare a realizzare programmi in C# complessi utilizzando la Programmazione ad Oggetti? Inizia adesso a meno di un euro al giorno. - Published: 2022-09-01 - Modified: 2024-11-11 - URL: https://www.gedemy.it/corsi/corso-completo-c-sharp/ - Corso Categorie: Game Programmer, Principiante --- ### Ruoli e fasi dello sviluppo di videogiochi > Immergiti nel mondo dello sviluppo di videogiochi con il nostro corso introduttivo. Esplora i ruoli chiave, i processi di produzione e le fasi dalla pre-produzione alla post-produzione per trasformare un'idea in un gioco di successo. - Published: 2020-09-01 - Modified: 2024-11-19 - URL: https://www.gedemy.it/corsi/introduzione-allo-sviluppo-di-videogiochi/ - Corso Categorie: 3D Artist, Concept Artist, Game Designer, Game Programmer, Gratuito, Principiante ---