Giocare a scacchi con arduino??

Salve, mi piacerebbe creare un braccio robotico che gioca a scacchi, ma la cosa che mi blocca è il software. Ne ho visti diversi su youtube, ma non capisco come fanno....
Il programma deve essere molto complicato, perché ci sono molte variabili in una partita di scacchi. Come posso fare per renderlo il più semplice possibile?

Impossibile su Arduino, non ha abbastanza memoria ne potenza di elaborazione.
Al massimo Arduino pilota i motorini del braccio robotico e un computer (o un raspberry) dialoga con Arduino.
In tutti i casi è mooolto complicato.

Ma ci sono diversi video su youtube...

... Si, ma due sono le possibilità:

  1. usano una board più potente (e comunque non superano un livello minimo di gioco)

  2. con la UNO ci sono dei programmini che ... abbozzano qualche mossa, ma sono ridicoli e non si possono certo definire "gioco degli scacchi" :smiley: :smiley: :smiley:

Comunque se cerchi con Google "Arduino chess" trovi qualche cosa ...

Guglielmo

Io da ragazzino mi ero fatto un programmino per giocare a scacchi, lavorava a forza bruta, ma era veramente basilare, cioè provava ricorsivamente tutte le mosse possibili e sceglieva la migliore, ma si limitava ad una profondità di possibilità molto bassa.
Quindi una sorta di algoritmo a forza bruta castrato :wink:

Ora, capire da un video la differenza tra il mio algoritmo e uno un po' più serio non so se sia facile, perchè bisognerebbe scendere nel dettaglio della sensatezza delle mosse. Sempre che non mostrino un'intera partita o una buona parte.

Non ho mai approfondito se ci siano algoritmi più furbi da poter utilizzare, ma che richiedono meno risorse.

Come algoritmo, il mio, non era complicato ma solo "stupido" e richiedeva un po' di ram.
Per citare @gpb01 era ridicolo e non si può certo definire "gioco degli scacchi" :smiley: :smiley: :smiley:

Che video hai visto?

Credo che sia possibile usare degli Arduini come figure da scacchi. Sará un po difficile far in modo che si riconosce facilmente le diverse figure. :wink: :wink:
Ciao Uwe

Ciao! Non ho trovato una tua presentazione di conseguenza non so quante competenze hai di programmazione!
Realizzare un gioco di scacchi, pur semplice che sia,non è banale e non è alla portata di tutti! "io non ne sarei capace, ma come me molti altri che conoscono i rudimenti della programmazione".
Comandare un robot antropomorfo tramite software e realizzare il software, non è banale e anche qui non è la portata di tutti.
Realizzare un braccio robotico antropomorfo meccanicamente, non è banale, non bisogna considerare simili robot giocattolo azionati da servo, molto leggeri e che possono sollevare piccoli pesi, con robot più grandi che hanno un peso e che per movimentarli necessitano di motori con molta coppia. La difficoltà si moltiplica esponenzialmente.
Credo che molte persone non hanno idea delle difficoltà che comportano realizzare certe cose, tanto che trovano difficoltà a realizzare cose semplici e vorrebbero realizzare cose molto difficili.
Non pensare che ti voglio scoraggiare mi metto anche io al tuo livello :slight_smile: :slight_smile: Sarebbe bello che tutti potessero fare tutto ma la realtà non è cosi :slight_smile: Possiamo pensare di sollevare 20 chili, possiamo pensare di allenarci per sollevare 50 o 100 chili :slight_smile: Ma poi sollevare 250 chili sono in pochi che arrivano a farlo. :wink:

Non ho molte competenze, ma ho molta voglia di fare e imparo in fretta...

Sono sicuro della tua buona volontà, e della tua capacità di imparare ci credo
Ma non ti rendi conto della complessità dell'impresa
E come essere in bicicletta e pensare:
Vado dal panettiere: ok
Vado da Milano a Monza: ok, pedalo tanto
Vado da Torino a Venezia: avresti troppo da pedalare, serve molto allenamento
Vado fino a Londra: non è questione di allenamento o di pedalare tanto: è questione differente, devi nuotare....
Eppure il verbo usato è sempre l'indicativo presente di andare....
Ecco: Arduino non gioca a scacchi esattamente come una bicicletta non galleggia....

Invece degli scacchi prova ad implementare un robot che gioca ad Esapedone, questo è alla portata di Arduino ed è simpatico anche se non così complesso. E' un gioco matematico inventato dal mitico Martin Gardner su Scientific American.
A parte la difficoltà di muovere i pezzi con un braccio robotico (cosa comunque non banale), il gioco si può analizzare in modo esaustivo, e si può implementare in modo che "impari" dai suoi errori (escludendo dalle possibili mosse l'ultima che ha portato alla sconfitta il robot), cosa che si può anche realizzare in modo "fisico" con delle scatole di cerini e pezzetti di filo colorati (trovi questa descrizione QUI).