Il mio programma VLB
Preparazione del gioco
Prepariamo un documento di testo.
La prima riga del testo contiene la parola chiave inizia e il nome della battaglia.
Il testo deve essere organizzato cosi’, una riga per ogni unita’.
Il nome e’ il nome dell’unita’, lo shortname e’ un nome di due-tre caratteri che usiamo come identificatore.
ad esempio
inizia Marzell
scala 4000
esercito Francia fr comando fr Maresciallo_Ney ney cinc comando fr IV_Corpo_Bertrand ber ney comando fr Divisione_Morand mor ber artiglieria_leggera fr Batteria_Art_Legg_Morand_1 amor1 mor 160 average 0 artiglieria_leggera fr Batteria_Art_Legg_Morand_2 amor2 mor 160 average 0 fanteria fr Brigata_Morand_1 fmor1 mor 2400 average 8 fanteria fr Brigata_Morand_2 fmor2 mor 2400 average 8 fanteria fr Brigata_Morand_3 fmor3 mor 2400 average 8 comando fr Divisione_Fontanelli fon ber artiglieria_leggera fr Batteria_Art_Legg_Fontanelli afon fon 160 average 0 fanteria fr BrigFontanelli_1 ffon1 fon 2400 average 8 fanteria fr BrigFontanelli_2 ffon2 fon 2400 average 8 ... seguono gli ordini iniziali ...
msg fr ney ber 0 defend difesa
msg fr ber mor 0 defend difesa
msg fr mor amor1 0 defend bombarda la fanteria alle 0600
msg fr mor amor2 0 defend bombarda la fanteria alle 0600
msg fr mor fmor1 0 defend segue comando
msg fr mor fmor2 0 defend segue comando
msg fr mor fmor3 0 defend segue comando
msg fr ber fon 0 defend difesa
msg fr fon afon 0 defend segue comando
msg fr fon ffon1 0 defend segue comando
msg fr fon ffon2 0 defend segue comando
...
Lista comandi e spiegazione breve
————————————————————————–
comandi di inizio gioco
————————————————————————–
usage : inizia
: inizializza la battaglia
usage : scala
: il terreno di gioco e’ alla scala 1/
usage : esercito
Esercito name
Esercito shortname
usage : fanteria
Unit Side shortname
Unit name
Unit shortname
Unit Commander shortname
Unit effectives
Unit quality, it can be: veteran, regular, poor
Unit combat value
usage : cavalleria_leggera
Unit Side shortname
Unit name
Unit shortname
Unit Commander shortname
Unit effectives
Unit quality, it can be: veteran, regular, poor
Unit combat value
usage : cavalleria_pesante
Unit Side shortname
Unit name
Unit shortname
Unit Commander shortname
Unit effectives
Unit quality, it can be: veteran, regular, poor
Unit combat value
usage : artiglieria_leggera
Unit Side shortname
Unit name
Unit shortname
Unit Commander shortname
Unit effectives
Unit quality, it can be: veteran, regular, poor
Unit combat value
usage : artiglieria_pesante
Unit Side shortname
Unit name
Unit shortname
Unit Commander shortname
Unit effectives
Unit quality, it can be: veteran, regular, poor
Unit combat value
usage : artiglieria_cavallo
Unit Side shortname
Unit name
Unit shortname
Unit Commander shortname
Unit effectives
Unit quality, it can be: veteran, regular, poor
Unit combat value
usage : skirmishers
Unit Side shortname
Unit name
Unit shortname
Unit Commander shortname
Unit effectives
Unit quality, it can be: veteran, regular, poor
Unit combat value
usage : comando
Unit Side shortname
Unit name
Unit shortname
Unit Commander shortname
usage : ordine
: assegna un ordine all’unita’ di shortname <unita’>
: alle :
: tipo di messaggio defend, move
: il messaggio e’
————————————————————————–
comandi durante il gioco
————————————————————————–
usage : ora
: stampa l’ora corrente
usage : passano
: sincronizza ai prossimi minuti
usage : chain
: stampa la catena di comando da a
usage : msg
: invia un messaggio all’unita’ <unita’>
: il corriere percorre in totale tra tutti i comandi intermedi
: il tipo messaggio e’ = defend, move
: il messaggio e’
usage : turno
: aggiorno l’ora all’evento prossimo, mostro ed eseguo gli eventi relativi se ci sono
usage : ord
: stampa gli ordini di un comando e di tutti i sottoposti
usage : short
: stampa nomi e shortnames di un comando
usage : mischia
: comincia una mischia
usage : fuoco <unita’>
: comincia il fuoco di una <unita’> su un
usage : linea <unita’>
: <unita’> si mette in linea
usage : colonna <unita’>
: <unita’> si mette in colonna
usage : quadrato <unita’>
: <unita’> si mette in quadrato
usage : traino <unita’>
: <unita’> si mette al traino
usage : batteria <unita’>
: <unita’> si mette in batteria
usage : inpiedi <unita’>
: <unita’> si mette in piedi
usage : aterra <unita’>
: <unita’> si mette a terra
————————————————————————–
comandi di controllo del gioco
————————————————————————–
usage : orders
: mostra tutti gli ordini
usage : sides
: mostra tutte i partiti
usage : units
: mostra tutte le unita’
usage : events
: stampa tutti gli eventi
usage : sta
: stampa lo stato un comando e di tutti i sottoposti
usage : sync
: sincronizza l’ora al prossimo evento
usage : next
: mostra tutti gli eventi relativi all’ora corrente
usage : prox
: mostra i prossimi eventi se ci sono
usage : pop
: elimino i prossimi eventi se ci sono
usage : sta
: stampa lo stato un comando e di tutti i sottoposti
usage : inmischia <unita’>
: <unita’> sta in mischia
usage : riposa <unita’>
: <unita’> sta riposando
usage : riposato <unita’>
: <unita’> ha riposato per 20 minuti
usage : dormito <unita’>
: <unita’> ha dormito per 8 ore
usage : indietreggia <unita’>
: <unita’> sta indietreggiando</unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’></unita’>
Esempio di preparazione della battaglia
[lapstefano:~/Desktop/orderxml] stefanov% inizia Waterloo
inizializzo la battaglia di Waterloo
saving file Waterloo.xml
[lapstefano:~/Desktop/orderxml] stefanov% formazione linea_10_rgt l10 1200 regular 86
Document version: 1
saving file Waterloo.xml
[lapstefano:~/Desktop/orderxml] stefanov% formazione ussari_3_rgt u3 200 veteran 50
Document version: 2
saving file Waterloo.xml
[lapstefano:~/Desktop/orderxml] stefanov% units
Document version: 3
UNIT: ID: 0 NAME: linea_10_rgt SHORTNAME: l10 QUALITY: regular MEN: 1200 CV: 86 STATUS: 0
ORDER: TIME: TIME: 0:0 TARGET: notarget MESSAGE: going nowhere
UNIT: ID: 0 NAME: ussari_3_rgt SHORTNAME: u3 QUALITY: veteran MEN: 200 CV: 50 STATUS: 0
ORDER: TIME: TIME: 0:0 TARGET: notarget MESSAGE: going nowhere
[lapstefano:~/Desktop/orderxml] stefanov% ordine 9 30 l10 avanza fino al villaggio
Document version: 3
9:30 avanza fino al villaggio
saving file Waterloo.xml
[lapstefano:~/Desktop/orderxml] stefanov% ordine 9 50 u3 supporta la fanteria
Document version: 4
9:50 supporta la fanteria
saving file Waterloo.xml
[lapstefano:~/Desktop/orderxml] stefanov% orders
Document version: 5
ORDER: TIME: TIME: 9:30 TARGET: l10 MESSAGE: avanza fino al villaggio
ORDER: TIME: TIME: 9:50 TARGET: u3 MESSAGE: supporta la fanteria
[lapstefano:~/Desktop/orderxml] stefanov% units
Document version: 5
UNIT: ID: 0 NAME: linea_10_rgt SHORTNAME: l10 QUALITY: regular MEN: 1200 CV: 86 STATUS: 0
ORDER: TIME: TIME: 9:30 TARGET: l10 MESSAGE: avanza fino al villaggio
UNIT: ID: 0 NAME: ussari_3_rgt SHORTNAME: u3 QUALITY: veteran MEN: 200 CV: 50 STATUS: 0
ORDER: TIME: TIME: 9:50 TARGET: u3 MESSAGE: supporta la fanteria
Technology
Command trees are implemented using the Tree class (http://tree.phi-sci.com/).