Scritto
da Michelangelo Messina.
Homepage:
email:
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).
0
- Novita'
1
- Descrizione
2
- Utilizzo
4
– Riga di
comando
6
- Salvataggio o abbandono del torneo
7
- Ripresa di un torneo salvato
8
- Files
9
– Varie
- 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.
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.
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!
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.
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) |
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
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
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.
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
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:
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: