CROBOTS TORNEO2k1 v1.3 for Dos/Linux

Scritto da Michelangelo Messina.

 

Homepage:

http://go.to/crobots

email:     

m.messina@tiscalinet.it

m.messina@libero.it

 

 

TORNEO2k1 comes with ABSOLUTELY NO WARRANTY; for details read COPYING file.

This is free software, and you are welcome to redistribute it

under certain conditions; read COPYING file for details.

 

Questo programma e' liberamente distribuibile (freeware) o modificabile, non a scopo di lucro, a condizione che venga sempre indicato un riferimento dell'autore.

Gradirei ricevere una e-mail di commento da parte di chi lo trovi interessante o lo usi al mio indirizzo:

m.messina@tiscalinet.it

oppure m.messina@libero.it

 

 

NOTA BENE:

Tom Poindexter ha tutti i diritti d'autore sul programma CROBOTS (NON incluso nel pacchetto T2k1v13.ZIP).

 

Indice:

0  - Novita'

1  - Descrizione

2  - Utilizzo

3  - Esecuzione del torneo

4  Riga di comando

5  - Esempi di file di comando

6  - Salvataggio o abbandono del torneo

7  - Ripresa di un torneo salvato

8  - Files

9  Varie

 

   


0 – Novita' di Torneo2k1 e differenze con Torneo2k

- Torneo2k1 (indicato come T2k1) e' una versione aggiornata e rinnovata di Torneo2k. Per l'utilizzo valgono tutte le conoscenze acquisite con Torneo2k.

- Inserita nella versione 1.3 un backup automatico della situazione del torneo. In caso di crash e' possibile riprendere il torneo in corso.

- Dalla versione 1.2 e' ora possibile svolgere tornei fino a 32 robot.

- Aggiunta la possibilita' di avere con lo stesso set di robot un torneo F2F e uno 4vs4, in modo da simulare i tornei ufficiali, in congiunzione con Count (di Simone Ascheri) versione 8 e successive.

- La frequenza di aggiornamento richiesta ora si puo' indicare in percentuale (comoda per i tornei doppi F2F e 4vs4).

- Aumentata la velocita' generale.

- Migliorato il supporto a Count che ora e' il programma consigliato per l'analisi dei risultati.

- Modificato il file PATCH.DAT.

 


1 - Descrizione.

 

T2k1 permette di realizzare semplicemente tornei tra diversi robots (da 5 a 32), scegliendo anche il numero di ripetizioni di ogni incontro per motivi statistici (da 1 a 99 ripetizioni per il torneo 4contro4 (o 4vs4), fino a 9999 per il torneo face2face).

Per utilizzare il programma e' necessario avere il programma originale "CROBOTS" (TM) di Tom Poindexter (o una versione aggiornata), che deve essere nella directory corrente (in linux nel path corrente).

Oltre ai robots classici (.r), T2k1 accetta in input anche robots da trattare col preprocessore (PPC) di Marco Giovannini. Se il robot ha l'estensione .pr, per la sua compilazione e' automaticamente richiamato il preprocessore PPC, che quindi deve essere nel path corrente.

Negli incontri 4vs4, la regola del torneo e' quella del tutti contro tutti: ogni robot incontra tutti gli altri, con partite a gruppi di 4 alla volta, realizzando tutte le possibili combinazioni, in ordine casuale.

Nei tornei face2face (F2F) gli incontri saranno a gruppi di due robots per volta.

Per simulare i tornei ufficiali di crobots, e' ora possibile realizzare con uno stesso set di robot in sequenza il torneo F2F e 4vs4.

Gli incontri hanno la durata di 200.000 cicli. Alla fine di ogni incontro vengono assegnati 3 punti per la vittoria (al solo robot rimaso in vita), oppure 1 punto per il pareggio (ad ogni sopravvissuto). Questi punteggi sono modificabili su linea di comando. Per l'analisi dei risultati si consiglia pero' di utilizzare Count (di Simone Ascheri), che permette di calcolare i punteggi col "metodo Pranzo", il sistema utilizzato nei tornei ufficiali di crobots.

In ogni momento si puo' abbandonare il torneo, o salvarlo per continuarlo in seguito senza perdere i risultati acquisiti fino a quel punto.

E' possibile anche realizzare tornei 'ridotti'. Molto spesso, nella fase di sviluppo di un crobot, puo' essere interessante vederne il comportamento contro un certo numero di nemici, per effettuare confronti tra versioni diverse, ma non e' necessario conoscere anche le efficienze degli altri concorrenti. Si puo' quindi limitare il torneo alle sole partite in cui compaiono un determinato numero di robot.

