Newsgroup: it.comp.ia
Titolo: [gnammy] Ropeland

La mia versione della gnammy land che ho ribattezzato ropeland e' ancora in
lavorazione, appena ne avro' finito una prima versione minimamente
funzionante
saranno a disposizione codice e sorgente (il linguaggio usato e' il C) a
chiunque
li richieda. L'idea e' quella di un progetto open source (o se preferite
GPL).
Cosa e' in breve:
-linguaggio usato e' il C, per l'esattezza sto usando il djgpp
-non c'e' un interfaccia grafica ma solo una a caratteri stile rogue o hack
(per chi
se li ricorda)
-gira sotto dos e non in una sessione windows
-ogni insettino (rope) ha associato un programmino in un assembler simulato
che
ne stabilisce il comportamento, i rope mangiano si spostano nascono muoiono
e si duplicano.
-la speranza e' che dopo un po' grazie alla capacita'
del programmatore umano (non necessariamente io :-) o della selezione
naturale
gli insettini conquistino il territorio avendo comportamenti interessanti.
Ciao, Roberto

Ciao, Roberto
Ciauz
:):):[]
Pietro Bello
  PEPPUS
http://geocities.com/peppusoft/
http://geocities.com/gnammyland/

Pietro Bello
Ciao


Mi prenoto!

Ciao


>freeware ma GNU.
Giusto per chiarire subito: i soldi non c'entrano, e' solo che (se il
progetto
va in porto e nasce qualcosa di carino intendo) preferirei che succedessero
tre cose:
-che nessuno possa vendere in esclusiva (copyright) il prodotto
-ne nessuno lo possa fare senza dare insieme anche il sorgente
-che nessuno possa appropiarsi impunemente della proprieta' intellettuale
della cosa (che sara' dei partecipanti al progetto)
quindi vorrei aggiungere in cima alla cosa un disclaimer (questo sw e' sotto
licenza
gpl.. gli autori sono pinco, pallo, tizio, franco...) che abbia un minimo di
validita'
legale..
per dare un idea della cosa inizio a passarvi il rope.h che contiene
struttura dati
cosi' come l'ho concepita sinora, il resto quanto il tutto avra' un
comportamento
quantomeno dignitoso :-)
/*
  * copyleft ACME inc 2000
  * Linguaggio Macchina Ropeland
  * no warranties at all.
  *
  * @TITLE Rope Land
  * @AUTHOR R.Corda
  * @VERSION v0.1.110420002325
  */
#define MAXVARS 10
#define MAXCMD 10
#define MAXROPES 2
#define LATO 10
#define TRUE 1
#define FALSE 0
#define GOD 0
typedef struct {
 char ctrl[3]; // 0 value 1 ivar
 int rlm;      // comando
 int p1;       // parametri
 int p2;
 int p3;
} tcmd;
typedef struct {
  int vars[MAXVARS];
  int pc; // program counter
  int cond;
} tstatus;
typedef struct {
  tcmd cmd[MAXCMD];  //programma in rlm (Ling Macchina)
  int numcmd;
  tstatus status;
} tprocess;
typedef struct {
  int id;
  int father_id;
  long birthday;
  int type;      // tipo STONE,TREE,BAMBY,LION
  int erg;       // energia
  int weight;    // peso
  int x;         // posizione
  int y;
  int alive;     // vivo o morto
  tprocess *proc;
} tobj;
typedef struct {
 tobj *obj;
 int signal;
} tland;
extern tland ropeland[LATO+2][LATO+2];
int god();


[codecut]
Ottimo. Grazie. Ti dispiace se ti schiaffo sul sito dello Gnammy o
preferisci riamenere separato???? (a me farebbe piacere che le due
cose venissero messe vicine - ma questo lo deve decidere anche il
GrandePuffo... ehehehehe)
Ciauuuuuuz


Ottimo. Grazie. Ti dispiace se ti schiaffo sul sito dello Gnammy
assolutamnte no... pero' che ci schiaffi? l'unica cosa potrebbe essere
la pre-pre-pre-alpha documentazione che ho postato sotto
[gnammy] una modesta proposta


