Newsgroup: it.comp.ia
Titolo: GNAMMY - primo passo -

Come dice Marco credo che il primo passo sia di creare una Gnammyland ossia
un paesaggio virtuale, non necessariamente rappresentabile, al quale poi noi
potremmo aggiungere oggetti rappresentati da dll che ognuno di noi crea come
crede meglio....
-
Il nostro software di gestione, che in altre parole è il mondo, potrebbe
all'avvio richiedere quali e quanti oggetti inserire nel paesaggio, il bello
di questa soluzione è che si tratta di un'applicativo dinamico e permette od
ognuno di noi di creare librerie + o - complesse da inserire o non nel
paesaggio....
Secondo me questo semplifica molto le cose perchè all'inizio potremmo avere
un mondo molto semplice, poco impegnativo, fatto di pochi oggetti e poco
complessi e poi in seguito (seguendo lo sviluppo degli gnammy) aggiungere
sempre più oggetti e con caatteristiche sempre più complesse e
articolate....
In fine la carateristica più interessante è la gerarchie tra gli oggetti,
per esempio se Augusto crea un sasso con alcune caratteristiche e tiene in
considerazione la forza di gravità che ha creato Alessandro, con l'evolversi
della libreria di Alessandro avremmo un'evoluzione progressiva di tutti gli
altri oggetti che richiamano quella classe... (è così?).
Insomma il nostro gnammy vivrà in un mondo di oggetti che crescono con lui e
diventano sempre più complessi tanto che nemmeno noi alla fine sapremmo più
perchè quell'oggetto si comporta così e quell'altro cosà, quali diavolo di
caratteristiche richiama e perchè, insomma quasi un mondo reale...
La gnammy, la pizza, il muro, il sole, il vento sono dll?
Misà che mo stò a vaneggia.... :)
--------------------------------------------------
Credo che così il codice di 10.000 righe diventi 10*10*10*10 righe per
ognuno di noi.....
-
Insomma l'unione fa la forza.....
Questa è la mia idea a voi l'ardua sentenza! :))
Ciao Emiliano.
--
Posted from 
ts0001.tesoro.it
 [195.103.126.2]
via Mailgate.ORG Server - 
http://www.mailgate.org

meglio mentre andiamo avanti col lavoro.
Concordo con te,  io direi di organizzare gli Gnammy come un lista
concatenata (in modo da poter eliminare quelli morti da qualunque
posizione) dinamica ovviamente, con ogni Gnammy definito come dato di
tipo struct ,ad esempio:
struct gnammy
{
caratteristiche.....
car.....
car.....
DNA[]
}
Dove DNA e' ovviamente un array.
Per quanto riguarda gnammyland si creto deve essere una matrice, e' il
modo + semplice (anche epr la rappr grafica uccessiva) ma drei di fare
non una matrice 2D semplice, ma ci farebbe comodo una matrice
bidimensionale che in ogni campo contenga non interi, ma array di
interi (ad esempio ne punto della matrice di coord spaziali 4,9
potresti trovare un array cosi' {1,6,324} che significa:
1 cioe' c'e' un oggetto e la casella non e' vuota
6 l'oggetto e' uno gnammy (codice sei)
324 cioe' e' l'individuo 324 di tipo gnammy
la momento non ricordo se si puo' annidare un array in una matrice in
C.... voi mica ve lo ricordate ? Cioe' una cosa del tipo:
int[3] matrix[num_cols][num_rows];
e' ammessa in C ?
Augusto Pucci
Webmaster di Prospektiva On-line
http://go.to/Prospektiva

ma l'implementazione piu' logica e' quella.
Ehm si infatti me ne sono accorto dopo ripensandoci un sec ondo
meglio.... chiedo venia...risultato di un sabato sera eccessivamente
folleggiante :-)


