Italian B4A: come implementare un'interfaccia per motori scacchistici UCI?

MarcoRome

Expert
Licensed User
Longtime User
E infatti quella risposta è sbagliata (o meglio, aveva dei dubbi), perché non è sufficiente.

C'è un'impostazione di base, android.max_aspect, che va cambiata, gli ancoraggi non sono sufficienti, altrimenti.
E vabbè vedrai che a breve si troverà la soluzione ( uomo di poca fede ;) )
 

moster67

Expert
Licensed User
Longtime User
Trovo l'emulatore molto utile per testare sopratutto i layouts. Quando posso uso sempre un device vero.
Però, ci sono anche casi quando l'emulatore mi ha fatto dei scherzi....nel senso positivo. Quando sviluppavo il mio ffmpegencoder (che può convertire/elaborare immagini, video e audio), i processi di conversione erano molto più veloci sui emulatori perché sfruttava tutta la potenza di calcolo del PC. Stesso app sul device girava più lento.
 

MarcoRome

Expert
Licensed User
Longtime User
Quando sviluppavo il mio ffmpegencoder (che può convertire/elaborare immagini, video e audio), i processi di conversione erano molto più veloci sui emulatori perché sfruttava tutta la potenza di calcolo del PC.
Ed è una grande bella libreria .... grande Mike
 

Stolcius Von Stolcenberg

Member
Licensed User
Allora la proverò. @Stolcius Von Stolcenberg ... prova la stessa e facci sapere

Innanzitutto rivolgo un sentito grazie a te, Luca e moster 67 per i consigli.

Se ti riferisci a utilizzare l'emulatore configurato con la CPU/ABI x86, ci ho già provato(in effetti le ho provate tutte: arm, Google, x86, olio di serpente e scongiuri goliardici ), ahimè, invano...

Magari, se vi scappasse di fare girare il codice che ho postato(l'engine è incluso), forse un po' di nebbia si diraderebbe... ;-)


Ad ogni modo, il mio obiettivo sarebbe quello di implementare una libreria che permetta di gestire i motori uci al fine di sviluppare applicazioni scacchistiche(per inciso, molto gettonate sullo store).

Ovviamente la metterei a libera disposizione della community.

Un salutone
Stolcius
P.S.
D'altronde, per dirla con una massima apodittica alla "Catalano": "è molto meglio che l'app giri sullo smarphone 'reale' che su quello emulato." :)
 

LucaMs

Expert
Licensed User
Longtime User
Prima ancora di installare...
gli vengono attribuite le execution permission con il comando shell "chmod 777"
questo comando? change mode (si vede che non conosco linux?)? opera sull'emulatore, presumo; e sul dispositivo?

[molto probabilmente sbaglio ma mi pare di ricordare qualcosa, tipo quei 777 indicherebbero i permessi di lettura-scrittura... ma ho 2 byte di ram e provai linux solo un paio di giorni, 15 anni fa!]
 

moster67

Expert
Licensed User
Longtime User
Allora, ho provato il tuo progetto.
Non funziona sul mio Nexus4 ma se creo una AVD (emulatore) con architettura corretta riesco ad ottenere risposta dalla libreria.
Come ho detto prima, è un discorso di architettura corretta.

Capture3.JPG
 

LucaMs

Expert
Licensed User
Longtime User
gli vengono attribuite le execution permission con il comando shell "chmod 777"
Non ho ancora lanciato l'app (e che aspetti? :p) ma non è che per un comando del genere si necessario che il dispositivo sia "rootato"? Mi sa tanto di si... mo te lo dico :D...

Non te lo dico perché non ne sono certissimo... so che mi dà il log:

ENGINE RESPONSE: (NO RESPONSE)
 

Stolcius Von Stolcenberg

Member
Licensed User
Prima ancora di installare...

questo comando? change mode (si vede che non conosco linux?)? opera sull'emulatore, presumo; e sul dispositivo?

[molto probabilmente sbaglio ma mi pare di ricordare qualcosa, tipo quei 777 indicherebbero i permessi di lettura-scrittura... ma ho 2 byte di ram e provai linux solo un paio di giorni, 15 anni fa!]
Sono i permessi secondo il paradigma UGO(Utente, Gruppo e Generali). il codice 7 conferisce i diritti di lettura(r) scrittura(w) ed esecuzione(x). Pertanto, 777 significa:"u=rwx","g=rwx","o=rwx" .

Stolcius :)
 

moster67

Expert
Licensed User
Longtime User
Quanti librerie (so) vengono forniti con il progetto originale? E' per quali cpu?
 

Stolcius Von Stolcenberg

Member
Licensed User
Se sapessi che diavolo è un motore uci... :D

E' un eseguibile che "gioca a scacchi".
Riceve dei comandi secondo un determinato protocollo(Universal Chess Interface) e restituisce un output(e.g. una mossa in formato algebrico come "e2e4").

La creazione di vari engine permette di scaricare un' interfaccia grafica(la scacchiera per intenderci; e.g. "Arena") e collegarci a piacimento uno o più engine(free e commerciali) come se fossero delle cartucce.

Cmq, rileggo il thread e vedo se posso dare una mano (anche installando).

Tnx K!! :)

Stolcius
 

Stolcius Von Stolcenberg

Member
Licensed User
Non ho ancora lanciato l'app (e che aspetti? :p) ma non è che per un comando del genere si necessario che il dispositivo sia "rootato"? Mi sa tanto di si... mo te lo dico :D...

Non te lo dico perché non ne sono certissimo... so che mi dà il log:

ENGINE RESPONSE: (NO RESPONSE)

Il mio non è ruttato("Burp!" :)) e lo accetta(mostra l'ugo a rwx-rwx-rwx)
 

LucaMs

Expert
Licensed User
Longtime User
Per la prima parte, l'avevo immaginato (contiene quindi tutta la IA, suppongo); per la seconda, che ci siano pure GUI già pronte alle quali collegarlo (il motore)... non è quello che vuoi fare tu, l'interfaccia grafica?

Cmq, per curiosità ho provato a non inviare il comando chmod, per vedere se alla fine il file avesse gli stessi permessi e quindi il comando non avesse avuto alcun effetto e invece... senza non ha tutti i permessi, il che significa che il comando è stato eseguito, malgrato il dispositivo non sia rootato e l'app non abbia i permessi di root.

Questo mi meraviglia non poco.
 

moster67

Expert
Licensed User
Longtime User
Stai parlando di un Nexus emulato?
Potresti postare, per cortesia, i parametri della architettura che funzica?

Tnx!

Ecco la mia configurazione AVD:
upload_2017-4-2_17-43-40.png


ma ti conviene includere la libreria per x86 (se c'è nel progetto originale) così usi l'emulatore x86 (HW accelerated).

In ogni caso, dovresti includere tutte le librerie nel tuo progetto e poi codice che va a stabilire l'architettura e poi chiami quella corretta.
 

Stolcius Von Stolcenberg

Member
Licensed User
Per la prima parte, l'avevo immaginato (contiene quindi tutta la IA, suppongo); per la seconda, che ci siano pure GUI già pronte alle quali collegarlo (il motore)... non è quello che vuoi fare tu, l'interfaccia grafica?
Sì voglio creare un'interfaccia custom per un obiettivo specifico, ma prima occorre implementare una libreria per gestire gli engine UCI.
Oltretutto, onorare quest'ultimo potrebbe andare a beneficio della community, ovviamente per chi voglia cimentarsi con applicazioni scacchistiche.,
 
Top