Opzionalmente si puo' salvare il log completo di tutti gli incontri del torneo (la cui dimensione varia a seconda del numero dei robot, e puo' raggiungere anche diversi MegaBytes di spazio). In questo modo e' possibile utilizzare in seguito il programma Count per l'analisi statistica del comportamento dei robot. 

E' anche possibile richiamare il programma esterno per l'analisi volta per volta ad ogni aggiornamento della situazione.

Durante lo sviluppo si possono provare i propri robot preparando un unico file standard per i nemici, e variando velocemente di volta in volta su linea di comando il robot da testare. Su linea di comando si puo' variare anche il numero di ripetizioni degli incontri e gli altri parametri fondamentali.

 


2 - Utilizzo.

Per utilizzare il programma bisogna seguire le seguenti fasi:

 

 - Preparare i robots che parteciperanno al torneo (ovviamente ...)

 

 - Creare un file di testo ('file di comando') - per default il programma cerca il file torneo.rob - , 

con il seguente formato:

Nr. robot partecipanti al torneo

Nr. ripetizioni per incontro

Nome 1° robot (comprensivo di eventuale path)

Nome 2° robot ( ""               ""         )

...

Nome n° robot ( ""               ""         )

Il numero di ripetizione di ogni incontro e' obbligatorio nel file di comando, ma sara' ignorato se si usa l'opzione -m= quando si richiama T2k1.

Dopo l'ultimo robots, opzionalmente, si possono inserire le preferenze con i seguenti switches:

L=x per limitare l'analisi ai primi x concorrenti (p. es. L=3 per vedere solo i risultati effettivi dei primi tre robots. Gli altri praticamente non termineranno il torneo. Si ha un notevole risparmio di tempo se si e' interessati solo ai risultati di quei robots).

O   per avere gli incontri secondo l'ordine del file di comando (non in modo casuale)

M=x per avere l'aggiornamento ogni x incontri. Si puo' indicare anche in percentuale:

M=x% in modo da avere l'aggiornamento ogni x% di completamento del torneo (default 10%)

D=fileoutput per avere l'aggiornamento su un determinato file invece che su quello di default (nomedeltorneo.sco).

 ATTENZIONE: questo parametro influenza il nome di tutti i file parziali generati dal programma, e il nome della directory temporanea creata.

X   per far eseguire piu' volte crobots col parametro -m1 invece di usare il parametro -mx, al fine di aumentarne l'affidabilita' statistica (da utilizzare solo col crobots.exe originale del 1985).

T   per creare il Log completo, compatibile col formato di COUNT di Simone Ascheri.

C=fileconteggio per richiamare un programma esterno per l'analisi. Questa opzione presuppone che sia creato il log (opzione T).

 

Molti di questi parametri possono essere inseriti su linea di comando.

Maggiori chiarimenti sul formato del file di comando saranno riportati in seguito.

 

 

 

 - Lanciare t2k1 ed attendere i risultati!

 


3 - Esecuzione del torneo.

Al lancio del programma compare un messaggio di copyright, attendendo la pressione del tasto invio, dopo di che punto parte il torneo.

ATTENZIONE: tutti i files intermedi hanno la stessa radice del file dei comando (per default torneo), o, eventualmente, del file usato nell'opzione D=nomefile o -d=nomefile rispettivamente nel file di comando o su riga di comando.

Se si usa la modalita' interattiva sull'ultima riga della console potremo seguire lo stato di avanzamento del torneo. In ogni momento, premendo un tasto, avremo l'aggiornamento della classifica a video. I tasti 's' e 'q' permetteranno di salvare o abbandonare il torneo.

Se invece si usa la modalita' 'quiet' (switch -q su riga di comando) l'aggiornamento si avra' solo nel file con estensione .sco 

(p. es. in Linux

      t2k1 nometorneo.rob -q &

fa partire t2k1 in modalita' quiet e lascia libera la console).

Il file .sco non e' generato se si usa un programma esterno per l'analisi.

Se si stanno eseguendo in sequenza f2f e 4vs4, il file di ouptut avra' l'estensione .sco per il 4vs4, e l'estensione .f2f per il f2f.

Ad ogni aggiornamento (per default ogni 10% degli incontri, valore modificabile con l'opzione M=x o M=x%) vengono riportati per ogni robot: posizione, nome, nr. di partite giocate, nr. di vittorie, nr. di pareggi, nr di sconfitte, punti, efficienza (percentuale di punti ottenuti sul  massimo teorico).

Se e' stato richiesto il salvataggio del log, questo si trovera' in un file con estensione .log.

Se si e' utilizzata l'opzione per il programma di analisi esterno, questo sara' richiamato ad ogni aggiornamento di classifica.

 


4 - Riga di comando

Provate a digitare

 

                        T2k1 ?

 

per vedere un elenco degli switch utilizzabili. Si ricorda che i parametri nelle parentesi [] sono opzionali.

 

 

Per lanciare un torneo bisogna utilizzare il comando:

 

T2k1 [file di comando[.rob]]

Se si omette il file di comando, per default il programma cerca nella directory corrente il file torneo.rob.

 

Come vedremo in seguito si puo' richiamare T2k1 anche per salvare, abbandonare o aggiornare la situazione di un torneo partito in un altra finestra dos o console linux.

 

Al richiamo di t2k1, su riga di comando, si possono inserire i seguenti switches, che hanno la priorita' su quelli del file .rob:

 

-d=x

tutti i file di output del tipo x.est

-r=x.r

aggiunge x.r come primo robot. Utile durante lo sviluppo per testare diverse versioni dei robots.

-f

attiva la modalita' Face2Face

-a[=x]

esegue il torneo F2F e poi il 4vs4 (eventualmente F2F con x ripetizioni per incontro

-x

avvia piu' volte crobots con parametri -m1 (obsoleto. Da utilizzare per migliori risultati statistici con il crobots.exe originale del 1985)

-m=x

x incontri per match

-t

crea il file di log

"-c=x"

esegue il programma esterno x per l'analisi dei risultati

-o

torneo ordinato

-l=x torneo completato dai primi x robots
-w=x assegna x punti per incontro vittorioso (default 3)
-p=x assegna x punti per il pareggio (default 1)

 


5 - Esempio di file di comando

Nel creare il file di comando (per default torneo.rob) bisogna effettuare una particolare attenzione a cio' che si scrive!

Il controllo degli errori e' ancora rudimentale, e files sballati in ingresso potrebbero portare a risultati sballati.

Vediamo ora un esempio di torneo.rob

 

 

13

7

esempi/fable.r

esempi/diabolik.r

esempi/ncmplt.r

esempi/colossus.r

esempi/arale.r

esempi/kill!.r

esempi/gundam.r

esempi/hal9000.r

esempi/rudolf_2.r

esempi/ai1.r

esempi/andrea97.r

esempi/fya.r

esempi/flash5.r

 

Questo primo esempio mostra il piu' semplice torneo.rob possibile: e' un torneo tra 13 robots (tra quelli che hanno partecipato al torneo 1997) che si trovano nella sottodirectory esempi del disco corrente.

Ogni partita consta di 7 ripetizioni.

Tutte le opzioni sono lasciate come di default: torneo completo, aggiornamento su parziali.txt ogni 100 incontri, log non creato.

Il secondo esempio mostra le funzionalita' avanzate.

 

 

19

5

esempi/fable.r

esempi/diabolik.r

esempi/ncmplt.r

esempi/colossus.r

esempi/arale.r

esempi/kill!.r

esempi/gundam.r

esempi/hal9000.r

esempi/rudolf_2.r

esempi/ai1.r

esempi/andrea97.r

esempi/fya.r

esempi/flash5.r

esempi/abyss.r

esempi/me-110c.r

esempi/drago6.r

esempi/jedi.r

esempi/carlo97.r

esempi/pippo97.r

L=2

M=5%

O

X

D=prova.sco

T

C=count712 prova -a

 

 

Questo e' un esempio di torneo tra 19 robots (tra quelli che hanno partecipato al torneo 1997) che si trovano nella sottodirectory esempi del disco corrente.

Ogni partita consta di 5 ripetizioni, ma crobots e' avviato 5 volte (con -m1) e non si usa -m5 grazie al parametro X.

Gli incontri sono ordinati

Il torneo viene completato solo dai primi due robots (fable.r e diabolik.r) a causa del parametro L=2. Cio' e' interessante se vogliamo solo vedere il testa a testa tra questi due robots.

L'aggiornamento e' al completamento di ogni 5% degli incontri. Il file prova.sco comunque non viene creato perche' si e' scelto di usare count712 per l'analisi.

Alla fine si trovera' il Log completo nel file prova.log

 


6 - Salvataggio o abbandono del torneo

Se si sta utilizzando la modalita' interattiva, due tasti hanno una funzione particolare:

 - S : esce dal programma, salvando la situazione attuale in un file con estensione .DAT (per default torneo.dat)

 - Q : abbandona l'esecuzione del torneo. Il risultato parziale e' salvato nel file di testo con estensione .sco. Il torneo abbandonato non e' più continuabile.

 

 

Dalla console (o da un'altra finestra DOS sotto Windows) si puo' eseguire:

 - t2k1 save [nometorneo]: salva la situazione corrente.

 - t2k1 quit [nometorneo]: abbandona il torneo

 - t2k1 agg nometorneo: effettua l'aggiornamento

 

Gli switch save - quit - agg vanno scritti IN MINUSCOLO.

 

nometorneo deve comprendere il path se non si e' piu' nella directory originaria da cui si e' lanciato il torneo.

P. es. se il torneo e' in esecuzione nella directory crobots (e quindi e' stata creata un'altra sottodirectory nometorneo) bisognera' utilizzare

      t2k1 save /crobots/nometorneo

 


7 - Ripresa di un torneo salvato.

T2K1 all'avvio controlla se ci sia gia' un torneo in corso con lo stesso file di comando.

Se e' presente il file .dat chiede se si vuole continuare il torneo o iniziarne uno nuovo se si utilizza t2k1 in modalita' interattiva; continua automaticamente il torneo precedente se si e' in modalita' quiet.

La presenza del file .da_ indica una interruzione anomala dell'ultima esecuzione di T2K1. Vengono offerte le stesse possibilita' di riprendere il torneo interrotto.

 

Se non si e' usato il file di comando di default, per riprendere un torneo salvato e' necessario indicare il file di comando o il fileout (se si e' usata l'opzione -d)

Es.

Se si e' avviato "T2K1 prova.rob" per riprendere sara' necessario riavviare "T2k1 prova.rob" o "T2k1 prova" o "T2k1 -d=prova"

Se si e' avviato "T2K1 prova.rob -d=test" per riprendere sara' necessario riavviare "T2k1 prova.rob -d=test" o "T2k1 test" o "T2k1 -d=test"

 

Se e' stato richiesto il log completo degli incontri, e' necessario avere anche il file .LOG parziale, creato in precedenza.

 


8 - Files.

Poiche' si utilizzano diversi files, vediamo brevemente tutti i files del programma e quelli creati durante il funzionamento.

 

Files del programma:

 - t2k1        : eseguibile del programma linux.

 - T2K1.exe    : eseguibile del programma DOS

 - patch.dat   : file necessario all'esecuzione della versione DOS.

 - t2k1.html   : queste istruzioni.

 

Input dell'utente:

 - xxx.rob     : lista dei robots che parteciperanno al torneo (vedi esempio accluso).

 

Output del programma:

 - xxx.dat     : salvataggio attuale.

 - xxx.da_     : salvataggio automatico di backup (eliminato a fine esecuzione).

 - xxx.log     : (eventuale) log completo degli incontri.

 - xxx.sco     : aggiornamento o classifica finale.

 - xxx.f2f     : aggiornamento o classifica finale del torneo f2f in modalita' torneo doppio(f2f e 4vs4)

 

Directory temporanea (cancellata alla fine del torneo):

 - XXX

 

Il valore di default di xxx="torneo" puo' essere modificato su linea di comando: p.es. usando

T2K1 t99.rob

i files saranno t99.dat, t99.log, t99.sco e la directory T99.

 

 

Sotto Linux, nel path corrente deve essere presente l'originale CROBOTS ed eventualmente PPC.

Sotto DOS, invece, i due programmi si devono trovare nella directory corrente da cui si avvia il programma, insieme al file PATCH.DAT

 


9 - Varie

Il programma e' stato realizzato per il mio semplice diletto, testando i miei robots. Non offro alcuna garanzia sul funzionamento, soprattutto utilizzando combinazioni varie, con formati dei files non previsti originariamente: non c'e' controllo degli errori.

 

Un ringraziamento a Maurizio 'Joshua' Camangi per l'aiuto nella diffusione del programma, a Marco Pranzo, Stefano Francesi e Marco Selvini per i preziosi suggerimenti, a Marco Giovannini per la collaborazione e la scrittura di PPC.

Una menzione particolare va a Tom Poindexter, per la realizzazione del porting di Crobots su PC.

Last but not least ringrazio Simone 'bug' Ascheri per i suoi infiniti suggerimenti e la collaborazione.

 

  


 

 

Per commenti, curiosita', suggerimenti per il programma, o per risultati di propri tornei su cui discutere, scrivetemi all'indirizzo:

m.messina@tiscalinet.it

o m.messina@libero.it

 

 

Tutti i file menzionati, e gli eventuali aggiornamenti del programma si possono trovare presso la 

TORNEO HOMEPAGE: http://go.to/crobots

o presso la

CROBOTS HOMEPAGE: http://www.itportal.it/crobots

 

 

 

Per essere sempre informati sul mondo crobots:

Sottoscrivi la Mailinig List di C-robots e C++robots

www.yahoogroups.com/group/crobots