unsigned char GnammyW [200] [200] [4]
Si infatti, leggi sopra che poi me ne sono accorto..pero' una cosa, se
facciamo la matrice cosi' grossa, poi graficamente come si implementa
? Voglio dire in mod testo oltre i 25X80 non si sfonda..quindi o si va
in mod grafica o picche..c'e' qualche volewnteroso che conosca benino
la gestione della grafica in C ?
Che io gia' all'initgraph della graphics.h ci ho madonnato per una
settimana prima di capire come diavolo funzionava !!!!


 Augusto Pucci
In modo testo si può arrivare fino a 43x80 con le vecchie modlita ega :-),
cmq. per avere una visualizzazione tocca andare sicuramente con la grafica
(800x600) se ci limitiamo al bidimensionale non è un grosso problema e me ne
posso occupare io.
Ciao
Marco d'Ambrosio  
m.dam...@tiscalinet.it
http://utenti.tripod.it/razzimodellismo
    ACME I-RM-05
http://web.tiscalinet.it/mda
http://digilander.iol.it/robotica
 (under construction)

 un'ostacolo, quanto la vogliamo fare grande ?
Data la vastità di cose che vi devono stare, direi "grande".
Magari il programma principale può occuparsi solo dei "macro-settori"
(magari 100*100), mentre come si gestiscolo lo spazio all'interno delle
celle sono fatti degli gnammy.
Ah, direi che a questo punto bisogna decidere quanti gnammy può sfamare ogni
pizza! (o per quanto tempo), quante ve ne sono, in percentuale o in totale,
ecc.
io proporrei 1 pizza ogni... 10x10 caselle, il che vuole dire un mondo
"povero" (1%), ma si potrebbe anche dire che il 25% del territorio contiene
erba, che sfama al 10% uno gnammy (il che vuole dire che deve trovarne 10
per soddisfarsi). Ogni tanto c'è un gelato (quanto nutrirà un gelato? Almeno
il 50% credo), etc.
Visto che si discute dell'ambiente, proporrei proprio una cosa così: le
dimensioni "macroscopiche" sono fisse, ma ogni casella può contenere un
numero arbitrario di items o di gnammy in competizione.
Non ho ben chiaro come si vuole implementare il mondo (un accenno alle DLL è
stato fatto), ma diciamo che in questo modo si potrebbe imporre che ogni
oggetto deve essere in grado di accettare come parametro una cella (e quindi
un puntatore ad una lista di cose), e mettere a disposizione un'interfaccia
standard per essere "osservata" e usata.
Esempi:
Pizza:
    int agisci (casella){
        return 0; // La pizza non fa niente
    }
    int mangiabile (casella, indice){
        return 1; // Mangiabile da ogni essere o cosa presente nella
casella, se ha fame
    }
    int mangia (casella){
        diminuisci di una fetta();
    if (finita)
        casella.cancellami();
    }
etc.
(e' solo un abbozzo, ma credo si capisca il "succo")
--
Alessandro Monti

Scusate se mi intrometto,
mi avete molto incuriosito con questa storia degli Gnammy.
Volevo informarvi che la Borland a marzo REGALA il suo compilatore C++
ultima versione compresi i tool a riga di comando, attenzione pero' NON il
C++ Builder che e' quello visuale.
Non potrebbe essere preso in considerazione per lo sviluppo degli Gnammy?
Gira sia su windows che su linux, si potrebbe anche usare come se fosse un C
standard.
Che ne pensate ?
Ciao a tutti.
Davide U.

 Davide U.
Martino.

Martino.
In conclusione la maggioranza ha deciso quale usare ?
Vuole programmare in C o C++   o  altro ???
Ciao e a presto.

 wrote:
Sempre dal siyo Borland vero ?


 wrote:
Mas enti il Pascal si voleva evitare in questo contesto


Vuole programmare in C o C++   o  altro ???
Correggetemi se sbaglio ma mi sembra che la maggiorazna abbia scelto
di usare il DJGPP e il liniguaggio ANSI C come definito nel libro di
Ritchie (+ eventuali librerie necessarie o appositamente scritte)
Giusto ? Tutti daccordo ?


posso occupare io.
BEnissimo, anche perche' io ho una ostilita' repressa verso la grafica
sotto DOS :-)


 Giusto ? Tutti daccordo ?
Ero piů propenso al 'C++' ma mi fido degli esperti che lo sconsigliano
caldamente.
Alcune domande mi attanagliano da qualche giorno.
1) Come gestiamo il progetto?
2) Ognuno si occupa di un aspetto? 
3) Mettiamo su un sito dove mettere in linea i sorgenti?
        A tal proposito ho trovato in rete una comoda utility 
	che converte i sorgenti C/C++ in file HTML con syntax 
	highlighting (si scrive cosě? non me lo ricordo).

oggetto deve essere in grado di accettare come parametro una cella 
Allora Gnammyworld e' una matrice definita come segue:
unsigned char gnammyworld[cols][rows][n];
dove n sono i parametri per ogni cella, probabilmente n sra' uguale a
2 OSI' avremo un vettore di  2 cosi fatto:
{tipo_entita,cod_individuo}
tipo_entita e' il codice di riconoscimento dell'entita' occupante
cioe'::
0 se non c'e' nulla nella casella
1 se c'e' uno Gnammy
2 se c'e' un muro
3 se c'e' una pizza
4 se c'e' un albero dselle pizze
5 se c'e' un burrone
6 se cìeì una pozza d'acqua
7 se c'e' un barbagianni predatore (scherzo) :-)
Oppure come qualxcuno proponeva il contenuto di gnammyworld potrebbe
puntare a una struct
Comunque cod_individuo e0 l'etichetta di uno specifico gnammy
A proposito non abbiamo pensato ad una cosa importantissima, cosi'0
come' gnammyworld non e' un ecosistema perche' non c'e' catena
alimentare, allora proporrei di introdurre delle creature che predino
gli Gnammy e siano in grado di produrre alberi delle pizze (ad esempio
introduciamo il pizzaiolofamelico) cosi' l'ecosistema avra' una catena
alimenatre del tipo:
albro -produce- pizza
Gnammy mangiua pizza
pizzaiolo mangia gnammy
pizzaiolo crea albero pizze etc...
ora questo e' un esempio scemo, ma se no il mondo gnammoso sarebbe un
sistema impazzito !!!


Sempre dal siyo Borland vero ?
www.inprise.com

Sempre dal siyo Borland vero ?
Se volete, offro io lo spazio web che serve al GNAMMY-PROJECT
immediatamente.
Per il compilatore a me va benissimo qualunque ANSI C che vi pare.
Tempo fa' ho creato un compilatore assembly in QBASIC che ha una sintassi
simile al basic
e sarebbe l'ideale per creare dei programmi per uso Gnammy e molto veloce,
e' almeno circa 10 volte piu' veloce del C,  pero' fa uso solo di grafica
VGA 320x200.
Genera in uscita un codice assembler e fa uso di TASM e TLINK per generare
codice eseguibile.
Si potrebbe ampliare implementando anche gli OP-code direttamente dentro al
compilatore.
Che ne dite se piu' avanti tentiamo
di creare un nuovo linguaggio per uso GNAMMY partendo da questo?
Ciao.

 
Potresti mandarmi i sorgenti (solo a scopo didattico si intende).
Se hai dei problemi non fa nulla.
Martino
mailto:
mse...@tin.it

3) Mettiamo su un sito dove mettere in linea i sorgenti?
Si direi di si, ci vuole poco a trovare un sito free, poi ne
condividiamo le pagine ed e' bell'e fatta, se volete offro lo spazio
io sul sito di prospektiva, la rivista di cui sono webmaster, tanto il
posto e' gratis e abbonda e mi ci vuole poco a fare un rimando dalla
primampagina al progetto Gnammy


immediatamente.
Ah, ci pesni tu allo spazio web ? Va benissimo, ma uno spazio free
vero ? Mica ti vorrai accollare i costi, se no favvimao una colletta.
Che indirizzo ? Se lo gestisci tu allora ti mando un pochina di
grafica bellina per presentare il tutto


 wrote:
Cosi', per curiosita': avete mai sentito parlare di Petworld?
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

Augusto Pucci
Ascolta non avevo letto il tuo post delle ore14:09
nel quale dicevi che offrivi lo spazio sul sito
e lo gestivi tu, per me non ci sono problemi.
Mettiamoci d'accordo, se le pagine le mandi a me pero' visto che sei un
web-master
le prepari tu, Ok?
Ciao.

grafica bellina per presentare il tutto
Attualmente ho uno spazio web di 15MB free su Aspide (occupati 2MB)
Se volete, offro io.
Mandami la pagina (zip) 
udm...@tin.it
 che te la pubblico subito (stasera
dopo le 9,30).
(P.S. appena e' pronto il nuovo sito di AI si puo' sempre traslocare).
L' indirizzo sara':
http://www.freeweb.org/risorse/NewTech/nome-che-ti-pare.htm
Ciao.
Davide U.

Se hai dei problemi non fa nulla.
OK, te li preparo poi te li mando.
Ti scrivo due righe di documentazione perche' non l'ho mai fatta.
Ciao.

le prepari tu, Ok?
Allora ascolta faccimao una cosa, io oggi non le posso preparare,
pero' mi faresti un piacere ad offrire tu lo psazio con aspide (che
gia' ne ho un sacco di spazi da gestire>)allora daccordo, la pagine le
faccio io, poi te le spedisco all'indirizzom che mi hai dato..o, non
aspettarti granche', faccio una cosina semplice :-)


Cosi', per curiosita': avete mai sentito parlare di Petworld?
MMMM io no, che sono le pet di penthouse ? :-)


aspettarti granche', faccio una cosina semplice :-)
ok

 
http://go.to/Prospektiva
Per me va benissimo, noto con estremo piacere che nella giornata di oggi ci
sono stati ben 31 post su questo ng tutti dedicati allo Gnammy :)
Sono appena rientrato dal lavoro e quando ho letto il numero dei messaggi da
leggere su it.comp.ia non ci volevo credere :)


Pape' Satan, pape' Satan aleppe, comincio' Augusto con voce chioccia:
AP> C.... voi mica ve lo ricordate ? Cioe' una cosa del tipo:
AP> int[3] matrix[num_cols][num_rows];
AP> e' ammessa in C ?
prima crei una struttura che rappresenta una singola cella della
matrice, e poi fai un array bidimensionale di celle.
Parlando invece di altro, sentite che idea balzana mi e' venuta in
mente: introduciamo lo gnammy razzista? Ovvero alcuni gnammy sono
ostili ad altri che sono diversi da loro piu' di un tot... potrebbero
cosi' formarsi delle comunita' di gnammy simili, e alcune comunita'
potrebbero arrivare ad essere 'in guerra' con altre. Una vera e
propria guerra del ghetto.
Lo gnammy bravo buono e teneroso mi da' la nausea, io voglio anche lo
gnammy stronzo e bastardo fino al midollo :))))
-- 
ciao,
Claudio


Si, cosě ci tocca poi ci tocca pure prevedere una Gnammy prigione e gli
Gnammy sceriffi :)


mente: introduciamo lo gnammy razzista? Ovvero alcuni gnammy sono
Bhe in un certo senso e' necessario che ci sia una componente di
"razzismo" (termine infelice pero') negli Gnammy e' l'unico modo che
abbiamo per far si che si formino tribu diverse di Gnammy..a proposito
introdurrei anche un fattore gerarchico dipendente dalle
caratteristiche dello Gnammy


leggere su it.comp.ia non ci volevo credere :)
Bhe in effetti mi pare che ultimamente (non solo comunque per lo
gnammy) questo NG si stia un po' riivtalizzando :-)


In modo testo si può arrivare fino a 43x80 con le vecchie modlita ega :-),
Io avevo un driver (mi pare si chiamasse VIPER.EXE) che arrivava
fino a 50x120 (o addirittura 133).
Purtroppo non ricordo dove si trovasse...
Byez
un DeK che ha dato geometria tornando a casa in tempo x "The Simpsons"
(e adesso vi beccate la pre-sign lunga fino a fine sessione :P)
--
DeK - Delirio & Kaos
FAN n.1 del CrossPost e dell' OT :)
Visita One Big Mob - 
http://dek.hey.to

Ritchie (+ eventuali librerie necessarie o appositamente scritte)
Ok... Anch'io, come qlcun'altro avrei preferito il C++, ma...
Una domanda:
Se usiamo tutti lo stesso compilatore che bisogno c'e' di attenersi a
uno standard "preciso"?


Byez
Bhe ora preciso per modo di dire poi ognuno fa un po' come glik pare,
coimunque eprche' sta nel fatto che anche se usiamo tutti lo stesso
compilatore non e' detto che tutti usiamo le stesse librerie


Pape' Satan, pape' Satan aleppe, comincio' Augusto con voce chioccia:
AP> facciamo la matrice cosi' grossa, poi graficamente come si implementa
AP> ? Voglio dire in mod testo oltre i 25X80 non si sfonda..quindi o si va
basta un po' di scrolling :)
AP> in mod grafica o picche..c'e' qualche volewnteroso che conosca benino
AP> la gestione della grafica in C ?
la gestione della grafica 'in C' non esiste, visto che il C standard
non ha nulla che permetta di lavorare con la grafica. Dipende tutto
dal sistema operativo, dalle librerie usate, da...
insomma e' la parte meno portabile e su cui bisognera' lavorare di
piu' se vogliamo fare una cosa multipiattaforma
-- 
ciao,
Claudio

Non so dirti perchè, forse non conosco nemmeno benissimo gli strumenti di
sviluppo per poterti contraddire però a colpo d'occhio mi sembra di poter
dire che un'organizzazione di questo tipo è limitata...
Voglio dire se vuoi veramente un' evoluzione di un certo tipo devi poter
permettere situazioni imprevedibili, si ritorna sempre allo stesso discorso
io non vorrei vedere gli gnammy trovare soluzioni banali anzichè
intelligenti nel vero senzo della parola.
Es: se lo gnammy impara a mangiare più pizze possibili secondo te è
intelligente? A me sembra che abbia solo trovato una soluzione ad un
problema ricorrente che gli viene posto.....
Se invece gli diamo la possibilita di modificare le regole della Gnammyland
e uscire "al di fuori delle matrici" allora può darsi che appaia più
intelligente..
Non è chiarissimo il discorso ma vorrei sottolineare la necessità di avere
una realtà Gnammosa un po più flessibile in modo da dare maggior spazio e
possibilita ad ogni Gnammy.
Con una matrice in cui tu devi obbligatoriamente definire N possibilità la
cosa mi sembra ottusa, cmq ripeto queste sono solo senzazioni che spero
possano essere smentite come dici tu nel corso dello sviluppo.
--
Posted from 
ts0001.tesoro.it
 [195.103.126.2]
via Mailgate.ORG Server - 
http://www.mailgate.org

 wrote in message

La matrice serve solo per definire GnammyLand all'interno del computer è
solo uno strumento, non limita assolutamente nulla a parte le dimensioni max
di GnammyLand (che non può essere infinita).


Pape' Satan, pape' Satan aleppe, comincio' Augusto con voce chioccia:
AP> Bhe in un certo senso e' necessario che ci sia una componente di
AP> "razzismo" (termine infelice pero') negli Gnammy e' l'unico modo che
indubbiamente :)
AP> abbiamo per far si che si formino tribu diverse di Gnammy..a proposito
AP> introdurrei anche un fattore gerarchico dipendente dalle
AP> caratteristiche dello Gnammy
cioe' fare in modo che all'interno di ogni tribu' ci sia una
gerarchia che identifichi un capo ecc.?
Si potrebbe fare, ad esempio si puo' introdurre il "carisma",
attributo derivato da altri (che so, intelligenza, forza ecc.). Alla
fine il piu' carismatico sara' il leader della tribu'. 
Ma come usare poi questa informazione? In che modo il leader
influenza il comportamento degli altri gnammy?
-- 
ciao,
Claudio

