Articolo pubblicato sul n. 29 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nell'aprile 1984

MCmicrocomputer


Othello per VIC-20 e C-64

di Andrea de Prisco

Di Othello su computer, MC si è già occupata su numeri precedenti. Sul n° 7 è apparso un articolo che, oltre a illustrare il gioco in sé, inteso a livello "umano", trattava alcune strategie facilmente implementabili su computer. Venivano discussi metodi di memorizzazione della scacchiera e l'algoritmo di ricerca colpo, al fine di invogliare il lettore a scrivere un programma, più che a copiarlo dalle pagine della rivista. Alcuni risultati sono giunti anche in redazione, e pubblicati nelle rubriche del software. Altri lettori, pur scrivendoci per consigli e/o suggerimenti, hanno ritenuto opportuno tenere per sé i loro programmi in vista di qualche torneo per elaboratori.Copertina del numero di MCmicrocomputer contenente l'articolo
Abbiamo avuto il piacere di trovarne uno perfino in Francia, a Parigi, che con la sua HP-41 ha macinato chilometri e chilometri di strada ferrata per mantenere alti i colori dell'Italia al 5° Othello-Reversi Programs World Championship tenutosi nei saloni del Sicob nel settembre '83.
Anche a Roma, pochi giorni dopo, in occasione del Campionato italiano di Othello (per... umani), si è tenuto un mini torneo per elaboratori. Purtroppo MC l'ha saputo troppo tardi per poter dare l'annuncio in tempo sulle pagine della rivista. E probabile però che la manifestazione quest'anno si ripeterà. Se possibile, sarà organizzato un torneo per elaboratori con affluenza assai più intensa dell'anno precedente.
Il programma presentato in queste pagine si è classifìcato 6° al torneo di Parigi e l° a quello di Roma, battendo dulcis in fundo perfino il neo campione Italiano Ghirardato (4° ai Mondiali) che, dopo aver sbagliato per una svista una mossa, non ha più ripreso il controllo della partita.
O non ha più voluto riprenderlo il gioco.
Per chi non conosce l'Othello, e non ha sottomano il n. 7 di MC, ripetiamo le regole assai semplici di questo gioco.
Si svolge, come gli scacchi e la dama, su di una scacchiera 8 x 8, generalmente di colore Verde. Le pedine sono 64, tutte uguali con una faccia bianca e l'altra nera. All'inizio si sistemano 4 pedine nel quadrato centrale, due con la faccia bianca rivolta verso l'alto, due con la faccia nera, come è visibile nella foto 2 che mostra la schermata del VIC al1'atto del1a prima mossa.
Inizia sempre il nero a giocare. Il gioco consiste nel porre alternativamente in campo pedine con la faccia del proprio colore rivolta in alto, in modo da catturare pedine avversarie. La cattura avviene quando si chiude, con la pedina che si pone in campo e con almeno un'altra pedina del proprio colore sulla scacchiera, una o più pedine avversarie. In questo caso, tutte le pedine avversarie chiuse dalla pedina appena posata e dalle altre pedine proprie già presenti sulla scacchiera vengono capovolte, e diventano del proprio colore.
La cattura può avvenire sia in orizzontale che in verticale che in diagonale, così come in una qualsiasi combinazione delle tre direzioni. La figura l mostra un colpo del bianco. Come si può notare, ben 5 pedine avversarie sono capovolte in seguito alla mossa (fig. 2).
Il gioco prosegue fino al riempimento di tutta la scacchiera. Al termine, chi avrà più pedine del proprio colore in campo sarà il vincitore.
Va fatto notare che non si può porre pedine in campo senza catturare pedine avversarie, e la mossa è obbligatoria se è possibile mangiare. Quando uno dei due concorrenti non può porre una propria pedina in campo, passa la mano e continua a giocare l'altro. Se prima del riempimento completo del campo ambedue i giocatori non possono muovere, il gioco termina in anticipo e ugualmente il vincitore sarà chi ha più pedine del proprio colore.
Le "regole" dell'Othello sono tutte qui. Non resta che fare alcune considerazioni di carattere "strategico". È vero: chi alla fine ha più pedine del proprio colore in campo sarà il vincitore. Ma è inutile affannarsi sin dalle prime mosse a mangiare quante più pedine possibile.
Anzi dirò di più: generalmente chi all'inizio riempie la scacchiera con proprie pedine è svantaggiato perché ad ogni colpo può scegliere fra ben poche mosse concessegli dall'avversario.
Molto più importante è conquistare posizioni strategicamente favorevoli che possono anche portare alla vittoria certa.
Sto parlando degli angoli. Chi conquista un angolo, lo conquista definitivamente. Nessuno può capovolgere una pedina che ha conquistato un angolo. Tale posizione è detta, per questo motivo, "stabile".
Sono stabili anche tutte le pedine proprie poste su un bordo di cui già si possiede l'angolo, e non vi sono pericolosi "buchi" dove l'avversario può incunearsi. In altre parole, una volta conquistato l'angolo, si può procedere facilmente alla conquista di intere file di pedine sul bordo che, se appoggiate ad un angolo, sono stabili. Provare per credere.
Di contro le caselle adiacenti l'angolo, lungo i bordi o lungo la diagonale, sono nettamente sfavorevoli.
È facile perdere un angolo dopo essersi posti in una di queste caselle.
In definitiva, per vincere al 100% una partita di Othello è "sufficiente":

 