Non č necessario modificare il disclaimer GPL (lo trovi all'indirizzo
http://www.gnu.org/
 .
Basta includere il file nei sorgenti con il sunto del disclaimer e tra le
altre cose puoi spedire i sorgenti al sito della FSF per avere per cosě dire
una registrazione dei file (di quest'ultimo non ne sono certo).
Martino Serri.


questo è validissimo:
/*
   Copyright (c) 1970-2000, Autore sorgenti.  All rights reserved.
   This file is subject to the terms of the GNU General Public License as
   published by the Free Software Foundation.  A copy of this license is
   included with this software distribution in the file COPYING.  If you
   do not have a copy, you may obtain a copy by writing to the Free
   Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
   This software is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
*/

GrandePuffo... ehehehehe)
Per me va benissimo piu' lavori di qualita' ci sono e meglio e'...
GrabdePéuffo ???? :-))))))
Augusto Pucci
Webmaster di Prospektiva On-line
http://go.to/Prospektiva

*/
Approvato.
Io metto questo nei miei prissimi sorgenti.
Siccome ho i sorgenti di Emiliano lo aggiungo (eh Emiliano??? Lo
aggiungo???)???
Ciauz


GrabdePéuffo ???? :-))))))
Tu. hehehehehe
:)


*/
Basta allegarla come file di testo al software che tu sappčia ?


aggiungo???)???
Certamente.
Non vorrei che qualcuno si facesse la gloria con i nostri lavori....


 Basta allegarla come file di testo al software che tu sappčia ?
No questo č il disclaimer da inserire in tutti i sorgenti.
Siccome la licenza č un po' lunga ma praticamente č uguale in tutti i
progetti GNU, basta che prendi il file "COPYING" da qualunque progettom GNU.
Se vuoi ti mando il file.


>Se vuoi ti mando il file.
Grazie, se me lo spedisci mi fai un favore.


   This file is subject to the terms of the GNU General Public License as
[cut]
ok grazie...
la mia mail e' 
robert...@inferentia.it
se qualcuno vuole vedere quanto fatto sinora (non ancora funzionante
purtroppo) mi scriva,
appena sara' pronto saro' daccordo all'aggiungerlo al sito...
Ciao, Roberto

documentazione al momento...
qualcuno vuole scrivere un programma in quetso linguaggio macchina e
spedirmelo
thanks
/*
   ACME inc 2000
   @TITLE Rope Land
   @AUTHOR R.Corda
   @VERSION v0.2.16042000
*/
/*
   Copyright (c) 1970-2000, Autore sorgenti.
   Roberto Corda (
robert...@inferentia.it
), ...
   All rights reserved.
   This file is subject to the terms of the GNU General Public License as
   published by the Free Software Foundation.  A copy of this license is
   included with this software distribution in the file COPYING.  If you
   do not have a copy, you may obtain a copy by writing to the Free
   Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
   This software is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
*/
-----------------------------------------------------------------------
Semantica comandi:
*sinopsi:  move ( MDIR , ERG) ;
*descrizione: si muove nella direzione indicata se lo spazio e' libero o se
riesce a
  spostare l'elemento bloccante, se qualcosa blocca il passaggio l'energia
  (misurata in ropeton) viene trasferita all'oggetto bloccante
  (fix: da implementare, per adesso gli oggetti sono inamovibili da terzi)
  NB energia viene qui e nel seguito usata in modo improprio e riassume in
se' il significato
  di *energia* vera e propria (in particolare cinetica) e *forza*.
  La fisica di ropeland deve essere meglio definita in particolare per
quanto riguarda
  gli urti e i movimenti (attriti, conservazione dell'energia, inerzia, urti
elastici e
  anelastici)
*restituisce: vero se si e' effettivamente mosso
*comando RLM: move OUT MDIR ERG
*sinopsi speak ( WHAT , ERG) ;
*descrizione: dice qualcosa contenuto in una variabile diffondendolo sino a
una certa
 distanza, cioe' con una certa energia. La diffusione e' spiraliforme in
senso orario
 attorno all'oggetto, mettere il segnale in una casella costa un erg.
L'oggetto puo'
 morire a causa del segnale.