Pape' Satan, pape' Satan aleppe, comincio' Marco con voce chioccia:
MdA> Si, cosě ci tocca poi ci tocca pure prevedere una Gnammy prigione e gli
MdA> Gnammy sceriffi :)
ma sai che non sarebbe una brutta idea? Uno gnammy potrebbe ottenere
grandi vantaggi dall'uccisione di un altro gnammy, ad esempio
potrebbe rubargli tutti i soldi (ammesso che gli gnammy abbiano
soldi), ma correrebbe il rischio di essere a sua volta ucciso da uno
speciale gnammy cacciatore-di-taglie :)
-- 
ciao,
Claudio

 compilatore non e' detto che tutti usiamo le stesse librerie
E lo stesso SO.
E invero neanche che lo stesso compilatore su SO diversi sia lo stesso.
Probabile, però.
--
Alessandro Monti

Byez
Se ognuno di noi fa come gli pare allora cosa ci parliamo a fare fra di noi?
La struttura dei dati da gestire deve essere decisa in comune fra tutti noi
e poi ognuno si fa l'algoritmo che gli pare.

influenza il comportamento degli altri gnammy?
Estatto ! Trovato, come per i gorilla lo Gnammy capo, il + forte,
intelligente etc.. e' quello che si accoppia anche con + femmine
miglioirando cosi' la specie !


e poi ognuno si fa l'algoritmo che gli pare.
Per definire a linee generali "l'interfaccia" del programma, intesa
non come GUI, ma come funzionamento a grandi linee delle varie
parti del codice.
Byez


>influenza il comportamento degli altri gnammy?
AP> Estatto ! Trovato, come per i gorilla lo Gnammy capo, il + forte,
AP> intelligente etc.. e' quello che si accoppia anche con + femmine
AP> miglioirando cosi' la specie !
in questo modo pero' la presenza di un leader influenza solo le
generazioni future, mentre secondo me dovrebbe influenzare anche il
comportamento degli altri gnammy che gli stanno vicino.
Ad esempio uno gnammy potrebbe essere piu' ben disposto ad imparare
(scambio di memoria, sempre lui) da un leader che da uno
gnammypallino qualunque :). 
-- 
ciao,
Claudio

gnammypallino qualunque :). 
Bhe qeusto non dovrebbe essere troppo difficile da isnerire


MMMM io no, che sono le pet di penthouse ? :-)
LOL, magari. No, e' semplicemente piu' o meno la stessa cosa dello "gnammy".
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

Byez
Scusa, non volevo essere cosi prepotente, cmq la penso esattamente come te.
:-)
Volevo solo dire che secondo me sarebbe meglio se
decidessimo insieme la struttura dei dati da utilizzare e poi ognuno fa i
suoi
esperimenti implementando i vari algoritmi che ognuno di noi ha creato :-)
ovviamente il tutto con un compilatore Standard C ansi.  :-)
Grazie per l'attenzione.
Ciao.
Davide U.

 wrote:
Bhe, si' grossomodo l'idea potrebbe essere questa..ma ecco  magari con
ANSI C, intendiamoci apprezzo molto i vari esperimenti fatti finora,
ma il progetto non deve venire ne' in Java, ne' in QBasic, ne' in
Amos..magari atteniamoci al C..almeno questo.. :-)


ovviamente il tutto con un compilatore Standard C ansi.  :-)
Ok... in realta' e' che non ne so molto del C, visto che ho iniziato
(e continuo tuttora) usando "solo" il C++
Infatti quella scemenza che ho scritto col TurboC, sotto DJGPP non
sono stato capace di fargliela compilare cosi' com'e'.
Cmq, sono convinto che ognuno dovrebbe provare le sue soluzioni
personali, sia come IA, che come Alife.
E inoltre che lo Gnammy dovrebbe essere capace di imparare a
prescindere da GnammyLand.
E, ancora, una volta definita l' "interfaccia", ognuno si puo' fare la
GUI come + gli piace.
Ecco, piu' o meno era questo il senso di quella scemenza li'...
