Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Progetto di Intelligenza artificiale

    Buona sera! per l'esame di intelligenza artificiale una delle soluzioni è creare un programma che implementi dei concetti di ricerca studiati durante il corso di studio. A me sarebbe piaciuto tantissimo fare un giochino, anche stupido e ho pensato a un'auto che schiva da sola gli ostacoli messi da un utente oppure un forza 4.... DOMANDA: dato che ho sempre programmato in c o java che non mi sembra si sposino facilmente con l'implementazioni di effetti grafici o scene di movimento cosa mi consigliate? è un progetto troppo lungo?? pensavo al linguaggio flash o qualcosa del genere, voci dicono Lisp... qualcuno con un minimo di esperinza può guidarmi per i primi passi?

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Ma stai pensando ad un videogame? O a un modellino di auto che schiva gli ostacoli attraverso sensori?
    Puoi pure usare Java per la grafica se ti basta il 2D o la visione isometrica, col 3D diventa già più complesso, anche se puoi comunque usarlo.
    Lisp (quasi) sicuramente te lo consigliavano per gli script AI, a questo proposito io considererei anche prolog.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    mi basta il 2D... diciamo che sono aperto a più soluzioni.. però non avendo esperienza vorrei non sbagliare... per esempio: metti che imparo prolog e scrivo un algoritmo di ricerca per IA... poi come lo faccio interagire con un programma che mi crea grafica e animazioni? deve essere anch'esso lips... Ad esempio so che flash si presta bene per creare giochini grafici mentre con java ho usato qualche repaint() ma non da creare animazioni da giochino... Per rispondere alla tua domanda pensavo a un tipo di gioco tipo quei giochini FORZA 4 o DAMA o TRIS (anche se credo sia troppo banale quest'ultimo) però l'idea più o meno è quella.. ti è mai capitato di fare qualcosa di vagamente simile? cosa mi consigli?

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Io consigliavo di usare lisp o prolog per la parte di AI ed eventualmente un altro linguaggio per la parte grafica, che comunque puoi benissimo fare in lisp nel caso scegliessi lisp o in prolog con alcune estensioni.
    La parte grafica e le animazioni (e la semplicità nel realizzarle) non dipendono tecnicamente dal linguaggio che usi, ma dalla libreria. Ci sono varie implementazioni sia di prolog che di lisp come librerie, richiamabili da vari altri linguaggi. In ogni caso per minimizzare l'uso di linguaggi potresti fare tutto in lisp con racket o una delle implementazioni di Common Lisp ad esempio.
    Poi comunque non vedo tutte queste grandi animazioni nella dama (dove al massimo fai muovere i pezzi), nella forza 4 (dove al massimo fai cadere i pezzi) e men che meno nel tris. Inoltre non credo che la parte importante sarebbe la parte grafica.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Si hai ragione, grazie per il consiglio... probabilmente utilizzato lisp. grazie

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da ozymandias89 Visualizza il messaggio
    Si hai ragione, grazie per il consiglio... probabilmente utilizzato lisp. grazie
    Non c'è di che
    Comunque lisp è un termine generico, esistono vari dialetti, ad esempio:

    • scheme: core minimale, standardizzato, le varie implementazioni possono offrire librerie e estensioni più o meno portabili.
    • Common Lisp: standardizzato, 2 namespaces separati (uno per le funzioni, uno per i dati) che aggiungono qualche complicazione, standard molto più vasto, quindi generalmente più portabile, anche se restano vari spazi aperti che dipendono quindi dall'implementazione.
    • Racket: ecosistema di linguaggi, totalmente portabile in quanto con unica implementazione, fortemente ispirato a scheme (all'inizio infatti era un'implementazione di scheme), totalmente modulare in quanto si può limitare il linguaggio usato in ogni sezione e farli coesistere in un'applicazione. Può essere usato come una implementazione scheme standard.
    • Clojure: dialetto lisp che gira (principalmente) su JVM, offre integrazione con questa permettendo di usare tutte le librerie sviluppate per java. Offre inoltre qualche zuccherio sintattico, strutture dati infinite con lazy-evaluation, e un buon modello di memoria per la parallelizzazione.
    • tanti altri, ho citato solo quelli più noti


    Quindi prima di prendere una decisione datti un'occhiata attorno!
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Che sia un giochino 2d o 3d sicuramente non vuoi andare ad usare librerie grafiche di basso livello come OpenGL o DirectX.
    Giusto per darti un esempio, ti servono almeno 100-150 righe di codice in C su Windows per mostrare un triangolo bianco su sfondo nero con OpenGL e le API di windows.

    Pero' sia che usi C o Java, perche' non usi un game engine di quelli semplici e immediati? Loro gestiscono praticamente tutto l'aspetto fisico e grafico. A te non resta che creare gli oggetti e implementare l'AI. Non ti conviene sottovalutare il tempo che richiede il far funzionare la parte grafica/fisica di un gioco.

    In qualche giorno di pratica dovresti poterlo usare per creare qualcosa di MOLTO SEMPLICE, ma l'obiettivo del tuo progetto in ogni caso e' l'AI e non la grafica o la fisica.

    In ogni caso, qualunque game engine tu voglia usare, ti consiglio di andare sul 2D o finto 3D (tipo una macchina che non puo saltare ), poiche l'AI per il 3D e' decisamente piu complicata.

  8. #8
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da mamo139 Visualizza il messaggio
    Che sia un giochino 2d o 3d sicuramente non vuoi andare ad usare librerie grafiche di basso livello come OpenGL o DirectX.
    Giusto per darti un esempio, ti servono almeno 100-150 righe di codice in C su Windows per mostrare un triangolo bianco su sfondo nero con OpenGL e le API di windows.

    Pero' sia che usi C o Java, perche' non usi un game engine di quelli semplici e immediati? Loro gestiscono praticamente tutto l'aspetto fisico e grafico. A te non resta che creare gli oggetti e implementare l'AI. Non ti conviene sottovalutare il tempo che richiede il far funzionare la parte grafica/fisica di un gioco.

    In qualche giorno di pratica dovresti poterlo usare per creare qualcosa di MOLTO SEMPLICE, ma l'obiettivo del tuo progetto in ogni caso e' l'AI e non la grafica o la fisica.

    In ogni caso, qualunque game engine tu voglia usare, ti consiglio di andare sul 2D o finto 3D (tipo una macchina che non puo saltare ), poiche l'AI per il 3D e' decisamente piu complicata.
    Nessuno ha mai parlato di OpenGL e DirectX. A parte che queste librerie non sono necessarie nella grafica 2D, ma oltretutto un game engine è un eccesso. Forse stai parlando di un motore di rendering, ma anche in questo caso ti bastano delle immagini o degli stencil...
    Il finto 3D è la visione isometrica (o meglio un'approssimazione di questa). Non hai problemi nel far saltare le cose (nel senso che tecnicamente puoi farlo) il problema è nel capire che sta saltando guardandolo, in quanto si perde un po' il senso dei livelli, in ogni caso può benissimo fare senza.
    In questo caso bastano le normali librerie utilizzate per la creazioni di GUI: una scacchiera può essere vista dall'alto, uno schema di forza 4 da di fronte.
    E il centro del programma non è la parte grafica.
    Paradossalmente potrebbe creare gli scacchi solo con la console e i caratteri unicode.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  9. #9
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Nessuno ha mai parlato di OpenGL e DirectX.
    Ne ho parlato io dicendo che sicuramente non sono una scelta da considerare


    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    2D, ma oltretutto un game engine è un eccesso. Forse stai parlando di un motore di rendering, ma anche in questo caso ti bastano delle immagini o degli stencil...
    Il finto 3D è la visione isometrica (o meglio un'approssimazione di questa). Non hai problemi nel far saltare le cose (nel senso che tecnicamente puoi farlo) il problema è nel capire che sta saltando guardandolo, in quanto si perde un po' il senso dei livelli, in ogni caso può benissimo fare senza.
    In questo caso bastano le normali librerie utilizzate per la creazioni di GUI: una scacchiera può essere vista dall'alto, uno schema di forza 4 da di fronte.
    E il centro del programma non è la parte grafica.
    Paradossalmente potrebbe creare gli scacchi solo con la console e i caratteri unicode.
    Bisogna vedere da che punto parte.
    Se sa gia' programmare delle GUI allora ti conviene seguire quella strada per mettere insieme qualcosa di grafico....

    Pero' se dal punto di vista grafico, GUI comprese, sei a 0, allora io non sono cosi sicuro che un semplice game engine non sia altrettanto facile da imparare e sicuramente dara' risultati migliori in quanto fatto a posta per questo.

    Poi dipende dal gioco che vuole fare, se vuoi fare forza quattro allora probabilmente non fa nessuna differenza, ma se vuoi che so fare una astronave che deve saltare degli ostacoli magari in 3d allora con un game engine diventa molto piu facile.

    Certo puo farlo anche unicode.... si tratta sempre di capire quanto carino lo vuoi fare https://www.youtube.com/watch?v=Of_aodMur44


    [EDIT] Per stare sul 2D, guarda su youtube le guide a XNA... in poco tempo si riesce a realizzare gia qualcosa di decente...
    Credo che XNA sia per C#, pero' si trovano cose simili per tanti altri linguaggi.
    Ultima modifica di mamo139; 03-02-2014 a 15:49

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.