1) cercare di conquistare gli angoli
2) non posizionarsi sulle caselle adiacenti l'angolo
3) non far conquistare angoli all'avversario
4) obbligare l'avversario a mettersi in caselle "sfavorevoli".

Chi riesce sempre in questo è vivamente pregato di presentarsi ai prossimi Mondiali di Othello.
Vincono sempre i Giapponesi...
A proposito: una delle cose più semplici che spesso viene detta a chi impara a giocare l'Othello per la prima volta è che le posizioni di bordo sono abbastanza favorevoli, essendo catturabili solo da altre pedine di bordo e ciò si verifica non troppo di frequente.
È anche vero però che se si hanno 6 pedine del proprio colore sul bordo e non si possiedono angoli sullo stesso, la perdita di uno dei due angoli implica automaticamente la perdita dell'altro insieme alle 6 pedine "conduttrici".
Quindi: bordi sì, ma con molta attenzione!!!

Il programma

Sin dalle primitive versioni (questo programma mi ha impegnato più di un anno), l'obiettivo principale non era quello di battere "umani", ma di battere altri computer. Conoscevo infatti il tipo di gioco dei computer parigini: affannosa ricerca alla conquista dei bordi, più che un'attenta valutazione di cosa può succedere qualche mossa più avanti. Gli articoli apparsi su riviste francesi specializzate mostravano, appunto, questo genere di strategia.
A Parigi, mi hanno dato del filo da torcere solo 2 concorrenti (un Sirius e un TRS-80 mod. 3) che avevano un tipo di gioco ancor più lontano del mio da quello standard degli altri 50 e più concorrenti. Ho visto fare davvero delle mosse di altissimo livello, che solo tre o quattro colpi più avanti hanno portato il loro frutto.
Il mio programma, più che cercare di conquistare bordi (anzi, semmai li regala) cerca di lasciare l'avversario con mosse sempre meno proficue, sino addirittura, come è successo con un altro concorrente, a costringerlo a mettersi sulla casella adiacente l'angolo, sulla diagonale, a meno di metà partita.
E come si sa, perso un angolo cosi presto, la partita nell'80% dei casi è persa. Di contro, se è il VIC a dover cedere per forza un angolo (ciò si verifica "sempre" alle ultime mosse del gioco) scatta il cosiddetto terzo livello di gioco.
Se è possibile (e spesso lo è) cede quell'angolo che gli permette di conquistarne subito un altro alla mossa successiva. Rende la pariglia, come si suol dire.
Le prime sette-otto mosse del gioco, sono già memorizzate all'interno del programma sotto forma di albero. Costituiscono l'apertura, la fase iniziale del gioco.
In questa fase, come avviene anche per gli scacchi, le mosse sono grosso modo sempre le stesse, e le scelte di variazione non sono molte.
È conveniente memorizzare quelle relative alle prime mosse per risparmiare un po' di tempo per i colpi finali, senza dubbio i più significativi per la vittoria. Dando RUN al programma, la prima richiesta è "CHI INIZIA?". Come si sa, ad Othello è il nero a muovere per primo. Rispondendo IO o TU, di fatto si seleziona il colore con cui dovrà giocare il VIC. Digitando invece LOAD viene caricata da nastro una partita precedentemente "SAVEata" e il gioco continua dove era stato interrotto. Se alla domanda "CHI INIZIA " si risponde TEST, si va in ambiente di input scacchiera.
È possibile inserire qualsiasi situazione di gioco per continuare da quel punto l'incontro o controllare cosa il computer risponderebbe con quella scacchiera davanti. Vengono richieste le otto righe, di otto pedine l'una, della scacchiera e si inputano inserendo fra gli apici un pallino pieno per ogni pedina bianca (tasto S-Q), un pallino vuoto per ogni pedina nera (Tasto S-W) e uno spazio per ogni posizione di scacchiera vuota.
In ambiente di gioco vero e proprio, se alla domanda: "TU GIOCHI IN" si risponde, al posto del colpo, SAVE,la situazione di scacchiera è salvata su nastro. Se si risponde EX, i ruoli dei due giocatori si scambiano. Chi prima giocava col bianco gioca col nero e viceversa. Il programma gira perfettamente sia sul VIC-20 sia sul Commodore 64. L'unica modifica strettamente necessaria è un POKE 53281,5 per colorare di verde lo sfondo se si usa il 64. Anche se l'HELLO iniziale e il commento di fine partita non saranno troppo in linea con le 40 colonne, la scacchiera e tutto il resto è mostrato correttamente. A tutti un "buona partita", e non dimenticate che, per chi è interessato, è disponibile la cassetta col programma già memorizzato. Risparmiare fatiche inutili fa sempre bene. Arrivederci.

 


Impaginato originale...


Clicca per ingrandire...
Clicca per ingrandire... Clicca per ingrandire...
Clicca per ingrandire...

Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui