Bandiera inglese Bandiera italiana

Perlan Chess

Perlan Chess è un semplice applicativo realizzato in Perl, eseguibile a linea di comando, da utilizzare in concerto con un database Oracle. Lo scopo dell'applicazione è quello di fornire un client minimale (privo di grafica) per gestire una partita a scacchi su una rete LAN. Alcuni esempi di utilizzo pratico potrebbero essere: scopo didattico (prendere familiarità con Perl o SQL), ricerca (sperimentare algoritimi di intelligenza artificiale o path finding) o semplicement ludico (giocare a scacchi su una rete locale).

Modalità di utilizzo

Dopo aver configurato il database (vedi installazione) ed assersi assicurati di disporre di un interprete Perl (vedi tutorial) possiamo iniziare a giocare a scacchi su Perlan Chess. Per lanciare il programma eseguiamo:

perl DBoard.pl

per prima cosa dobbiamo specificare utente e password, dato che l'applicazione gestisce diversi utenti. Le password della versione demo sono definite del file ReportUserDAO.pm (per i più pigri: digitare user:sa, password:sa).
Dopo esserci autenticati ci verrà proposto il menu principale dell'applicazione. Qui possiamo:

Per uscire da una qualsiasi voce del menù premere il tasto q.
Per maggiori informazioni sui singoli menù passare col mouse sopra le voci elencate qui sopra.

Importante

La visualizzazione dei pezzi sulla scacchiera è delegata ad un client del database Oracle (ad esempio: Oracle SQL Developer). Il programma Perlan Chess si limita a stampare (a video o su file) la query SQL che deve essere eseguita per visualizzare la partita in corso, ponendo all'utente una domanda del tipo:

Print monitor query on File or Screen (F/S)?

la query così ottenuta va copiata e incollata all'interno del client Oracle, ed eseguita, in modo da visualizzare la scacchiera. Qui sotto è riportato un esempio della visualizzazione risultante da questo procedimento.

La visualizione dei pezzi sulla scacchiera (ottenuta per mezzo di un client Oracle) dovrebbe essere qualcosa del genere:

Risultato query SQL
Visualizzazione della scacchiera su client Oracle (vista dal nero)

Dove le sigle T,C,A,R,D,P rappresentano i pezzi bianchi, mentre le sigle t,c,a,r,d,p rappresentano i pezzi neri.
Per cambiare le sigle dei pezzi (internazionalizzazione) editare il file Data.pm. I nomi delle colonne sono fittizie, perché a noi interessa solamente la prima lettera di ciascuna colonna (H, G, F, M, E, D, C, B ,A), che assieme al numero di riga (colonne R1 o R2) identificano le consuete coordinate della scacchiera.

Muovere i pezzi

L'opzione 4 del menù principale consente di spostare i pezzi sulla scacchiera. Prima di muovere è ovviamente utile consultare la situazione corrente, eseguendo la query che visualizza la posizione dei pezzi (vedi sopra).
Ci verrà proposto un prompt del tipo:

Action>>

dove inseriamo le coordinate di partenza (la posizione del pezzo che vogliamo spostare). Dopodiché ci verrà riproposto lo stesso prompt, per inserire le coordinate di arrivo (dove vogliamo muovere il pezzo). Esempio: la mossa E2-24 deve essere inserita nel seguente modo:

Action>> E2

Action>> E4

le coordinate possono essere inserite sia in maiusocolo che in minuscolo.

Requisiti e installazione

Per utilizzare Perlan Chess è necessario disporre di:

  • Un interprete Perl per eseguire l'applicazione (vedi esempio)
  • Un database Oracle per salvare le partite (vedi qui)
  • Un client Oracle per visualizzare la scacchiera (vedi qui)

Dopo aver verificato l'installazione di Oracle dobbiamo creare gli oggetti richiesti dall'applicativo. Trattandosi solamente di poche tabelle e qualche sequence non è necessario creare un nuovo database, ma possiamo aggiungere le tabelle ad uno schema già esistente. Per creare gli oggetti richiesti eseguiamo lo script:

init_database.sql

a questo punto possiamo inizializzare il database, ovvero creare alcuni utenti di prova. A tal fine scommentiamo la seguente istruzione, presente nel file DBoard.pl:

Database::ReportUserDAO->initUsers($db) ;

ed eseguiamo il programma principale, ovvero:

perl DBoard.pl

In questo modo verrano creati alcuni utenti di prova, le cui credenziali sono configurate all'interno della procedura initUsers, come già visto. Per creare una lista di utenti iniziali diversi, modificare il metodo initUsers.
In alternativa, gli utenti possono essere inseriti manualmente mediante normali INSERT SQL nel database, avendo cura di criptare le password (algoritmo MD5) prima di inserirle nel codice SQL.

Importante: subito dopo aver inizializzato il database, ricordarsi di editare nuovamente il file DBoard.pl e ri-commentare l'istruzione:

# Database::ReportUserDAO->initUsers($db) ;

altrimenti l'applicazione tenterà di aggiungere gli "utenti demo" ad ogni nuova esecuzione (questo non è un problema, poiché l'applicazione non permette l'inserimento di utenti duplicati, ma la situazione impedirebbe comunque il normale utilizzo del programma).

Download

Perlan Chess demo