CROBOTS TORNEO XP v2.0 for Dos/Linux

Scritto da Michelangelo Messina.

 

Homepage:

http://go.to/crobots

email:     

m.messina@tiscali.it

m.messina@libero.it

 

 

TORNEO XP 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@tiscali.it

oppure m.messina@libero.it

 

 

NOTA BENE:

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

 

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  - Utilizzo di count in congiunzione di TXP

9  - Files

10 Varie

 

   


0 – Novita' di Torneo XP e differenze con Torneo2k1

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

- Migliorato il supporto a Count, programma consigliato per l'analisi dei risultati: utilizzando lo switch -c (o la riga C nel .rob) senza valori aggiuntivi il programma richiama opportunamente count per l'analisi settando le opzioni corrette.

- Sensibilmente migliorato il rimescolamento dei robot in caso di incontri casuali. In particolare per tornei con piu' di 24 robot e' sconsigliato l'uso delle versioni precedenti.

- Migliorato il salvataggio automatico e la gestione di tornei interrotti per crash del sistema.

- Risolti alcuni problemi di compatibilita' con Windows 2000 e Windows XP, che portavano a uscite premature dal programma senza segnalazioni di errore. Maggiori informazioni a questa pagina.

- Risolto un bug nella gestione di tornei f2f con piu' di 4000 ripetizioni.

- Modificata la creazione dei files temporanei per compatibilita' con la GUI. In caso di problemi, si consiglia l'utilizzo della versione 1.1

 


1 - Descrizione.

 

TXP 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), TXP 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 TXP.

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). Altre informazioni sull'utilizzo di COUNT per l'analisi al paragrafo 8

 

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

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

 

 

 

 - Lanciare TXP 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

      txp nometorneo.rob -q &

fa partire txp 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

 

                        TXP ?

 

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

 

 

Per lanciare un torneo bisogna utilizzare il comando:

 

TXP [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 TXP anche per salvare, abbandonare o aggiornare la situazione di un torneo partito in un altra finestra dos o console linux.

 

Al richiamo di TXP, 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:

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

 - TXP quit [nometorneo]: abbandona il torneo

 - TXP 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

      TXP save /crobots/nometorneo

 


7 - Ripresa di un torneo salvato.

TXP 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 TXP 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 TXP. 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 "TXP prova.rob" per riprendere sara' necessario riavviare "TXP prova.rob" o "TXP prova" o "TXP -d=prova"

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

 

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

 


8 - Utilizzo di Count in congiunzione di TXP.

L'attivazione di un programma esterno per l'analisi avviene ad ogni aggiornamento (per raggiunto nr di incontri o percentuale svolta, per la pressione di un tasto nella console dove e' in esecuzione TXP o per il comando "TXP agg nometorneo" eseguito in altra console) se e' inserita nel file .rob la riga di comando

C[=x .......]

o se su linea di comando c'e' lo switch -c[=x .....]

 

COUNT (di S. Ascheri e M. Messina)  e' il programma consigliato per l'analisi dei log prodotti da Torneo XP, essendo l'unico programma a supportare il metodo "Pranzo" di assegnazione dei punteggi. Per questo motivo e' possibile lanciare COUNT con le opzioni di default molto semplicemente, senza dover inserire una complessa riga di comando da ricordare a memoria.

 

Per questo utilizzo combinato e' necessario che  count risieda nella directory corrente (nel path corrente in linux) e l'eseguibile sia denominato count.exe (count in linux). Sebbene siano supportate virtualmente tutte le versioni di count, e' vivamente consigliato l'utilizzo di count versione 8.2 o successive.

Utilizzando il semplice switch -c (o la riga C nel .rob) senza parametri aggiuntivi viene richiamato count con le opzioni fondamentali:

- metodo Pranzo (switch P)

- pesi per il 4vs4 e f2f di 5 e 1 (switch Q=5)

- nel caso di torneo completato solo per il primo robot (-l=1 in TXP) viene richiamata anche l'analisi incrociata per quel robot.

 

Ovviamente si puo' continuare a richiamare COUNT nel modo classico se si necessiti di altri parameti, per esempio utilizzando uno switch del tipo

"-c=count torneo /a /p /q=5 /f=1 /d /t"


9 - Files.

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

 

Files del programma:

 - TXP        : eseguibile del programma linux.

 - TXP.exe    : eseguibile del programma DOS.

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

 - TXP.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)

 - xxx.msg    : comunicazioni del programma in modalita' quiet.

 

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

TXP 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

 


10 - 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, e tutti gli altri utilizzatori del programma con cui abbiamo scambiato pareri e impressioni.

 

  


 

 

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

m.messina@tiscali.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