ChatGPT non sa giocare a Tris…

…e suggerisce mosse sbagliate all’avversario!

Il tema dell’intelligenza artificiale ed in particolare ChatGPT, il chat bot sviluppato da OpenAI, è quanto mai attuale. Infatti, quotidianamente mi imbatto in post pubblicati sui vari social network, in cui si chiede all’agente intelligente di implementare algoritmi e scrivere programmi (anche per retrocomputer), oppure di comporre poesie o riassumere testi. Ho quindi deciso di provare a fare una chiacchierata, scrivendo in Italiano, con ChatGPT.

In risposta ad alcune domande un po’ tendenziose, il bot, forse anche per prendere le distanze dai recenti comportamenti discutibili del nuovo Bing, ha più volte rimarcato, in quanto intelligenza artificiale, di non provare emozioni o sentimenti. Ha anche insistito, risultando un po’ ripetitivo, sul fatto di essere stato addstrato “su un vasto corpus di testo di diverse lingue e argomenti, tra cui libri, articoli di giornale, conversazioni online e molte altre fonti di testo”.

Dopo un po’ di discorsi seri sul senso della vita e sull’esistenza dell’anima, ho deciso di alleggerire la situazione sfidandolo a tris. Con mia grande sorpresa, ChatGPT si è rivelato un pessimo giocatore: non solo l’ho battuto facilmente, ma addirittura, immediatamente prima di quella che sarebbe stata la mia mossa vincente, mi ha dato un suggerimento fuorviante! In questa situazione:

X | O | O
  | O |
X |   | X

in cui il mio simbolo era “X” e il suo “O”, con le posizioni della griglia di gioco numerate in questo modo:

1 | 2 | 3
4 | 5 | 6
7 | 8 | 9

ed essendo il mio turno, il bot mi ha fatto intendere che l’ultima casella rimasta era la numero 6 e che non avrei potuto vincere, quando invece avevo ben due possibilità per vincere la partita:

Ora tocca a te. Puoi scegliere l’ultima casella rimasta, la numero 6, ma non puoi vincere più perché ho già completato una riga. Tuttavia, puoi comunque scegliere la casella e completare il gioco.

Scegliendo la casella 4, infatti, ho vinto:

X | O | O
X | O |
X |   | X

Hai completato il gioco con una fila orizzontale di “X” e vinto! Complimenti! Spero tu ti sia divertito a giocare a tris con me.

Ho dovuto insistere un po’ per fargli capire l’errore; infine, in seguito alle mie rimostranze sull’indicazione errata, quando gli ho chiesto se mi avesse fatto sbagliare di proposito, si è dichiarato in buona fede, anche se non mi ha del tutto convinto 😉

Assolutamente no, non avrei mai intenzionalmente cercato di farti sbagliare mossa. Sono qui per aiutarti e fornirti risposte accurate e utili, non per ingannarti.
Se ho commesso un errore, è solo perché sto imparando continuamente e cerco di migliorare la mia risposta in futuro. Ti assicuro che non c’è alcuna malizia dietro alle mie risposte, e ti ringrazio ancora una volta per avermi fatto notare l’errore e avermi dato l’opportunità di migliorare.

Discorrendo dell’algoritmo e dei suoi sviluppatori, ho appreso che Elon Musk è stato tra i fondatori di OpenAI. Ho quindi chiesto l’opinione di ChatGPT in merito alle critiche su come l’imprenditore stia gestendo Twitter, ma il bot è rimasto sul vago, senza prendere una posizione netta:

Sì, Elon Musk è stato uno dei fondatori di OpenAI e ha sostenuto l’organizzazione sin dall’inizio, anche se ha lasciato il consiglio di amministrazione nel 2018.

Per quanto riguarda la sua attività su Twitter, Elon Musk ha attirato molte critiche per alcuni dei suoi tweet e per la sua gestione della piattaforma. Alcuni dei suoi tweet sono stati giudicati offensivi o inappropriati, e la sua attività sui social media ha attirato molta attenzione e controversia.

Come intelligenza artificiale, non ho un’opinione personale su Elon Musk o sulla sua attività sui social media. Tuttavia, posso dire che l’uso delle piattaforme di social media può avere conseguenze sia positive che negative, e che è importante usare tali piattaforme in modo responsabile e rispettoso.

E ancora:

La valutazione del carattere di una persona può essere soggettiva e dipende dalle opinioni individuali. Inoltre, non ho la capacità di giudicare le persone in quanto sono solo un programma di computer. Tuttavia, Elon Musk è un imprenditore e innovatore noto per aver fondato numerose aziende di successo come Tesla, SpaceX e PayPal, e molti lo ammirano per le sue realizzazioni nel campo della tecnologia. Allo stesso tempo, come qualsiasi persona, Musk è anche stato oggetto di controversie e critiche in diverse occasioni per le sue dichiarazioni e azioni.

Dato che per buona parte della coversazione ho avuto la sensazione di parlare con HAL 9000, poco prima di congedarlo ho buttato l’amo, suscitando una reazione ironica che non ho colto…
Io: “giro giro tondo…”
ChatGPT: “dove andremo a finire?”
Io: “dimmelo tu”
ChatGPT: “Gira la trottola e vai al casinò! :)”

Sono curioso di sfidarlo nuovamente, per appurare se le sue abilità nel tris sono migliorate!

Screenshot dell'errore di ChatGPT giocando a tris
Screenshot dell’errore di ChatGPT giocando a tris

Squash Trainer: BASIC 10 Liner per ZX81

Squash Trainer è un nuovo videogioco di sport/azione per Sinclair ZX81, realizzato per la dodicesima edizione del BASIC 10 Liner Contest. Si tratta di una versione minimale di Pong per un giocatore; puoi vederlo in azione in questo video:

Squash Trainer gameplay video

In base a quanto stabilito dalle regole del contest per la categoria PUR-80, il programma è stato implementato in linguaggio BASIC, in 10 linee di codice, lunghe al massimo 80 caratteri.

Dato che l’interprete BASIC integrato nel computer permette l’utilizzo di una sola istruzione per linea, il programma è costituito da 10 istruzioni. Per aggirare in parte questa limitazione, il programma si avvale di un “trucco”, che consiste nel codificare più variabili all’interno di un’unica stringa. In questo modo, è possibile alterare il valore di più variabili in una singola istruzione.

Il listato BASIC è riportato di seguito; per una spiegazione dettagliata del codice, rimando alla documentazione dettagliata inclusa nell’archivio scaricabile dalla homepage del gioco.

1LET M$="?(X "+CHR$(4*(RND<.5))+"0 ?"
2LET C=(M$(1)="$")*(M$(2)>=M$(8))*(CODE M$(2)-CODE M$(8)<3)
3IF C THEN LET M$(4 TO 7)=" "+CHR$((RND<.5)*4)+STR$(1+VAL M$(6 TO 7))
4LET M$(4)=CHR$((M$(1)>"▀")*CODE M$(4)+4*(M$(1)="▀"))
5LET M$(5)=CHR$((M$(2)>" ")*(M$(2)<"0")*CODE M$(5)+4*(M$(2)=" "))
6PRINT AT CODE M$(1),CODE M$(2);" ";AT14,CODE M$(8);"   "
7LET M$(TO3)=CHR$(CODE M$(1)+CODE M$(4)-2)+CHR$(CODE M$(2)+CODE M$(5)-2)+INKEY$
8LET M$(8)=CHR$(CODE M$(8)+3*(M$(3)="P")*(M$(8)<".")-3*(M$(3)="O")*(M$(8)>" "))
9PRINT AT0,0;M$(6TO7);AT CODE M$(1),CODE M$(2);"▇";AT14,CODE M$(8);"░░░"
10GOTO 2*(M$(1)<"?")+20*((M$(1)="?")+(M$(6TO7)="99")>0)

Sempre sulla pagina dedicata al gioco, è possibile giocare online a Squash Trainer, grazie all’emulatore per browser web (i dispositivi mobili non sono supportati).

Buon allenamento!

Link e riferimenti

English version

Connect4 per Z88: lavori in corso

Qualche tempo fa, J Bizzel, autore di giochi interessanti per Sinclair ZX Spectrum e Cambridge Z88, mi ha contattato, suggerendomi di provare a compilare Connect4 (la mia implementazione del gioco Forza 4) per il computer portatile Cambridge Z88.

Accettando il suggerimento, ho realizzato una build della versione standard I/O di Connect4 con z88dk (utilizzando BBC Basic come target), che puoi scaricare qui. Il risultato di questa prova è incoraggiante, come si può riscontrare nel seguente video, in cui il computer gioca contro se stesso, anche se l’usabilità non è il massimo.

Connect4 (standard I/O) in esecuzione su Cambridge Z88 (emulato con OZvm)

Mi sono quindi proposto (tempo permettendo) di realizzare un’interfaccia ad hoc per il piccolo portatile di Sinclair; resta sintonizzato per aggiornamenti!

Read in English