*restituisce: nulla ;
*comando RLM: speak WHAT ERG
*sinopsi: ear ( ) ;
*descrizione: legge i segnali presenti nella posizione corrente
*restituisce: segnale
*comando RLM: ear OUT
*sinopsi: see ( DIR ) ;
*descrizione: guarda in una certa direzione le diresioni sono le
tre parallele alla direzione che passa per l'oggetto
*restituisce: quanto visto (la prima cosa incontrata che nasconde quanto
dietro)
tipo oggetto visto
*comando RLM: see OUT DIR
*sinopsi: radar ( DIR ) ;
*descrizione: guarda in una certa direzione, le direzioni sono le
tre parallele alle direzioni che passano per l'oggetto.
*restituisce: la distanza (in caselle) del primo oggetto incontrato
*comando RLM: see OUT DIR
*sinopsi: dup ( MDIR , ERG) ;
*descrizione: duplica l'oggetto nella direzione indicata fornendogli una
certa energia
iniziale, il parto prevede uno spreco di energia pari alla lunghezza del
programma
piu' l'energia fornita al figlio (fix: non ancora implementato, per adesso
quantita'
fissa), puo' morire nel tentativo.
*restituisce: vero se andato a buon fine
*comando RLM: dup OUT MDIR ERG
*sinopsi:  eatv ( MDIR ) ; // solo per animali erbivori
  eatm ( MDIR ) ;  // solo per animali carnivori
  eatl ( ) ;  |     // solo per vegetali
*descrizione: mangia quanto a destra, se c'e' qualcosa a destra e se e' del
giusto tipo
  se l'oggetto che mangia e' del giusto tipo
*restituisce: ropeton di energia prelevati (0 se fallito cioe' falso)
*comando RLM: eatv OUT MDIR; eatl OUT
*sinopsi:  feed ( MDIR , ERG) ;
*descrizione: passa dell'energia (erg) a quanto ha a destra, puo' morire nel
tentativo.
*restituisce: nulla
*comando RLM: feed MDIR ERG
i parametri sono solo interi positivi, e si intendono o come nomi di
variabili, ovvero
puntatori (indici) alle variabili dello stato, o come valori veri e propri
----------------------------------------------------------------------------
----------
*La fisica di ropeland (da migliorare)
gli urti sono (??)
-elastici se l'energia applicata ad un oggetto e' maggiore del suo peso
-anelastici
deve esser possibile:
-lanciare pietre
-prendere a *capocciate* oggetti danneggiandoli (sino ad ucciderli)
-il peso degli oggetti e' proporzionale alla lunghezza del loro programma
e dell'energia che possiedono (grassezza)
-per spostarsi si consuma energia
-imovimenti sono sempre soggetti ad attriti che tendono a fermarli
-tutti gli oggetti sono opachi
-ogni operazione compiuta prevede un consumo di energia
-due oggetti non possono avere la stessa posizione
*semantica del rlm
-tutte quelle di tipo OUT (valore restituito) sono puntatori
a variabile quindi il valore di OUT sara' contenuto in
[..].vars[OUT]
-gli altri possono o meno essere valori costanti
-nelle chiamate sono
 ivar# le variabili puntatore (ivar0 ivar1 ...)
 value# quelle costanti (value0, value1 ...)
load INDEX VALUE
if COND WHERE
halt
add INDEX VALUE
sub INDEX VALUE
inc INDEX
dec INDEX
// OUT = (VALUE <cmp> VALUE)
and OUT VALUE VALUE
or OUT VALUE VALUE
not OUT VALUE
lt OUT VALUE VALUE
eq OUT VALUE VALUE
move OUT DIR ERG
speak WORD ERG
ear OUT
see OUT DIR
radar OUT DIR
dup OUT DIR ERG
eatv OUT DIR
eatm OUT DIR
eatl OUT
feed DIR ERG
// fix: da aggiungere
// prende le variabili dell'oggetto e le mette in una posizione in
// memoria
father OUT
type OUT
erg OUT
id out
birth OUT
// tempo passato
tic OUT



Ne avrei bisogno pure io cosě lo includo ai sorgenti del sito!
Grazie
